Pagina principala » HOWTO » De ce folosim încă CPU-uri În loc de GPU-uri?

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

    Î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 azi vine de la amabilitatea programului SuperUser - o subdiviziune a Stack Exchange, o grupare de comunicații pe site-uri web Q & A.

    Intrebarea

    Editorul de aplicații Elite continuă să țină pasul cu știrile despre tehnologie ș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-ul unic?

    Răspunsul

    Contribuitorul 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 pentru că fiecare nucleu GPU rulează semnificativ mai lent decât un nucleu al procesorului și nu are caracteristicile necesare pentru sistemele de operare moderne, acestea nu sunt potrivite pentru a efectua cea mai mare parte a prelucră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 GPU-uri în raport cu procesoarele a fost exploatat prin dezvoltarea capacităților de calcul pentru unitățile de procesare grafică (GPU), astfel încât să poată procesa simultan multe fluxuri paralele de date, indiferent de ce ar putea fi aceste date. În timp ce GPU-urile pot avea sute sau chiar mii de procesoare de flux, fiecare rulează mai lent decât un nucleu CPU și are mai puține caracteristici (chiar dacă acestea sunt complete și pot fi programate pentru a rula orice program pe care un procesor poate rula). Caracteristicile care lipsesc de la GPU 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 procesor este mult mai rapid pe o bază per-core (în termeni de instrucțiuni pe secundă) și poate efectua operații complexe pe un singur sau puține fluxuri de date mai ușor, 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. În plus, GPU-urile folosesc 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 noi de programare, modificări ale limbilor existente și noi paradigme de programare care sunt mai potrivite pentru exprimarea unui 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 despre 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 virgulă mobilă cu precizie dublă. Cadre precum CUDA și OpenCL permit ca programele să fie scrise 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 specializate GPU pot fi un înlocuitor viabil pentru un mic computere ca și în supercomputerele personale NVIDIA Tesla. 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 în proteine ​​la viteze foarte mari și contribuie mai mult la proiect (citiți mai întâi întrebările frecvente, în special cele legate de GPU). Unitățile de procesare grafică pot, de asemenea, să permită o simulare mai bună a fizicii î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 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 procesoare ș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, o tranziție generală de la CPU la GPU pentru computerele de zi cu zi este extrem de dificilă.


    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.