Mengapa Kita Masih Menggunakan CPU, Bukan GPU?
Semakin banyak GPU digunakan untuk tugas-tugas non-grafis seperti perhitungan risiko, perhitungan dinamika fluida, dan analisis seismik. Apa yang menghentikan kami dari mengadopsi perangkat yang digerakkan GPU?
Sesi Tanya Jawab hari ini datang kepada kami dengan izin dari SuperUser-subdivisi Stack Exchange, pengelompokan komunitas yang didorong oleh situs web T&J.
Pertanyaan
Pembaca SuperUser, Ell mengikuti berita teknologi dan ingin tahu mengapa kami tidak menggunakan lebih banyak sistem berbasis GPU:
Tampak bagi saya bahwa hari ini banyak perhitungan dilakukan pada GPU. Jelas grafis dilakukan di sana, tetapi menggunakan CUDA dan sejenisnya, AI, algoritma hashing (pikirkan Bitcoin) dan lainnya juga dilakukan pada GPU. Mengapa kita tidak bisa begitu saja menyingkirkan CPU dan menggunakan GPU sendiri? Apa yang membuat GPU jauh lebih cepat daripada CPU?
Mengapa memang? Apa yang membuat CPU unik?
Jawabannya
Kontributor SuperUser DragonLord menawarkan ikhtisar yang didukung dengan baik tentang perbedaan antara GPU dan CPU:
TL; DR jawab: GPU memiliki core prosesor yang jauh lebih banyak daripada CPU, tetapi karena setiap core GPU berjalan secara signifikan lebih lambat daripada core 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 intensif komputasi seperti pemrosesan video dan simulasi fisika.
Jawaban terperinci: GPGPU masih merupakan konsep yang relatif baru. GPU pada awalnya hanya digunakan untuk rendering grafik; seiring dengan kemajuan teknologi, 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 prosesor aliran, 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 gangguan dan memori virtual, yang diperlukan untuk menerapkan sistem operasi modern.
Dengan kata lain, CPU dan GPU memiliki arsitektur yang sangat berbeda yang membuatnya lebih cocok untuk tugas yang berbeda. GPU dapat menangani sejumlah besar data di banyak aliran, melakukan operasi yang relatif sederhana, tetapi tidak cocok untuk pemrosesan yang berat atau kompleks pada satu atau beberapa aliran data. CPU jauh lebih cepat berdasarkan per-inti (dalam hal instruksi per detik) dan dapat melakukan operasi yang kompleks pada satu atau beberapa aliran data lebih mudah, tetapi tidak dapat secara efisien menangani banyak aliran secara bersamaan.
Akibatnya, GPU tidak cocok untuk menangani tugas-tugas yang tidak diuntungkan secara signifikan atau tidak dapat diparalelkan, termasuk banyak aplikasi konsumen umum seperti pengolah kata. Lebih jauh, GPU menggunakan arsitektur yang berbeda secara fundamental; kita harus memprogram aplikasi khusus untuk GPU agar bisa berfungsi, dan teknik yang berbeda diperlukan untuk memprogram GPU. Teknik-teknik yang berbeda ini mencakup bahasa pemrograman baru, modifikasi bahasa yang ada, dan paradigma pemrograman baru yang lebih cocok untuk mengekspresikan komputasi sebagai operasi paralel yang harus dilakukan oleh banyak pemroses arus. 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 GPU membuatnya paling cocok untuk operasi yang sangat paralel, seperti dalam komputasi ilmiah, di mana serangkaian kartu komputasi khusus GPU dapat menjadi pengganti yang layak untuk kartu kecil. compute cluster seperti pada NVIDIA Tesla Personal Supercomputer. Konsumen dengan GPU modern yang berpengalaman dengan Folding @ home dapat menggunakannya untuk berkontribusi dengan klien GPU, yang dapat melakukan simulasi pelipatan protein dengan kecepatan sangat tinggi dan berkontribusi lebih banyak pekerjaan pada proyek (pastikan untuk membaca FAQ terlebih dahulu, terutama yang terkait dengan GPU). GPU juga dapat mengaktifkan simulasi fisika yang lebih baik dalam permainan video menggunakan PhysX, mempercepat encoding dan decoding video, dan melakukan tugas-tugas komputasi intensif lainnya. Jenis tugas inilah yang paling cocok untuk dilakukan oleh GPU.
AMD memelopori desain prosesor yang disebut Accelerated Processing Unit (APU) yang menggabungkan core CPU x86 konvensional dengan GPU. Ini dapat memungkinkan komponen CPU dan GPU untuk bekerja bersama dan meningkatkan kinerja pada sistem dengan ruang terbatas untuk komponen yang terpisah. Ketika teknologi terus berkembang, kita akan melihat peningkatan tingkat konvergensi dari bagian-bagian yang terpisah ini. Namun, banyak tugas yang dilakukan oleh sistem operasi PC dan aplikasi masih lebih cocok 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..
Punya sesuatu untuk ditambahkan ke penjelasan? Berbunyi dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang mengerti teknologi lainnya? Lihat utas diskusi lengkap di sini.