Apakah GPU yang tersedia saat ini mendukung aritmatika floating point presisi ganda?

17

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?

Andrew
sumber
lihat titan gtx yang didasarkan pada gk110 dan memiliki dukungan penetapan harga ganda ..... meskipun agak mahal ..... sekitar $
Wikipedia tidak selalu memiliki informasi terkini tentang topik yang berubah dengan cepat ...
Jeff

Jawaban:

17

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.

Pelihat Godric
sumber
5
Sangat ketinggalan jaman. Prosesor NVIDIA khususnya telah memiliki dukungan presisi ganda selama bertahun-tahun. Terus terang, itu secara signifikan lebih lambat daripada kemampuan presisi tunggal, tetapi itu ada di sana (dan tidak hanya ditiru) dalam GPU bermerek Tesla pertama, dan mungkin sebelum itu. Inkarnasi yang lebih baru telah mengurangi kesenjangan antara sinyal dan dukungan presisi ganda.
Michael Grant
Ya, makalah yang saya tautkan angka-angka yang disebutkan faktor sekitar 8 perbedaan dalam kinerja ketika emulasi diperlukan, tapi sekarang chip dirancang untuk itu, lebih dekat ke faktor 2. Saya akan mengatakan ini kemungkinan karena pada latensi memori kartu dari VRAM ke prosesor, tapi itu hanya tebakan di pihak saya.
Godric Seer
Sebenarnya alasan utama adalah bahwa GPU sebelumnya hanya tidak mencurahkan banyak ruang chip untuk perhitungan presisi ganda. Menurut halaman ini , seri GK110 memiliki unit presisi ganda 8 kali lebih banyak per "blok SMX" (apa pun artinya) daripada seri GK104.
Michael Grant
1
Ah, ya, saya sebenarnya mengacu pada perbedaan 2x GPU saat ini sehubungan dengan komentar bandwidth memori.
Godric Seer
Kena kau. Saya tidak bermaksud turun ke lubang kelinci ini. Jawaban Anda baik-baik saja, itulah sebabnya saya berkomentar dan memilih Anda alih-alih menambahkan jawaban saya sendiri ;-)
Michael Grant
8

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
0

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).

Andre Holzner
sumber