Kotisivu » miten » Miksi käytämme edelleen CPU ta GPU iden sijaan?

    Miksi käytämme edelleen CPU ta GPU iden sijaan?

    GPU: ita käytetään yhä useammin kuin graafisiin tehtäviin, kuten riskin laskemiseen, nesteen dynamiikan laskentaan ja seismiseen analyysiin. Mikä estää meidät ottamasta käyttöön GPU-ohjattuja laitteita?

    Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUser-Stack Exchange -palvelun osa-alueesta..

    Kysymys

    SuperUser-lukija Ell pysyy teknisissä uutisissa ja on utelias, miksi emme käytä enemmän GPU-pohjaisia ​​järjestelmiä:

    Minusta tuntuu, että näinä päivinä GPU: ssa tehdään paljon laskelmia. On selvää, että grafiikkaa tehdään siellä, mutta CUDA: n ja vastaavien avulla AI, hajautusalgoritmit (ajatella Bitcoins) ja muut tehdään myös GPU: ssa. Miksi emme voi vain päästä eroon CPU: sta ja käyttää GPU: ta yksin? Mikä tekee GPU: sta paljon nopeammin kuin CPU?

    Miksi todellakin? Mikä tekee CPU: sta ainutlaatuisen?

    Vastaus

    SuperUserin avustaja DragonLord tarjoaa hyvin tuetun yleiskuvan GPU: n ja CPU: n eroista:

    TL: DR-vastaus: GPU: lla on paljon prosessorisydämiä kuin CPU: t, mutta koska jokainen GPU-ydin kulkee huomattavasti hitaammin kuin CPU-ydin ja niillä ei ole nykyaikaisissa käyttöjärjestelmissä tarvittavia ominaisuuksia, ne eivät ole sopivia useimpien käsittelyjen suorittamiseen jokapäiväisessä tietojenkäsittelyssä. Ne soveltuvat parhaiten laskentatehokkaisiin toimintoihin, kuten videon käsittely- ja fysiikan simulaatioihin.

    Yksityiskohtainen vastaus: GPGPU on edelleen suhteellisen uusi käsite. GPU: ita käytettiin aluksi vain grafiikan esittämiseen; teknologian kehittyessä GPU: iden suuria ytimiä CPU: iin verrattuna hyödynnettiin kehittämällä GPU: iden laskennallisia ominaisuuksia, jotta he voivat käsitellä useita rinnakkaisia ​​datavirtoja samanaikaisesti riippumatta siitä, mitä tietoja voi olla. Vaikka GPU-laitteissa voi olla satoja tai jopa tuhansia virtausprosessoreita, ne kulkevat hitaammin kuin CPU-ydin ja niillä on vähemmän ominaisuuksia (vaikka ne ovatkin täydellisiä ja ne voidaan ohjelmoida suorittamaan minkä tahansa ohjelman, jonka CPU voi suorittaa). GPU: ista puuttuvat ominaisuudet sisältävät keskeytyksiä ja virtuaalimuistia, joita tarvitaan nykyaikaisen käyttöjärjestelmän toteuttamiseen.

    Toisin sanoen CPU: lla ja GPU: lla on huomattavasti erilaiset arkkitehtuurit, jotka tekevät niistä paremmin sopivia eri tehtäviin. GPU pystyy käsittelemään suuria määriä dataa monissa virroissa, suorittamalla niille suhteellisen yksinkertaisia ​​toimintoja, mutta se ei sovellu raskaaseen tai monimutkaiseen käsittelyyn yhdellä tai muutamalla datavirralla. CPU on huomattavasti nopeampi per peruselementti (ohjeiden mukaan sekunnissa) ja voi suorittaa monimutkaisia ​​toimintoja yhdellä tai muutamalla datavirralla helpommin, mutta se ei pysty käsittelemään tehokkaasti monta virtaa samanaikaisesti.

    Tämän seurauksena GPU: t eivät sovellu käsittelemään tehtäviä, jotka eivät ole merkittävästi hyötyneet tai joita ei voida rinnastaa, mukaan lukien monet yleiset kuluttaja-sovellukset, kuten tekstinkäsittelyohjelmat. Lisäksi GPU: t käyttävät perusteellisesti erilaista arkkitehtuuria; Yksi olisi ohjelmoitava sovellus erityisesti GPU: lle, jotta se toimisi, ja GPU: iden ohjelmointiin tarvitaan huomattavasti erilaisia ​​tekniikoita. Näitä erilaisia ​​tekniikoita ovat uudet ohjelmointikielet, olemassa olevien kielten muutokset ja uudet ohjelmointiparadigmat, jotka soveltuvat paremmin laskemisen ilmaisemiseen rinnakkaisena operaationa, jota monet virtausprosessorit suorittavat. Lisätietoja GPU: iden ohjelmointiin tarvittavista tekniikoista on Wikipedian artikkeleissa, jotka käsittelevät virran käsittelyä ja rinnakkaista tietojenkäsittelyä.

    Nykyaikaiset GPU: t kykenevät suorittamaan vektoritoimintoja ja kelluva-pisteen aritmeettisia uusimpia kortteja, jotka kykenevät manipuloimaan kaksinkertaista tarkkuutta vaihtelevia numeroita. CUDA: n ja OpenCL: n kaltaiset kehykset mahdollistavat ohjelmien kirjoittamisen GPU: ille, ja GPU: iden luonne tekee niistä sopivimmat hyvin rinnakkaisille toiminnoille, kuten tieteellisessä tietojenkäsittelyssä, jossa sarja erikoistuneita GPU-laskentakortteja voi olla kannattava korvaus pienelle laskea klusterin kuin NVIDIA Tesla Personal Supercomputersissa. Kuluttajat, joilla on nykyaikaiset GPU: t, jotka ovat kokeneet Folding @ home -palvelun avulla, voivat käyttää niitä GPU-asiakkaiden kanssa, jotka voivat suorittaa proteiinien taitto-simulaatioita erittäin suurilla nopeuksilla ja lisätä työtä projektissa (lue ensin usein kysytyt kysymykset, erityisesti ne, jotka liittyvät GPU). GPU: t voivat myös mahdollistaa paremman fysiikan simuloinnin videopeleissä käyttäen PhysX: ää, nopeuttaa videon koodausta ja dekoodausta ja suorittaa muita laskentatehokkaita tehtäviä. Tämäntyyppiset tehtävät sopivat parhaiten GPU: iin.

    AMD on edelläkävijä prosessorin suunnittelussa, jota kutsutaan nopeutetuksi prosessointiyksiköksi (APU), joka yhdistää tavanomaiset x86-CPU-ytimet ja GPU: t. Näin CPU- ja GPU-komponentit voivat toimia yhdessä ja parantaa suorituskykyä järjestelmissä, joissa on vain vähän tilaa erillisille komponenteille. Kun teknologia jatkuu, näemme, että näiden kerran erillisten osien lähentyminen kasvaa. Monet PC-käyttöjärjestelmien ja -sovellusten suorittamat tehtävät soveltuvat kuitenkin paremmin CPU-laitteisiin, ja paljon työtä tarvitaan ohjelman nopeuttamiseksi GPU: n avulla. Koska niin paljon olemassa olevaa ohjelmistoa käyttää x86-arkkitehtuuria, ja koska GPU: t tarvitsevat erilaisia ​​ohjelmointitekniikoita ja puuttuvat useita tärkeitä käyttöjärjestelmiin tarvittavia ominaisuuksia, yleinen siirtyminen CPU: sta GPU: lle päivittäiseen tietojenkäsittelyyn on erittäin vaikeaa.


    Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.