Pertanyaan Mengapa kita masih menggunakan CPU bukan GPU?


Sepertinya saya hari ini banyak perhitungan dilakukan pada GPU. Jelas grafis yang dilakukan di sana, tetapi menggunakan CUDA dan sejenisnya, AI, hashing algoritma (think 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?


352
2017-07-10 13:31


asal


bagaimana saya tahu jawaban mana yang berisi informasi yang benar? Haruskah saya menunggu sampai orang lain memilih jawaban atas / bawah? Saya pikir saya terlalu terburu-buru dalam menerima jawaban: O - ell
Ada beberapa jawaban terbaru @ sekarang, yang tidak mengandung "kesalahan informasi". Mereka secara bertahap naik ke atas dengan suara karena mekanisme pasar yang efisien dari StackExchange dirancang indah ;-) Saya akan menyarankan menunggu sedikit lebih lama sebelum menerima jawaban. Sepertinya Anda sangat berhati-hati melakukan hal itu. Ini pertanyaan yang bagus, ngomong-ngomong. Mungkin tampak jelas, tetapi tidak sama sekali. Terima kasih sudah bertanya! - Ellie Kesselman
Mirip seperti bertanya "Jika Boeing 747 lebih cepat dan lebih efisien bahan bakar, mengapa kita masih mengendarai mobil"? - vartec
Tidak, karena ini bukan RISC versus CISC. Ini adalah salah satu dasar ilmu komputer lainnya, sedikit menyamar. Nya "Mengapa kita memindahkan pekerjaan dari prosesor pusat ke prosesor I / O?". - JdeBP
@ vartec: Saya pikir analogi yang sedikit lebih baik mungkin antara bus dan taksi. Jika ada empat puluh orang yang semuanya ingin pergi dari tempat yang sama ke tempat yang sama, bus akan jauh lebih efisien. Jika ada empat puluh orang yang asal dan tujuannya yang diinginkan tersebar luas, bahkan satu taksi pun mungkin sama bagusnya dengan bus, dan untuk biaya bus orang bisa memiliki beberapa taksi. - supercat


Jawaban:


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.


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 stream, mereka masing-masing berjalan lebih lambat dari inti CPU dan memiliki lebih sedikit fitur (bahkan jika mereka Turing 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 di stream processing 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 klausa komputasi seperti di Personal Superkomputer NVIDIA Tesla. Konsumen dengan GPU modern yang berpengalaman dengan Folding @ home dapat menggunakannya untuk berkontribusi Klien GPU, yang dapat melakukan simulasi lipat protein pada kecepatan yang sangat tinggi dan berkontribusi lebih banyak pekerjaan untuk proyek (pastikan untuk membaca Tanya jawab pertama, 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. Pendekatan ini memungkinkan kinerja grafis jauh lebih unggul daripada solusi grafis terintegrasi motherboard (meskipun tidak cocok untuk GPU diskrit yang lebih mahal), dan memungkinkan sistem yang ringkas, biaya rendah dengan kinerja multimedia yang baik tanpa memerlukan GPU terpisah. Prosesor Intel terbaru juga menawarkan grafis terintegrasi on-chip, meskipun kinerja GPU terintegrasi yang kompetitif saat ini terbatas pada beberapa chip dengan Intel Iris Pro Graphics. Seiring kemajuan teknologi, kita akan melihat peningkatan tingkat konvergensi dari bagian-bagian yang terpisah sekali ini. AMD membayangkan masa depan di mana CPU dan GPU adalah satu, yang mampu bekerja sama dengan lancar pada tugas yang sama.

Meskipun demikian, 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.


373
2017-07-10 14:00



Seperti jawaban ini, saya pikir alasan utamanya adalah bahwa kita tidak memiliki bahasa pemrograman arus utama yang baik untuk berurusan dengan arsitektur paralel seperti ini. Kami telah berjuang selama beberapa dekade untuk memajukan pemrograman multi-thread, dan orang-orang masih memanggil, multi threading "jahat". Meskipun CPU multi-core dan GPU adalah kenyataan, dan kami harus datang dengan paradigma pemrograman baru untuk menangani hal ini. - Soren
Perlu dicatat bahwa Intel telah bekerja Larrabee arsitektur (terlalu lama) yang pada dasarnya adalah sebuah chip dengan sejumlah besar core x86 di atasnya. - Chris S
Jawaban bagus untuk mendiskusikan alasan perangkat keras dan mendiskusikan APU dan bagaimana mereka akan mengubahnya. Namun, @Soren memberikan poin yang sangat bagus di sisi perangkat lunak. Pada kenyataannya, ini adalah kombinasi dari masalah perangkat keras, masalah perangkat lunak, dan fakta bahwa CPU bekerja dan ketika sesuatu diketahui bekerja, sulit untuk membuat orang menggantinya. - Nich Del
"Kami tidak memiliki bahasa pemrograman arus utama yang baik untuk berurusan dengan arsitektur paralel seperti ini." - Haskell, OCaml, Skema, F #, Erlang, dan cukup banyak bahasa pemrograman fungsional lainnya yang berhubungan dengan multithreading dengan sangat baik. Semua yang saya sebutkan adalah mainstream. - BlueRaja - Danny Pflughoeft
@BlueRaja - kami menyadari bahasa-bahasa ini, definisi Anda tentang aliran utama harus berbeda dengan yang saya miliki :-) - Soren


Apa yang membuat GPU jauh lebih cepat daripada CPU?

GPU-nya tidak lebih cepat dari CPU. CPU dan GPU dirancang dengan dua tujuan berbeda, dengan trade-off yang berbeda, jadi mereka punya berbeda karakteristik kinerja. Tugas-tugas tertentu lebih cepat dalam CPU sementara tugas-tugas lain lebih cepat dihitung dalam GPU. CPU unggul dalam melakukan manipulasi kompleks untuk sekumpulan kecil data, GPU unggul dalam melakukan manipulasi sederhana ke sejumlah besar data.

GPU adalah CPU tujuan khusus, dirancang sedemikian rupa sehingga instruksi tunggal bekerja di atas blok data yang besar (SIMD / Single Instruction Multiple Data), semuanya menerapkan operasi yang sama. Bekerja dalam blok data tentu lebih efisien daripada bekerja dengan satu sel pada satu waktu karena ada banyak pengurangan biaya dalam mendekode instruksi, namun bekerja dalam blok besar berarti ada unit kerja yang lebih paralel, sehingga menggunakan jauh lebih banyak transistor untuk menerapkan instruksi GPU tunggal (menyebabkan kendala ukuran fisik, menggunakan lebih banyak energi, dan menghasilkan lebih banyak panas).

CPU dirancang untuk mengeksekusi satu instruksi pada satu datum secepat mungkin. Karena hanya perlu bekerja dengan datum tunggal, jumlah transistor yang diperlukan untuk mengimplementasikan instruksi tunggal jauh lebih sedikit sehingga CPU dapat memiliki set instruksi yang lebih besar, ALU yang lebih kompleks, prediksi cabang yang lebih baik, virtualisasi yang lebih baik arsitektur, dan skema caching / pipeline yang lebih canggih. Siklus instruksi juga lebih cepat.

Alasan mengapa kami masih menggunakan CPU tidak karena x86 adalah raja arsitektur CPU dan Windows ditulis untuk x86, alasan mengapa kita masih menggunakan CPU adalah karena jenis tugas yang perlu dilakukan oleh sebuah OS, yaitu membuat keputusan, berjalan lebih efisien pada arsitektur CPU. Sebuah OS perlu melihat 100 jenis data yang berbeda dan membuat berbagai keputusan yang semuanya bergantung satu sama lain; pekerjaan semacam ini tidak mudah paralel, setidaknya tidak menjadi arsitektur SIMD.

Di masa depan, apa yang akan kita lihat adalah konvergensi antara CPU dan arsitektur GPU karena CPU memperoleh kemampuan untuk bekerja di blok data, mis. SSE. Selain itu, ketika teknologi manufaktur meningkat dan chip menjadi lebih kecil, GPU mampu menerapkan instruksi yang lebih kompleks.


245
2017-07-10 20:22



Ini mungkin jawaban terbaik di sini. Penting untuk memahami perbedaan mendasar antara dua paradigma. Untuk GPU menyalip CPU, mempertimbangkan beban kerja saat ini, pada dasarnya berarti GPU harus berubah menjadi CPU. Dan demikian pertanyaannya adalah jawabannya. - surfasb
+1 untuk ini menjadi jawaban terbaik. Jawaban ini dan jawaban yang diterima benar, tetapi yang satu ini menjelaskannya dengan lebih jelas.
Saya terkejut tidak seorang pun di thread ini telah menyebutkan overhead pengiriman data ke GPU - bandwidth terbatas atas bus PCI-Express membuat beberapa operasi paralel pada GPU jauh lebih lambat daripada yang mereka lakukan pada CPU. Satu kasus sederhana dapat dilihat di mana memvariasikan ukuran dari FFT membuat perbedaan yang signifikan dalam kinerja pada GPU vs CPU karena overhead pengiriman data, pengaturan konteks, membaca kembali hasil: stackoverflow.com/a/8687732/303612 Operasi yang lebih kecil dapat dilakukan di-cache pada CPU, dan bandwidth memori jauh lebih unggul dari arsitektur PCI-E saat ini - Dr. Andrew Burnett-Thompson
@ Dr.AndrewBurnett-Thompson: itu karena itu tidak relevan dengan pertanyaan itu. Saat ini, GPU dianggap sebagai unit pengolah tambahan, itulah sebabnya memindahkan data dari / ke GPU diperlukan dan mahal. Jika kita memperlakukan GPU sebagai unit pemrosesan kelas pertama, tidak akan ada kebutuhan untuk marshal data antara memori utama dan memori GPU. - Lie Ryan
Tidak optimis, itu bukan overhead bandwidth nol. Jika prosesor dengan arsitektur GPU menjalankan seluruh acara, tidak ada yang perlu dipindahkan, memori GPU aku s memori utama. Tidak ada biaya transfer untuk dibicarakan di tempat pertama karena tidak ada transfer. Ini bukan hipotetis dengan cara, APU AMD menggunakan HSA (arsitektur sistem heterogen) dengan memori utama terpadu yang memungkinkan nol-menyalin antara CPU dan GPU. - Lie Ryan


Kekurangan GPU:

  1. Memori virtual (!!!)
  2. Cara menangani perangkat selain memori (misalnya keyboard, printer, penyimpanan sekunder, dll)
  3. Interupsi

Anda perlu ini untuk dapat mengimplementasikan sesuatu seperti sistem operasi modern.

Mereka juga (relatif) lambat pada aritmatika presisi ganda (bila dibandingkan dengan kinerja aritmatika presisi tunggal mereka) *, dan jauh lebih besar (dalam hal ukuran silikon). Arsitektur GPU yang lebih tua tidak mendukung panggilan tidak langsung (melalui pointer fungsi) yang diperlukan untuk sebagian besar pemrograman tujuan umum, dan arsitektur yang lebih baru yang melakukannya dengan sangat lambat. Akhirnya, (seperti jawaban lainnya telah mencatat), untuk tugas yang tidak dapat diparalelkan, GPU kalah dibandingkan dengan CPU yang diberikan beban kerja yang sama.

EDIT: Harap dicatat bahwa tanggapan ini ditulis pada tahun 2011 - teknologi GPU adalah area yang berubah secara konstan. Hal-hal bisa sangat berbeda tergantung pada saat Anda membaca ini: P

* Beberapa GPU tidak lambat pada aritmatika presisi ganda, seperti NVidia's Quadro atau Tesla lines (generasi Fermi atau yang lebih baru), atau garis FirePro AMD (generasi GCN atau yang lebih baru). Tapi ini tidak di sebagian besar mesin konsumen.


75
2017-07-10 21:17



@Cicada: Apakah Anda punya referensi untuk itu? Dalam hal apapun, bahkan jika itu benar, bahkan perangkat keras baru-baru ini tidak akan berkinerja baik dalam kasus itu. (mis. tidak akan memiliki terlalu banyak keunggulan perf dibandingkan CPU - dan Kekurangan konsumsi daya) - Billy ONeal
Ya, perangkat Fermi seperti yang Anda katakan (dengan CUDA 4.0 dan sm_20), mendukung lompatan tidak langsung (dan karena itu C ++ metode virtual, warisan dll). - Angry Lettuce
544 GigaFLOPS dari $ 300 2 tahun GPU lambat? - Ben Voigt
@Ben: Anda hanya mendapatkan performa seperti itu dalam aplikasi data-paralel. Operasi sekuensial umum adalah ballgame yang berbeda. (Itu hanya dengan 1.600 core pada chip yang berjalan secara paralel, menjalankan instruksi yang sama secara mendasar berulang-ulang ... dan bahkan yang teoritis daripada perf sebenarnya) - Billy ONeal
@Billy: Tapi itu kelambatan pada kelas tertentu dari algoritma, bukan kelambatan pada aritmatika presisi ganda (yang adalah apa yang Anda klaim). (Dan CPU biasanya tidak mencapai throughput benchmark baik) - Ben Voigt


CPU seperti pekerja yang berjalan sangat cepat. Sebuah GPU seperti sekelompok pekerja klon yang berjalan cepat, tetapi semuanya harus melakukan hal yang sama serempak (dengan pengecualian bahwa Anda dapat memiliki beberapa klon duduk diam jika Anda mau)

Mana yang lebih suka Anda miliki sebagai sesama pengembang, satu orang super cepat, atau 100 klon cepat yang sebenarnya tidak secepat, tetapi semua harus melakukan tindakan yang sama secara bersamaan?

Untuk beberapa tindakan, klon cukup bagus mis. menyapu lantai - mereka masing-masing dapat menyapu sebagian dari itu.

Untuk beberapa tindakan, klon itu berbau busuk, mis. tulis laporan mingguan - semua klon tetapi satu tetap diam sementara satu klon menulis laporan (jika tidak, Anda hanya mendapatkan 100 salinan dari laporan yang sama).


37
2017-07-11 15:39



Mungkinkah aku bahkan ... keduanya? - Kevin Panko
@Kevin: Ya, tetapi Anda akan membutuhkan komputer kedua sebuah CPU dan sebuah GPU! Kalau saja ada hal seperti itu! - Joachim Sauer
Analogi yang bagus. Akan mengingat ini. - Mayo


Karena GPU dirancang untuk melakukan banyak hal kecil sekaligus, dan CPU dirancang untuk melakukan satu hal pada satu waktu. Jika proses Anda dapat dibuat paralel masif, seperti hashing, GPU adalah perintah besarnya lebih cepat, jika tidak maka tidak akan.

CPU Anda dapat menghitung hash jauh, jauh lebih cepat daripada GPU Anda - tetapi waktu yang diperlukan CPU Anda untuk melakukannya, GPU Anda dapat menjadi bagian dari beberapa ratus hash. GPU dirancang untuk melakukan banyak hal pada saat yang sama, dan CPU dirancang untuk melakukan satu hal pada satu waktu, tetapi sangat cepat.

Masalahnya adalah bahwa CPU dan GPU adalah solusi yang sangat berbeda untuk masalah yang sangat berbeda, ada sedikit tumpang tindih tetapi umumnya apa yang ada di domain mereka tetap di domain mereka. Kami tidak dapat mengganti CPU dengan GPU karena CPU duduk di sana melakukan tugasnya jauh lebih baik daripada GPU, hanya karena GPU tidak dirancang untuk melakukan pekerjaan, dan CPU.

Namun, catatan kecil di samping, jika dimungkinkan untuk mem-scrap CPU dan hanya memiliki GPU, bukankah Anda pikir kami akan mengganti namanya? :)


23
2017-07-10 17:51



Saya pikir kebanyakan CPU modern dirancang untuk melakukan 2, 4, atau 8 hal sekaligus. - danielcg
@ danielcg25: Dan kebanyakan GPU modern dirancang untuk melakukan 256, 512, 1024 hal sekaligus (The GTX 680 memiliki 1536 Inti CUDA). Masing-masing inti CPU adalah entitas yang berbeda secara konseptual, tetapi ini tidak berlaku untuk GPU. - Phoshi
@ danielcg25: Saya sadar, tetapi komentar dengan kesalahpahaman mendasar (walaupun disengaja) tentang jawabannya bisa berbahaya jika ada yang membacanya tanpa mengetahui topiknya. "Menjadi keledai" dalam arti itu tidak benar-benar dihargai pada SE karena menurunkan sinyal: rasio noise. - Phoshi
Saya hanya memberikan beberapa informasi. Sebagian besar komputer saat ini sebenarnya mampu memproses 2-8 hal sekaligus. Beberapa prosesor dapat melakukan lebih dari itu. Itu masih tidak mendekati GPU yang melakukan 100 hal sekaligus. - danielcg
@ danielcg25: Ini adalah jenis pemrosesan yang berbeda, itulah pertanyaannya. Setiap inti CPU secara efektif terpisah, bekerja dengan bongkahan data sendiri dan prosesnya sendiri. Setiap inti CPU melakukan tugas yang berbeda dan terpisah satu sama lain, dan mereka tidak menskala ke atas secara linier - sebuah octo-core tidak dua kali lebih berguna daripada quad core tidak dua kali lebih berguna daripada dual core. Core GPU, di sisi lain, melakukan tugas yang sama di seluruh bagian data yang berbeda, dan melakukan skala secara linier. Jelas bahwa CPU multi-core ada, tapi ini bukan hal yang sama. - Phoshi


Apakah Anda benar-benar bertanya mengapa kita tidak menggunakan GPU seperti arsitektur di CPU?

GPU hanyalah CPU khusus dari kartu grafis. Kami meminjamkan komputasi grafis non grafis karena CPU tujuan umum tidak sebanding secara paralel dan eksekusi floating point.

Kami sebenarnya menggunakan arsitektur CPU yang berbeda (lebih GPU-ish). Misalnya. Niagara prosesor cukup multitasking. SPARC T3 akan menjalankan 512 rangkaian konkuren.


14
2017-07-10 17:57



Mengapa downvote? - jkj
Saya kira baris terakhir, karena itu salah. Bahkan, saya hanya bisa memikirkan satu OS utama x86-only; dan bahkan yang telah diporting ke prosesor alpha dan ARM, hanya tidak ditawarkan secara komersial saat ini. - Javier
Baik. Menghapus bagian terakhir yang merupakan pendapat saya tentang dukungan sistem operasi utama yang menghambat perubahan ke arsitektur baru. Mungkin tidak ada dalam lingkup jawaban. - jkj


Saya mungkin sangat keliru di sini, dan saya berbicara dari sedikit atau tidak ada otoritas pada subjek, tapi di sini pergi:

  • Saya percaya setiap unit eksekusi GPU ("inti") memiliki ruang alamat yang sangat terbatas dibandingkan dengan CPU.

  • Unit eksekusi GPU tidak dapat menangani percabangan secara efisien.

  • Unit eksekusi GPU tidak mendukung interupsi perangkat keras dengan cara yang sama dengan CPU.

Saya selalu berpikir cara unit eksekusi GPU dimaksudkan adalah sesuatu seperti Playstation 3 "SPE", mereka ingin diberi blok data, menjalankan sejumlah operasi sekuensial di atasnya, dan kemudian memuntahkan blok lain dari data, bilas, ulangi. Mereka tidak memiliki banyak memori yang dapat dialamatkan sebagai "CPE" utama tetapi gagasannya adalah untuk mendedikasikan masing-masing "SPE" ke suatu tugas tertentu yang berurutan. Output dari satu unit mungkin memberi masukan dari unit lain.

Unit eksekusi tidak berfungsi dengan baik jika mereka mencoba "menganalisis" data dan membuat banyak keputusan berdasarkan data tersebut.

"Blok data" ini dapat menjadi bagian dari aliran, seperti daftar simpul dari tabel status permainan, data MPEG dari disk, dll.

Jika sesuatu tidak sesuai dengan model "streaming" ini maka Anda memiliki tugas yang tidak dapat secara efisien dipisah dan GPU belum tentu solusi terbaik untuk itu. Contoh yang baik adalah memproses hal-hal "peristiwa eksternal" berdasarkan seperti keyboard, joystick, atau input jaringan. Tidak banyak hal yang tidak sesuai dengan model itu, tetapi akan selalu ada beberapa.


11
2017-07-10 15:55



Poin bagus tentang optimasi prediksi cabang - saya tidak akan pernah mempertimbangkan itu, tetapi Anda benar. - Jimmy Breck-McKye


Ini adalah tidak ada tentang kecepatan atau tujuan jam. Mereka sama-sama mampu menyelesaikan sebagian besar, jika tidak semua tugas; Namun ada yang sedikit lebih cocok untuk beberapa tugas daripada yang lain.

Telah ada sangat Argumen lama tentang apakah lebih baik memiliki banyak inti bodoh atau sekelompok kecil inti yang sangat cerdas. Ini kembali dengan mudah ke 80-an.

Di dalam CPU ada banyak kemungkinan perhitungan yang bisa dilakukan. Inti yang lebih pintar mampu melakukan banyak perhitungan yang berbeda pada saat yang sama (jenis seperti multi-core tetapi tidak, itu rumit; lihat Paralisme tingkat instruksi). Sebuah inti pintar dapat melakukan beberapa perhitungan pada saat yang bersamaan (menambah, mengurangi, mengalikan, membagi, operasi memori) tetapi hanya satu pada satu waktu; karena ini, mereka secara fisik lebih besar (dan karena itu jauh lebih mahal) maka semakin banyak inti.

Inti bodoh jauh lebih kecil dan karena itu lebih dapat ditambahkan ke chip tunggal tetapi tidak dapat melakukan banyak perhitungan secara bersamaan. Ada keseimbangan yang baik antara banyak inti bodoh dan beberapa inti pintar.

Arsitektur multi-core bekerja dengan baik dengan grafik karena perhitungan dapat dengan mudah dibagi lebih dari ratusan core, tetapi juga tergantung pada kualitas kode dan apakah kode lain bergantung pada hasil dari satu perhitungan.

Ini adalah sebuah banyak pertanyaan yang lebih rumit daripada yang mungkin muncul. Untuk info lebih lanjut, baca artikel tentang desain CPU ini:

Mikroprosesor Modern - Panduan 90 Menit

http://www.lighterra.com/papers/modernmicroprocessors/


6
2017-07-12 04:36



mohon maafkan tata bahasa yang buruk dan secara umum gaya penulisan sub-par yang digunakan di atas, saya belum pernah minum kopi. konsepnya yang cukup rumit dan tautan yang disertakan adalah tempat Anda harus pergi jika Anda ingin lebih memahami. bukan penjelasan saya yang buruk - Silverfire
Saya telah memperbaikinya untuk Anda, dan menambahkan tautan juga. - bwDraco


Saya ingin membicarakan satu poin Syntactic: Istilah CPU dan GPU adalah nama fungsional bukan nama arsitektur.

Jika komputer menggunakan GPU sebagai prosesor utamanya, maka ia akan menjadi "central processing unit" (CPU) terlepas dari arsitektur dan desainnya.


5
2017-07-15 11:44





Penting untuk diingat bahwa tidak ada garis pemisah magis dalam ruang arsitektur yang membuat satu prosesor menjadi "pusat" dan yang lain "grafis". (Yah, beberapa GPU mungkin terlalu lumpuh untuk menjadi sepenuhnya umum, tetapi itu bukan yang sedang kita bicarakan di sini.)

Perbedaannya adalah salah satu cara mereka dipasang di papan dan tugas apa yang diberikan kepada mereka. Tentu saja, kami menggunakan prosesor untuk tujuan umum (atau serangkaian prosesor tujuan umum) untuk penggerak data utama, dan unit khusus, paralel, dalam pipa untuk hal-hal (seperti grafik) untuk dapat memanfaatkannya dengan sebaik-baiknya.

Sebagian besar trik keren yang telah digunakan untuk membuat GPU melakukan hal yang sangat cepat pertama kali dikembangkan oleh orang yang mencoba membuat CPU lebih cepat dan lebih baik. Ternyata Word dan Excel dan Netscape dan banyak hal lain yang orang gunakan komputer mereka untuk tidak hanya mengambil keuntungan penuh dari fitur yang ditawarkan oleh chip khusus grafis tetapi bahkan menjalankan lebih lambat pada arsitektur tersebut karena cabang banyak menyebabkan (sangat mahal dan lambat) pipa-garis yang bersih.


4
2017-07-10 14:57



Saya pikir overhead pipa adalah detail mendasar yang lebih tinggi dari jawaban yang hilang. - Steve


Inti dari ada GPU sama sekali adalah untuk membantu CPU dari perhitungan grafis mahal yang sedang dilakukan pada saat itu.
Dengan menggabungkannya ke satu prosesor lagi akan kembali ke tempat semua dimulai.


2
2017-07-10 21:35



Yup, satu langkah maju, dua langkah mundur. - Randolf Richardson