Mājas lapa » » Kāpēc mēs joprojām izmantojam CPU GPU vietā?

    Kāpēc mēs joprojām izmantojam CPU GPU vietā?

    Arvien vairāk GPU tiek izmantoti ne grafiskiem uzdevumiem, piemēram, riska aprēķiniem, šķidruma dinamikas aprēķiniem un seismiskai analīzei. Kas mums liegtu pieņemt GPU vadītas ierīces?

    Šodienas jautājumu un atbilžu sesija mums sniedz pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienu disku Q & A tīmekļa vietņu grupa.

    Jautājums

    SuperUser lasītājs Ell seko līdzi tehnoloģiju jaunumiem un ir ziņkārīgs, kāpēc mēs neizmantojam vairāk GPU balstītu sistēmu:

    Man šķiet, ka šajās dienās GPU tiek veikti daudzi aprēķini. Protams, grafika tiek veikta tur, bet, izmantojot CUDA un tamlīdzīgus, AI, hashing algoritmi (domāju Bitcoins) un citi tiek veikti arī GPU. Kāpēc mēs nevaram vienkārši atbrīvoties no CPU un izmantot pašu GPU? Kas padara GPU tik daudz ātrāku nekā CPU?

    Kāpēc tiešām? Kas padara CPU unikālu?

    Atbilde

    SuperUser ieguldītājs DragonLord piedāvā labi atbalstītu pārskatu par atšķirībām starp GPU un CPU:

    TL; DR atbilde: GPU ir daudz vairāk procesoru kodolu nekā CPU, bet tāpēc, ka katrs GPU kodols darbojas ievērojami lēnāk nekā CPU kodols un nav iezīmju, kas nepieciešamas mūsdienu operētājsistēmām, tās nav piemērotas lielākās daļas apstrādes veikšanai ikdienas datorā. Tie ir vispiemērotākie skaitļošanas intensīvām darbībām, piemēram, video apstrādes un fizikas simulācijām.

    Detalizēta atbilde: GPGPU joprojām ir salīdzinoši jauna koncepcija. GPU sākotnēji tika izmantoti tikai grafikas atveidošanai; tā kā tehnoloģija ir uzlabojusies, lielais skaits kodolu GPU, salīdzinot ar CPU, tika izmantots, izstrādājot GPU skaitļošanas iespējas, lai tās varētu apstrādāt daudzas paralēlas datu plūsmas vienlaicīgi neatkarīgi no tā, kas tas ir. Lai gan GPU var būt simtiem vai pat tūkstošiem straumēšanas procesoru, tie katrs darbojas lēnāk nekā CPU kodols un tiem ir mazāk funkciju (pat ja tie ir pabeigti un tos var ieprogrammēt, lai palaistu jebkuru programmu, ko var darbināt CPU). GPU trūkstošās funkcijas ietver pārtraukumus un virtuālo atmiņu, kas nepieciešama, lai ieviestu mūsdienīgu operētājsistēmu.

    Citiem vārdiem sakot, CPU un GPU ir ievērojami atšķirīgas arhitektūras, kas padara tās labāk piemērotas dažādiem uzdevumiem. GPU var apstrādāt lielus datu apjomus daudzās plūsmās, veicot salīdzinoši vienkāršas operācijas, bet ir nepareizi piemērots smagai vai sarežģītai apstrādei vienā vai dažās datu plūsmās. Centrālais procesors ir daudz ātrāks par pamatprincipiem (attiecībā uz instrukcijām sekundē) un var vieglāk veikt sarežģītas operācijas vienā vai dažās datu plūsmās, bet nevar efektīvi apstrādāt daudzas plūsmas vienlaicīgi.

    Tā rezultātā GPU nav piemēroti tādu uzdevumu apstrādei, kas būtiski neizmanto vai nevar būt paralēli, ieskaitot daudzas kopīgas patērētāju lietojumprogrammas, piemēram, vārdu procesorus. Turklāt GPU izmanto fundamentāli atšķirīgu arhitektūru; būtu nepieciešams ieprogrammēt lietojumprogrammu, kas īpaši paredzēta GPU, lai tā darbotos, un GPU programmēšanai ir nepieciešami ievērojami atšķirīgi paņēmieni. Šīs dažādās metodes ietver jaunas programmēšanas valodas, modifikācijas esošajās valodās un jaunas programmēšanas paradigmas, kas ir labāk piemērotas skaitļošanas izteikšanai paralēli darbam, ko veic daudzi plūsmas procesori. Lai iegūtu plašāku informāciju par GPU programmēšanai nepieciešamajām metodēm, skatiet Wikipedia rakstus par plūsmas apstrādi un paralēlu skaitļošanu.

    Mūsdienu GPU spēj veikt vektoru operācijas un peldošā punkta aritmētiku, ar jaunākajām kartēm, kas spēj manipulēt ar dubultās precizitātes peldošo punktu skaitu. Sistēmas, piemēram, CUDA un OpenCL, ļauj programmām rakstīt GPU, un GPU raksturs padara tos vispiemērotākus ļoti paralēli izmantojamām darbībām, piemēram, zinātniskajā skaitļošanā, kur virkne specializētu GPU skaitļošanas karšu var būt dzīvotspējīga neliela aprēķināt klasteri kā NVIDIA Tesla personālajos superdatoros. Patērētāji ar mūsdienīgiem GPU, kas ir pieredzējuši ar Folding @ home, var tos izmantot, lai sniegtu ieguldījumu ar GPU klientiem, kas var veikt proteīnu locīšanas simulācijas ar ļoti lielu ātrumu un dot lielāku darbu projektam (vispirms izlasiet FAQ, īpaši tos, kas saistīti ar GPU). GPU var arī nodrošināt labāku fizikas simulāciju video spēlēs, izmantojot PhysX, paātrināt video kodēšanu un dekodēšanu, kā arī veikt citus sarežģītus uzdevumus. Tieši šāda veida uzdevumi GPU ir vispiemērotākie izpildei.

    AMD ir vadošais procesora dizains, ko sauc par paātrinātu apstrādes bloku (APU), kas apvieno tradicionālos x86 CPU kodolus ar GPU. Tas ļautu CPU un GPU komponentiem strādāt kopā un uzlabot veiktspēju sistēmās ar ierobežotu vietu atsevišķām sastāvdaļām. Tā kā tehnoloģija turpina virzīties uz priekšu, mēs redzēsim šo vienreiz atsevišķo daļu konverģences pakāpi. Tomēr daudzi uzdevumi, ko veic PC operētājsistēmas un lietojumprogrammas, joprojām ir labāk piemēroti CPU, un ir nepieciešams daudz darba, lai paātrinātu programmu, izmantojot GPU. Tā kā tik daudz esošās programmatūras izmanto x86 arhitektūru, un tā kā GPU prasa dažādas programmēšanas metodes un trūkst vairākas svarīgas funkcijas, kas nepieciešamas operētājsistēmām, vispārēja pāreja no CPU uz GPU ikdienas skaitļošanai ir ļoti sarežģīta.


    Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.