Laman » bagaimana untuk » Mengapa Kami Masih Menggunakan CPU Daripada GPU?

    Mengapa Kami Masih Menggunakan CPU Daripada GPU?

    Semakin banyak GPU digunakan untuk tugas-tugas yang tidak grafik seperti perhitungan risiko, pengiraan dinamik bendalir, dan analisis seismik. Apa yang menghalang kami daripada mengguna pakai peranti GPU-driven?

    Sesi Soalan & Jawapan hari ini datang kepada kami dengan hormat SuperUser-satu bahagian pembahagian Stack Exchange, kumpulan pemanduan komuniti laman web Q & A.

    Soalan

    Pembaca SuperUser Ell mengekalkan berita teknologi dan ingin tahu mengapa kami tidak menggunakan lebih banyak sistem berasaskan GPU:

    Nampaknya saya banyak pengiraan pada hari ini. Jelasnya grafik dilakukan di sana, tetapi menggunakan CUDA dan sejenis, AI, algoritma hashing (fikir Bitcoins) dan lain-lain juga dilakukan pada GPU. Kenapa kita tidak boleh cabut CPU dan menggunakan GPU sendiri? Apa yang membuat GPU jauh lebih cepat daripada CPU?

    Kenapa memang? Apa yang menjadikan CPU unik?

    Jawapan

    Penyumbang SuperUser DragonLord menawarkan gambaran keseluruhan yang disokong mengenai perbezaan antara GPU dan CPU:

    Jawapan TL: DR: GPU mempunyai lebih banyak prosesor teras daripada CPU, tetapi kerana setiap teras GPU berjalan dengan ketara lebih rendah daripada teras CPU dan tidak mempunyai ciri-ciri yang diperlukan untuk sistem operasi moden, mereka tidak sesuai untuk melakukan kebanyakan pemprosesan dalam pengkomputeran sehari-hari. Mereka paling sesuai untuk mengira operasi intensif seperti pemprosesan video dan simulasi fizik.

    Jawapan terperinci: GPGPU masih merupakan konsep yang agak baru. GPU pada mulanya digunakan untuk membuat grafik sahaja; sebagai teknologi maju, banyak teras dalam GPU berbanding dengan CPU dieksploitasi dengan membangun keupayaan pengkomputeran untuk GPU supaya mereka dapat memproses banyak data aliran serentak serentak, tidak peduli apa data itu. Walaupun GPU boleh beratus-ratus atau bahkan beribu-ribu pemproses aliran, mereka masing-masing berjalan lebih perlahan daripada teras CPU dan mempunyai ciri-ciri yang lebih sedikit (walaupun mereka adalah Tinjauan lengkap dan boleh diprogramkan untuk menjalankan sebarang program CPU boleh dijalankan). Ciri-ciri yang hilang dari GPU termasuk gangguan dan memori maya, yang diperlukan untuk melaksanakan sistem operasi moden.

    Dalam erti kata lain, CPU dan GPU mempunyai seni bina yang berbeza yang membuat mereka lebih sesuai dengan tugas yang berbeza. GPU boleh mengendalikan sejumlah besar data dalam banyak aliran, melakukan operasi yang agak mudah pada mereka, tetapi tidak sesuai dengan pemprosesan berat atau rumit pada satu atau beberapa aliran data. CPU lebih pantas pada asas per-teras (dari segi arahan sesaat) dan boleh melakukan operasi kompleks pada satu atau beberapa aliran data dengan lebih mudah, tetapi tidak dapat mengendalikan banyak aliran serentak secara serentak.

    Akibatnya, GPU tidak sesuai untuk mengendalikan tugas yang tidak mendapat manfaat daripada atau tidak boleh dipasangkan, termasuk banyak aplikasi pengguna biasa seperti pemproses kata. Lebih-lebih lagi, GPU menggunakan senibina yang asasnya berbeza; seseorang perlu memprogram aplikasi khusus untuk GPU untuk berfungsi, dan teknik yang berbeza sangat diperlukan untuk memprogram GPU. Teknik yang berbeza ini termasuk bahasa pengaturcaraan baru, pengubahsuaian kepada bahasa yang ada, dan paradigma pengaturcaraan baru yang lebih sesuai untuk menyatakan pengiraan sebagai operasi selari yang akan dilakukan oleh banyak pemproses aliran. Untuk maklumat lanjut mengenai teknik yang diperlukan untuk program GPU, lihat artikel Wikipedia mengenai pemprosesan aliran dan pengkomputeran selari.

    GPU moden mampu melaksanakan operasi vektor dan aritmetik terapung terapung, dengan kad terbaru yang mampu memanipulasi nombor terapung-titik ketepatan ganda. Rangka kerja seperti CUDA dan OpenCL membolehkan program ditulis untuk GPU dan sifat GPU menjadikannya paling sesuai untuk operasi yang sangat parallelizable, seperti dalam pengkomputeraan saintifik, di mana satu siri kad pengiraan GPU khusus boleh menjadi pengganti yang sesuai untuk sesuatu yang kecil mengira cluster seperti di NVIDIA Tesla Personal Supercomputers. Pengguna GPU moden yang berpengalaman dengan Folding @ home boleh menggunakannya untuk menyumbang kepada pelanggan GPU, yang boleh melakukan simulasi lipat protein pada kelajuan yang sangat tinggi dan menyumbang lebih banyak kerja kepada projek (pastikan anda membaca Soalan Lazim terlebih dahulu, terutama yang berkaitan dengan GPU). GPU juga boleh membolehkan simulasi fizik yang lebih baik dalam permainan video menggunakan PhysX, mempercepat pengekodan video dan penyahkodan, dan melakukan tugas-tugas komputasi yang lain. Ia adalah jenis tugas yang GPU paling sesuai untuk melakukan.

    AMD merintis reka bentuk pemproses yang dikenali sebagai Unit Pemprosesan Dipercepat (APU) yang menggabungkan teras CPU x86 konvensional dengan GPU. Ini membolehkan komponen CPU dan GPU berfungsi bersama dan meningkatkan prestasi sistem dengan ruang terhad untuk komponen berasingan. Memandangkan teknologi terus maju, kita akan menyaksikan semakin banyak penumpuan dari bahagian-bahagian yang terpisah ini. Walau bagaimanapun, banyak tugas yang dilakukan oleh sistem operasi PC dan aplikasi masih lebih sesuai untuk CPU, dan banyak kerja diperlukan untuk mempercepatkan program menggunakan GPU. Memandangkan begitu banyak perisian sedia ada menggunakan seni bina x86, dan kerana GPU memerlukan teknik pengaturcaraan yang berbeza dan hilang beberapa ciri penting yang diperlukan untuk sistem pengendalian, peralihan umum dari CPU ke GPU untuk pengkomputeran harian amat sukar.


    Mempunyai sesuatu untuk menambah penjelasannya? Bunyi dalam komen. Ingin membaca lebih banyak jawapan dari pengguna Stack Exchange yang berteknologi tinggi? Lihat thread perbincangan penuh di sini.