If-Koubou

De ce folosim încă CPU-uri În loc de GPU-uri?

De ce folosim încă CPU-uri În loc de GPU-uri? (Cum să)

În general, unitățile de procesare grafică sunt utilizate pentru sarcini non-grafice, cum ar fi calculul riscurilor, calculele dinamicii fluidelor și analiza seismică. Ce ne-ar împiedica să adoptăm dispozitive bazate pe GPU?

Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea programului SuperUser - o subdiviziune a Stack Exchange, o grupare de comunicații pe site-uri cu întrebări și răspunsuri.

Intrebarea

Editorul de aplicații Elite se ocupă de știrile din domeniul tehnologiei și este curios de ce nu folosim mai multe sisteme bazate pe GPU:

Mi se pare că în aceste zile multe calcule se fac pe GPU. Evident, grafica se face acolo, dar folosind CUDA și altele asemănătoare, AI, algoritmi de hash (cred că Bitcoins) și alții sunt de asemenea făcuți pe GPU. De ce nu putem să scăpăm de procesor și să folosim GPU-ul singur? Ce face GPU-ul mult mai rapid decât CPU-ul?

De ce? Ce face CPU unic?

Răspunsul

Contribitorul SuperUser DragonLord oferă o imagine de ansamblu bine susținută a diferențelor între GPU-uri și procesoare:

TL; DR răspuns: Unitățile GPU au mult mai multe nuclee de procesor decât procesoarele, dar deoarece fiecare nucleu GPU rulează semnificativ mai lent decât un nucleu al procesorului și nu are caracteristicile necesare pentru sistemele de operare moderne, ele nu sunt potrivite pentru a efectua cea mai mare parte a procesării în calculul zilnic. Acestea sunt cele mai potrivite pentru operațiile intensive de calcul, cum ar fi procesarea video și simulările fizicii.

Răspunsul detaliat:GPGPU este încă un concept relativ nou. Unitățile de procesare grafică au fost inițial utilizate pentru redarea grafică; ca tehnologie avansată, numărul mare de nuclee din unitățile de procesare grafică în raport cu procesoarele a fost exploatat prin dezvoltarea capacităților de calcul pentru unitățile de procesare grafică, astfel încât să poată procesa simultan mai multe fluxuri paralele de date, indiferent de ce ar putea fi aceste date. În timp ce unitățile de procesare grafică au sute sau chiar mii de procesoare de flux, fiecare rulează mai încet decât un nucleu al procesorului și are mai puține caracteristici (chiar dacă acestea sunt complete și pot fi programate pentru a rula orice program care poate funcționa). Caracteristicile care lipsesc de la unitățile de procesare grafică includ întreruperi și memorie virtuală, care sunt necesare pentru implementarea unui sistem de operare modern.

Cu alte cuvinte, procesoarele și GPU-urile au arhitecturi semnificativ diferite, care le fac mai potrivite pentru diferite sarcini. Un GPU poate gestiona cantități mari de date în mai multe fluxuri, efectuând operațiuni relativ simple pe ele, dar nu este potrivit pentru prelucrarea grea sau complexă pe un singur flux sau puține date. Un CPU este mult mai rapid pe baza unui nucleu (în termeni de instrucțiuni pe secundă) și poate executa mai ușor operații complexe pe unul sau mai multe fluxuri de date, dar nu poate gestiona eficient multe fluxuri simultan.

Ca rezultat, unitățile de procesare grafică nu sunt potrivite pentru a gestiona sarcini care nu beneficiază în mod semnificativ sau care nu pot fi paralelizate, inclusiv multe aplicații comune ale consumatorilor, cum ar fi procesoarele de text. Mai mult, unitățile de procesare grafică utilizează o arhitectură fundamental diferită; ar trebui să programați o aplicație specială pentru un GPU pentru ca acesta să funcționeze și sunt necesare tehnici semnificativ diferite pentru a programa GPU-uri. Aceste tehnici diferite includ limbi de programare noi, modificări ale limbilor existente și noi paradigme de programare care sunt mai potrivite pentru a exprima un calcul ca o operație paralelă care trebuie efectuată de mai mulți procesori de flux. Pentru mai multe informații despre tehnicile necesare programării unităților de procesare grafică (GPU), consultați articolele Wikipedia privind procesarea fluxurilor și calculul paralel.

GPU-urile moderne sunt capabile să efectueze operații vectoriale și aritmetice în virgulă mobilă, cu cele mai recente cărți capabile să manipuleze numerele cu puncte de plutire cu precizie dublă. Cadre precum programele CUDA și OpenCL permit scrierea de programe pentru unitățile de procesare grafică, iar natura GPU-urilor le face mai potrivite pentru operații extrem de paralelizabile, cum ar fi computerele științifice, unde o serie de carduri de calcul GPU specializate poate fi un înlocuitor viabil pentru un mic computere ca și în NVIDIA Tesla Personal Supercomputers. Consumatorii cu GPU-uri moderne, care au experiență cu Folding @ home, le pot folosi pentru a contribui cu clienți GPU care pot efectua simulări de pliere a proteinelor la viteze foarte mari și contribuie mai mult la proiect (asigurați-vă că citiți întâi întrebările frecvente, GPU). GPU-urile pot, de asemenea, să permită o simulare fizică mai bună în jocuri video utilizând PhysX, să accelereze codarea și decodarea video și să efectueze alte sarcini de calcul intensiv. Aceste tipuri de sarcini sunt acele GPU-uri care sunt cele mai potrivite pentru performanță.

AMD lansează un procesor de procesare numit Unitatea de procesare accelerată (APU), care combină nucleele CPU x86 convenționale cu GPU-urile. Acest lucru ar putea permite componentelor CPU și GPU să colaboreze și să îmbunătățească performanța sistemelor cu spațiu limitat pentru componente separate. Pe masura ce tehnologia continua sa avanseze, vom observa o crestere a gradului de convergenta a acestor parti odata separate. Cu toate acestea, multe dintre sarcinile efectuate de sistemele de operare și aplicațiile PC sunt încă mai potrivite pentru CPU-uri și este nevoie de multă muncă pentru a accelera un program folosind un GPU. Deoarece atât de multe software existente utilizează arhitectura x86 și deoarece GPU-urile necesită diferite tehnici de programare și lipsesc câteva funcții importante necesare pentru sistemele de operare, este extrem de dificil să treci de la CPU la GPU pentru calculul zilnic.

Aveți ceva de adăugat la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.