Semakin GPU digunakan untuk tugas-tugas non-grafis seperti perhitungan risiko, perhitungan dinamika fluida, dan analisis seismik. Apa yang menghentikan kita dari mengadopsi perangkat berbasis GPU?
Sesi Tanya & Jawab hari ini hadir untuk memberi kami hak milik SuperUser-subdivisi Stack Exchange, kumpulan situs web Q & A berbasis komunitas.
Pembaca SuperUser, Ell terus mengikuti berita teknologi dan ingin tahu mengapa kami tidak menggunakan lebih banyak sistem berbasis GPU:
Sepertinya saya hari ini banyak perhitungan dilakukan pada GPU. Jelas grafis yang dilakukan di sana, tetapi menggunakan CUDA dan sejenisnya, AI, hashing algoritma (berpikir Bitcoin) dan yang lainnya juga dilakukan pada GPU. Mengapa kita tidak bisa menyingkirkan CPU dan menggunakan GPU sendiri? Apa yang membuat GPU jauh lebih cepat daripada CPU?
Kenapa memang begitu? Apa yang membuat CPU itu unik?
Penyumbang SuperUser DragonLord menawarkan gambaran umum tentang perbedaan antara GPU dan CPU:
TL; DR answer: GPU memiliki lebih banyak inti prosesor daripada CPU, tetapi karena setiap inti GPU berjalan jauh lebih lambat daripada inti CPU dan tidak memiliki fitur yang diperlukan untuk sistem operasi modern, mereka tidak sesuai untuk melakukan sebagian besar pemrosesan dalam komputasi sehari-hari. Mereka paling cocok untuk operasi komputasi intensif seperti pemrosesan video dan simulasi fisika.
Jawaban mendetail:GPGPU masih merupakan konsep yang relatif baru. GPU awalnya digunakan untuk rendering grafis saja; sebagai teknologi maju, sejumlah besar core dalam GPU relatif terhadap CPU dieksploitasi dengan mengembangkan kemampuan komputasi untuk GPU sehingga mereka dapat memproses banyak aliran data paralel secara bersamaan, tidak peduli apa pun data itu. Sementara GPU dapat memiliki ratusan atau bahkan ribuan stream processor, mereka masing-masing berjalan lebih lambat dari inti CPU dan memiliki lebih sedikit fitur (bahkan jika mereka sudah selesai dan dapat diprogram untuk menjalankan program apa pun yang dapat dijalankan oleh CPU). Fitur yang hilang dari GPU termasuk interupsi dan memori virtual, yang diperlukan untuk menerapkan sistem operasi modern.
Dengan kata lain, CPU dan GPU memiliki arsitektur yang berbeda secara signifikan yang membuat mereka lebih cocok untuk tugas yang berbeda. GPU dapat menangani sejumlah besar data dalam banyak aliran, melakukan operasi yang relatif sederhana, tetapi tidak sesuai untuk pemrosesan yang berat atau kompleks pada satu atau beberapa aliran data. CPU jauh lebih cepat pada basis per-inti (dalam hal instruksi per detik) dan dapat melakukan operasi kompleks pada satu atau beberapa aliran data dengan lebih mudah, tetapi tidak dapat menangani banyak aliran secara bersamaan.
Akibatnya, GPU tidak cocok untuk menangani tugas yang tidak mendapatkan manfaat signifikan dari atau tidak dapat diparalelkan, termasuk banyak aplikasi konsumen umum seperti pengolah kata. Selain itu, GPU menggunakan arsitektur yang sangat berbeda; seseorang harus memprogram aplikasi khusus untuk GPU agar dapat berfungsi, dan teknik yang sangat berbeda diperlukan untuk memprogram GPU. Teknik yang berbeda ini termasuk bahasa pemrograman baru, modifikasi bahasa yang ada, dan paradigma pemrograman baru yang lebih cocok untuk mengekspresikan perhitungan sebagai operasi paralel yang akan dilakukan oleh banyak pengolah stream. Untuk informasi lebih lanjut tentang teknik yang diperlukan untuk memprogram GPU, lihat artikel Wikipedia tentang pemrosesan aliran dan komputasi paralel.
GPU modern mampu melakukan operasi vektor dan aritmatika floating-point, dengan kartu terbaru yang mampu memanipulasi angka floating-point presisi ganda. Kerangka kerja seperti CUDA dan OpenCL memungkinkan program ditulis untuk GPU, dan sifat dari GPU membuat mereka paling cocok untuk operasi yang sangat paralel, seperti dalam komputasi ilmiah, di mana serangkaian kartu komputasi GPU khusus dapat menjadi pengganti yang layak untuk kecil compute cluster seperti dalam NVIDIA Tesla Personal Supercomputers. Konsumen dengan GPU modern yang berpengalaman dengan Folding @ home dapat menggunakannya untuk berkontribusi dengan klien GPU, yang dapat melakukan simulasi pelipatan protein pada kecepatan yang sangat tinggi dan berkontribusi lebih banyak pekerjaan untuk proyek (pastikan untuk membaca FAQ terlebih dahulu, terutama yang terkait dengan GPU). GPU juga dapat mengaktifkan simulasi fisika yang lebih baik dalam gim video menggunakan PhysX, mempercepat pengodean dan penguraian video, dan melakukan tugas-tugas komputasi intensif lainnya. Ini adalah jenis tugas yang paling cocok untuk performa GPU.
AMD adalah perintis desain prosesor yang disebut Accelerated Processing Unit (APU) yang menggabungkan core CPU x86 konvensional dengan GPU. Ini dapat memungkinkan komponen CPU dan GPU bekerja bersama dan meningkatkan kinerja pada sistem dengan ruang terbatas untuk komponen terpisah. Seiring kemajuan teknologi, kita akan melihat peningkatan tingkat konvergensi dari bagian-bagian yang terpisah sekali ini. Namun, banyak tugas yang dilakukan oleh sistem operasi PC dan aplikasi masih lebih sesuai untuk CPU, dan banyak pekerjaan yang diperlukan untuk mempercepat program menggunakan GPU. Karena begitu banyak perangkat lunak yang ada menggunakan arsitektur x86, dan karena GPU memerlukan teknik pemrograman yang berbeda dan kehilangan beberapa fitur penting yang diperlukan untuk sistem operasi, transisi umum dari CPU ke GPU untuk komputasi sehari-hari sangat sulit.
Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.