Mengapa Mike Pound mengukur kemampuan komputernya dengan kartu grafisnya, dan bukan prosesornya?

17

Saya baru-baru ini menonton video Computerphile yang hebat dengan kata sandi di mana Mike Pound membual tentang superkomputer perusahaannya yang memiliki 4 kartu grafis (tepatnya Titan X).

Sebagai penggemar simulasi numerik, saya bermimpi membangun desktop hanya untuk pekerjaan simulasi. Mengapa Mike Pound mengukur kemampuan komputernya dengan kartu grafis dan bukan prosesornya? Jika saya membuat komputer, barang apa yang lebih saya pedulikan?

Ra31513
sumber
11
Saya tidak berpikir ini adalah pertanyaan Gorilla vs Shark ... Ada pertanyaan sederhana: "Mengapa Mike Pound mengukur kemampuan komputernya dengan kartu grafis, dan bukan prosesornya?" yang dapat dijawab dan jawabannya memiliki nilai konstruktif untuk pembaca masa depan.
Maybe_Factor
6
@gnat: bahkan tidak dekat. Tentu saja, pertanyaannya, dalam bentuk saat ini, sebenarnya bukan tentang rekayasa perangkat lunak. Tapi saya kira itu bisa ditafsirkan sebagai pertanyaan tentang rekayasa sistem, di mana sistem = "kombinasi perangkat keras + perangkat lunak".
Doc Brown
10
Komputer dengan 4 kartu grafis tidak sama dengan superkomputer (dan begitu juga dengan 10 Raspberry Pis).
Matti Virkkunen
10
Itu hanya setup PC yang sangat mahal, bukan superkomputer ...
Bakuriu
3
Bukankah jawaban sederhana untuk "Mengapa Mike Pound mengukur kemampuan komputasi komputernya dengan kartu grafisnya" karena konteksnya adalah pemecahan kata sandi? Jika Anda masalah ruang adalah sesuatu yang lain, apa yang perlu Anda perhatikan mungkin adalah sesuatu yang sama sekali berbeda.
JimmyJames

Jawaban:

32

Mike Pound jelas menghargai kemampuan komputasi kartu grafis yang lebih tinggi dari kemampuan komputasi CPU.

Mengapa? Kartu grafis pada dasarnya terdiri dari prosesor BANYAK yang disederhanakan yang semuanya berjalan secara paralel. Untuk beberapa pekerjaan simulasi, banyak perhitungan dapat dengan mudah diparalelkan dan diproses secara paralel pada ribuan core yang tersedia dalam kartu grafis, mengurangi waktu pemrosesan total.

item mana yang harus saya pedulikan? Ini benar-benar tergantung pada beban kerja yang Anda pedulikan, dan bagaimana beban kerja itu dapat / diparalelkan untuk digunakan pada kartu grafis. Jika beban kerja Anda adalah serangkaian perhitungan sederhana yang memalukan, dan perangkat lunak ini ditulis untuk memanfaatkan kartu grafis yang tersedia, maka lebih banyak kartu grafis akan memiliki dampak kinerja yang jauh lebih besar daripada lebih banyak CPU (dolar untuk dolar).

Maybe_Factor
sumber
5
Menambahkan beberapa angka. Katakanlah komputer utama Anda adalah AMD Epyc Server, 64 core, 128 dengan Hyperthreading. Katakan juga "kartu inti" kartu grafis hanya 10% lebih cepat. ONE TitanX masih memiliki 3072 cuda core, sekitar 12000 untuk setup. Dapatkan idenya? JIKA Anda dapat menjalankan masalah pada kartu grafis, itu bukan "lebih cepat" - itu seperti membandingkan kecepatan kereta kuda dengan mobil formula 1.
TomTom
3
+1 untuk 'kumpulan komputasi sederhana yang memalukan', ditulis dengan sangat baik. Singkat dan langsung ke inti nya.
Michael Viktor Starberg
11
@ TomTom: Sebenarnya perbandingan yang saya sukai adalah membandingkan mobil formula 1 (CPU Anda) dengan kereta peluru. Tentu, kereta dan mobil kira-kira memiliki kecepatan yang sama. Tetapi kereta dapat memindahkan 1000 orang dari A ke B lebih cepat daripada mobil formula 1.
Slebetman
2
@slebetman intinya adalah CPU biasanya jauh lebih cepat dalam kinerja single-core (tidak kurang dari kecepatan yang sama). Mungkin kita bisa berkompromi, dan membandingkan pesawat jet supersonik dengan lokomotif uap.
Darren Ringer
2
Jika saya harus memilih analogi berdasarkan kendaraan, saya akan mengatakan CPU seperti jet tempur (itu jauh lebih cepat untuk transportasi point-to-point dan memiliki banyak trik di lengannya yang tidak bisa dilakukan oleh kendaraan lain, tetapi hanya bisa membawa muatan yang sangat kecil) sementara GPU seperti kapal kargo (dapat membawa beban yang jauh lebih besar secara paralel, tetapi memiliki perputaran jauh lebih lambat).
Lie Ryan
5

Lihat https://developer.nvidia.com/cuda-zone (dan google cuda nvidia untuk info lebih lanjut). Arsitektur cuda dan kartu grafis kelas atas cukup banyak digunakan untuk superkomputer desktop. Anda biasanya dapat mengumpulkan beberapa kotak Tflop dengan harga di bawah $ 10K (usd) menggunakan komponen papan tulis di luar rak.

Begitu...

Sebagai penggemar simulasi numerik, saya bermimpi membangun desktop hanya untuk pekerjaan simulasi

... cuda adalah game terbaik di kota untukmu. Mungkin coba tanyakan lagi di /scicomp// atau situs web stackexchange lain, lebih terlibat langsung dengan hal semacam ini.

(Omong-omong, saya menganggap Anda nyaman dengan gagasan bahwa kita sedang berbicara tentang pemrograman paralel masif di sini, jadi Anda mungkin perlu membiasakan diri dengan paradigma untuk desain algoritma.)

John Forkosh
sumber
Dan kita kembali ke Ordos seperti biasa.
Michael Viktor Starberg
2
@MichaelViktorStarberg Apakah saya satu-satunya yang tidak memahami referensi Ordos?
MarnixKlooster ReinstateMonica
Saya khawatir Anda ...: /
Ismael Miguel
4
@MarnixKlooster: Saya harus ke Google "Ordos." Tidak yakin apa yang dimaksud "kota hantu" di Cina dengan superkomputer atau teraflop.
Robert Harvey
@MarnixKlooster Anda memang tidak.
jpmc26
2

Jika saya membuat komputer, barang apa yang harus saya pedulikan?

Dari sudut pandang praktis Anda mungkin harus membayar sedikit perhatian pada motherboard dan CPU mengingat relatif sulitnya peningkatan dibandingkan dengan GPU. Setelah pembelian adalah waktu yang buruk untuk mengetahui Anda tidak memiliki ruang untuk empat GPU atau prosesor yang cukup cepat untuk membuat mereka semua sibuk.

Anda juga harus menyadari bahwa kinerja GPU paling sering dilaporkan dalam FLOP presisi tunggal, dan turun sedikit untuk presisi ganda. Jika Anda membutuhkan ketepatan ekstra dalam simulasi, Anda akan berakhir jauh di bawah kecepatan yang diiklankan.

Pergi ke balapan rekayasa perangkat lunak

Sebenarnya ada dua perhatian utama dari sudut pandang perangkat lunak, bottleneck Von Neumann dan model pemrograman. CPU memiliki akses yang cukup baik ke memori utama, GPU memiliki sejumlah besar memori onboard yang lebih cepat. Bukan tidak diketahui bahwa waktu memindahkan data masuk dan keluar dari GPU sepenuhnya meniadakan setiap kemenangan kecepatan. Secara umum CPU adalah pemenang untuk perhitungan moderat pada sejumlah besar data sementara GPU unggul dalam perhitungan berat pada jumlah yang lebih kecil. Semuanya membawa kita ke model pemrograman.

Pada tingkat tinggi masalahnya adalah debat MIMD / SIMD kuno dan terhormat. Multiple-Instruction / Multiple-Data sistem telah menjadi pemenang besar dalam komputasi umum dan komersial. Dalam model ini, yang mencakup SMP, ada beberapa prosesor yang masing-masing mengeksekusi aliran instruksi masing-masing. Ini setara dengan komputer dari dapur Prancis, tempat Anda mengarahkan sejumlah kecil koki terampil untuk menyelesaikan tugas yang relatif rumit.

Sistem Single-Instruction / Multiple-Data, di sisi lain, lebih mirip sebuah ruangan besar penuh pegawai yang dirantai ke meja mereka mengikuti instruksi dari master controller. "Semua orang TAMBAH baris 3 dan 5!" Itu digunakan dalam bentuk murni di ILLIAC dan beberapa sistem "mini-super" tetapi hilang di pasar. GPU saat ini adalah sepupu dekat, mereka lebih fleksibel tetapi memiliki filosofi umum yang sama.

Singkatnya:

  • Untuk operasi apa pun yang diberikan CPU akan lebih cepat, sedangkan GPU dapat melakukan banyak secara bersamaan. Perbedaannya paling jelas dengan float 64-bit.
  • Core CPU dapat beroperasi pada alamat memori apa pun, data untuk GPU harus dikemas ke area yang lebih kecil. Anda hanya menang jika Anda melakukan perhitungan yang cukup untuk mengimbangi waktu transfer.
  • Kode yang berat dalam kondisi biasanya akan lebih bahagia di CPU.
Matthew Gauthier
sumber