Startpagina » hoe » Waarom gebruiken we nog steeds CPU's in plaats van GPU's?

    Waarom gebruiken we nog steeds CPU's in plaats van GPU's?

    GPU's worden steeds vaker gebruikt voor niet-grafische taken zoals risicoberekeningen, berekeningen van vloeistofdynamica en seismische analyse. Wat houdt ons tegen om GPU-aangedreven apparaten te gebruiken??

    De Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een community-drive groep van Q & A-websites.

    De vraag

    SuperUser-lezer Ell houdt technische nieuwtjes bij en is nieuwsgierig waarom we niet meer op GPU gebaseerde systemen gebruiken:

    Het lijkt me dat er tegenwoordig veel berekeningen worden gedaan op de GPU. Uiteraard worden daar afbeeldingen gemaakt, maar met behulp van CUDA en dergelijke, AI, hashing-algoritmen (denk aan Bitcoins) en andere worden ook gedaan op de GPU. Waarom kunnen we niet gewoon de CPU verwijderen en de GPU alleen gebruiken? Wat de GPU zoveel sneller maakt dan de CPU?

    Waarom inderdaad? Wat de CPU uniek maakt?

    Het antwoord

    SuperUser-bijdrager DragonLord biedt een goed ondersteund overzicht van de verschillen tussen GPU's en CPU's:

    TL; DR antwoord: GPU's hebben veel meer processorcores dan CPU's, maar omdat elke GPU-kern aanzienlijk langzamer draait dan een CPU-kern en niet beschikt over de functies die nodig zijn voor moderne besturingssystemen, zijn ze niet geschikt om het grootste deel van de verwerking in het dagelijkse computergebruik uit te voeren. Ze zijn het meest geschikt voor rekenintensieve bewerkingen zoals videobewerking en simulaties van fysica.

    Het gedetailleerde antwoord: GPGPU is nog steeds een relatief nieuw concept. GPU's werden in eerste instantie alleen gebruikt voor het renderen van afbeeldingen; naarmate technologie geavanceerd was, werd het grote aantal kernen in GPU's ten opzichte van CPU's benut door het ontwikkelen van computationele mogelijkheden voor GPU's, zodat ze veel parallelle datastromen gelijktijdig kunnen verwerken, ongeacht wat die data ook zijn. Hoewel GPU's honderden of zelfs duizenden streamprocessors kunnen hebben, werken ze elk langzamer dan een CPU-kern en hebben ze minder functies (zelfs als ze volledig zijn en kunnen worden geprogrammeerd om elk programma uit te voeren dat een CPU kan uitvoeren). Functies die ontbreken in GPU's zijn onderbrekingen en virtueel geheugen, die nodig zijn om een ​​modern besturingssysteem te implementeren.

    Met andere woorden, CPU's en GPU's hebben aanzienlijk verschillende architecturen waardoor ze beter geschikt zijn voor verschillende taken. Een GPU kan grote hoeveelheden gegevens verwerken in veel streams en er relatief eenvoudige bewerkingen op uitvoeren, maar is niet geschikt voor zware of complexe verwerking op een enkele of enkele gegevensstromen. Een CPU is veel sneller per kern (in termen van instructies per seconde) en kan ingewikkelde bewerkingen op een of enkele gegevensstromen gemakkelijker uitvoeren, maar kan niet efficiënt veel streams tegelijkertijd verwerken.

    Als gevolg hiervan zijn GPU's niet geschikt voor taken die niet significant profiteren van of niet kunnen worden geparalleliseerd, waaronder veel gebruikelijke consumententoepassingen zoals tekstverwerkers. Bovendien gebruiken GPU's een fundamenteel andere architectuur; men zou een applicatie specifiek voor een GPU moeten programmeren voordat deze kan werken en er zijn aanzienlijk verschillende technieken nodig om GPU's te programmeren. Deze verschillende technieken omvatten nieuwe programmeertalen, aanpassingen aan bestaande talen en nieuwe programmeerparadigma's die beter geschikt zijn om een ​​berekening uit te drukken als een parallelle bewerking die door vele stroomprocessors moet worden uitgevoerd. Voor meer informatie over de technieken die nodig zijn om GPU's te programmeren, raadpleegt u de Wikipedia-artikelen over streamverwerking en parallel computing.

    Moderne GPU's zijn in staat om vectorbewerkingen en floating-point aritmetiek uit te voeren, met de nieuwste kaarten die in staat zijn om drijvende-kommagetallen met dubbele precisie te manipuleren. Kaders zoals CUDA en OpenCL maken het mogelijk programma's te schrijven voor GPU's, en de aard van GPU's maakt ze het meest geschikt voor zeer parallelleiseerbare bewerkingen, zoals in wetenschappelijk computergebruik, waar een reeks gespecialiseerde GPU-rekenkaarten een bruikbare vervanging voor een kleine processor kan zijn compute cluster zoals in NVIDIA Tesla Personal Supercomputers. Consumenten met moderne GPU's die ervaring hebben met Folding @ home kunnen deze gebruiken om bij te dragen aan GPU-klanten, die met zeer hoge snelheden eiwitvouwingssimulaties kunnen uitvoeren en meer werk aan het project kunnen bijdragen (lees eerst de veelgestelde vragen, vooral die met betrekking tot GPU's). GPU's kunnen ook betere physics-simulatie in videogames met PhysX mogelijk maken, videocodering en decodering versnellen en andere rekenintensieve taken uitvoeren. Het zijn dit soort taken die GPU's het meest geschikt maken voor uitvoering.

    AMD bereidt zich voor op een processorontwerp dat de Accelerated Processing Unit (APU) wordt genoemd en dat conventionele x86 CPU-kernen combineert met GPU's. Hierdoor kunnen de CPU- en GPU-componenten samenwerken en de prestaties verbeteren op systemen met beperkte ruimte voor afzonderlijke componenten. Naarmate de technologie zich verder ontwikkelt, zien we een toenemende mate van convergentie van deze ooit gescheiden onderdelen. Veel taken die worden uitgevoerd door pc-besturingssystemen en -toepassingen zijn echter nog beter geschikt voor CPU's en er is veel werk nodig om een ​​programma met een GPU te versnellen. Aangezien zoveel bestaande software de x86-architectuur gebruikt en omdat GPU's verschillende programmeringstechnieken vereisen en verschillende belangrijke functies missen die nodig zijn voor besturingssystemen, is een algemene overgang van CPU naar GPU voor dagelijks computergebruik uiterst moeilijk.


    Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread.