Pemilihan pemecah linear untuk perhitungan GPGPU (OpenCL)


10

Saya telah mengembangkan solusi kerja dari Metode Elemen Hingga untuk menyelesaikan masalah perpindahan panas menggunakan GPU dan OpenCL menggunakan metode Conjugate Gradient. Kerugian utama dari metode ini adalah tingginya permintaan akan memori. Terlebih lagi, dalam kasus kartu grafis, memori seringkali sangat terbatas. Saya melihat dua opsi:

  1. Buat subdomain dan tukar bagian dari mesh dengan memori host
  2. Gunakan metode multifrontal

Saya harus memperhitungkan arsitektur spesifik. Bertukar bisa sangat mahal. Metode CG populer dalam konteks komputasi GPGPU tetapi saya tidak dapat menemukan perbandingan antara CG dan metode multifrontal (dalam hal GPGPU). Bisakah metode multifrontal lebih cepat daripada CG? Ini adalah pertanyaan umum, bahkan masih tergantung pada implementasinya.


2
Apakah Anda melakukan perakitan global dari matriks dalam kode FEM Anda? atau apakah Anda menggunakan implementasi bebas-matriks? (Yaitu tidak ada pembentukan eksplisit dari matriks)
Allan P. Engsig-Karup

3
Prekondisi apa yang Anda gunakan dan seperti apa domain itu? Desktop berumur sepuluh tahun yang menggunakan algoritma yang baik akan mengalahkan sekelompok GPU menggunakan algoritma jelek.
Jed Brown

Apakah Anda menggunakan heksahedral atau jerat sederhana? Jika memori bermasalah dan Anda menggunakan elemen heks dengan fungsi berbasis produk tensor, Anda dapat menghemat memori dalam beberapa kasus dengan hanya menyimpan operator 1D dan menggunakan implementasi bebas-matriks (seperti yang disebutkan Allan).
Jesse Chan

Jawaban:


2

Saya adalah pimpinan proyek di LibGeoDecomp , jadi saya pikir saya mungkin berpadu.

Ya, Anda dapat mengimplementasikan FEM dengan LibGeoDecomp. Saat ini kami sedang mengerjakan wadah data yang ditingkatkan untuk penggunaan yang tepat ini. Tetapi untuk bersikap adil: penyelesaian pekerjaan itu masih beberapa bulan lagi, dan sampai saat itu kinerja tidak akan optimal. Jangan ragu untuk menghubungi saya melalui email jika Anda masih ingin mencoba LibGeoDecomp.

Pilihan lain adalah Fenics , yang memiliki pemecah yang dioptimalkan dengan baik untuk masalah tidak teratur. Tetapi AFAIK Anda tidak bisa menulis solver Anda sendiri dalam kasus itu.


1

Saya tidak tahu apakah itu membantu Anda. Di sini, Anda akan menemukan tautan ke libgeodecomp , alat yang menggunakan teknik dekomposisi domain yang dapat disesuaikan (dari situs). Itu bisa digunakan dengan GPU sejauh yang saya tahu. Jika ini membantu Anda, pilih saya ;-)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.