Saya telah menjalankan GROMACS kode dinamika molekul (MD) pada cluster Linux Ubuntu yang terdiri dari node yang berisi 24 CPU Intel Xeon. Titik perhatian saya ternyata agak sensitif terhadap presisi aritmatika floating point, jadi saya harus menjalankan GROMACS dalam presisi ganda daripada presisi tunggal - meskipun biaya komputasi presisi ganda lebih tinggi. Jadi pada cluster, saya telah mengkompilasi GROMACS dalam presisi ganda.
Saya sedang mempertimbangkan untuk membeli beberapa GPU, karena mungkin ada kecepatan relatif ("akselerasi GPU") ke CPU. Namun, saya membutuhkan GPU yang memungkinkan saya melakukan aritmatika presisi ganda. Apakah Anda tahu jika perangkat keras tersebut tersedia secara komersial? Sebuah posting baru pada milis Gromacs menunjukkan bahwa GPU presisi ganda tidak tersedia secara komersial:
Perangkat keras tidak mendukungnya [aritmatika presisi ganda] namun AFAIK.
Halaman Wikipedia ini tampaknya menunjukkan bahwa GPU presisi ganda jarang terjadi karena mungkin tidak efisien:
Implementasi floating point pada GPU Nvidia sebagian besar sesuai dengan IEEE; Namun, ini tidak benar di semua vendor. Ini memiliki implikasi untuk kebenaran yang dianggap penting untuk beberapa aplikasi ilmiah. Sementara nilai floating point 64-bit (float presisi ganda) umumnya tersedia pada CPU, ini tidak didukung secara universal pada GPU; beberapa arsitektur GPU mengorbankan kepatuhan IEEE sementara yang lain tidak memiliki ketepatan ganda sama sekali. Ada upaya untuk meniru nilai floating point presisi ganda pada GPU; Namun, pengorbanan kecepatan meniadakan manfaat apa pun untuk membongkar komputasi ke GPU.
Ini Halaman NVIDIA Tesla , di referensi "Puncak presisi ganda kinerja floating point" pada grafik, tampaknya menunjukkan bahwa perhitungan presisi ganda dapat , pada kenyataannya, dilakukan pada GPU mereka (meskipun pada biaya komputasi yang lebih tinggi).
Jadi, apa yang harus saya percayai? Apakah Anda punya pengalaman dengan masalah ini?
sumber
Jawaban:
Presisi ganda cukup umum pada GPU yang lebih baru. Sebagai contoh, saya memiliki NVIDIA GTX560 Ti (ujung yang cukup rendah dalam hal komputasi) yang tidak memiliki masalah menjalankan ViennaCL dengan presisi ganda. Dari sini (bagian 4) tampak semua kartu NVIDIA dari GTX4xx dan seterusnya mendukung presisi ganda.
Saya kira informasi GROMACS sudah ketinggalan zaman.
sumber
Setiap GPU dengan SM 1.3 (Tesla / GTX2xx) atau lebih baik memiliki dukungan presisi ganda perangkat keras. Dimulai dengan arsitektur Fermi, varian Quadro dan Tesla memiliki dukungan presisi ganda yang lebih baik daripada model Ge Force konsumen.
Apa yang aneh adalah bahwa dukungan ganda presisi Ge Force Kepler / GTX6xx lebih rendah daripada dukungan GeForce Fermi / GTX5xx untuk meningkatkan diferensiasi Tesla di Kepler K20 / K20x. Memperkuat keanehannya, Tesla K10s memiliki dukungan presisi ganda tingkat Ge. Dan yang paling baru, ini menjadi kacau total dengan diperkenalkannya Ge Force GTX Titan, yang memiliki dukungan presisi ganda penuh dan banyak fitur CUDA yang hanya ada pada model Tesla hingga sekarang. A GTX Titan berharga ~ $ 1.000 - tawaran IMO yang menjerit.
sumber
Anda juga harus membaca posting tindak lanjut dari milis GROMACS: http://lists.gromacs.org/pipermail/gmx-users/2013-April/080604.html . Apakah implementasi GPU di MD mendukung penggunaan presisi ganda hingga tingkat yang sebanding, setidaknya sama pentingnya dengan apakah presisi ganda tersedia pada perangkat keras.
sumber
Menurut diskusi ini , Tesla dan Titan GPU paling sesuai (dari GPU Nvidia) untuk ketepatan ganda.
Mencari contoh pada daftar GPU Nvidia di Wikipedia (tabel serupa untuk AMD GPU ada di sini ) dan membandingkan kekuatan pemrosesan presisi tunggal dan ganda (dalam hal GFLOP) orang melihat bahwa kinerja presisi ganda jauh lebih kecil daripada setengah presisi tunggal. kinerja untuk sebagian besar GPU lainnya. Sebagai contoh untuk seri GTX 900, artikel tersebut menyebutkan bahwa kinerja presisi ganda adalah 1/32 dari kinerja presisi tunggal, sedangkan artikel Wikipedia ini mengatakan bahwa untuk seri GTX 700, kinerja presisi ganda adalah 1/24 dari presisi tunggal. kinerja (kecuali untuk Titan di mana ia bisa setinggi 1/3 dari kinerja presisi tunggal).
sumber