If-Koubou

Miksi käytämme edelleen prosessoreita GPU: iden sijasta?

Miksi käytämme edelleen prosessoreita GPU: iden sijasta? (Miten)

GPU: ita käytetään yhä enemmän ei-graafisissa tehtävissä, kuten riskien laskennassa, nesteen dynamiikkalaskelmissa ja seismisessä analyysissä. Mikä estää meitä hyväksymästä GPU-pohjaisia ​​laitteita?

Tämän päivän kysymys- ja vastausistunto tulee meihin SuperUserin ansiosta. Tämä on Stack Exchange -jako, joka on Q & A-sivustojen yhteisöjoukkoyhtymä.

Kysymys

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

Näyttää siltä, ​​että näinä päivinä on paljon laskutoimituksia GPU: ssa. Ilmeisesti grafiikka on tehty siellä, mutta käyttämällä CUDA ja vastaavia, AI, hashing algoritmit (luulet Bitcoins) ja muut tehdään myös GPU. Miksi emme voi päästä eroon prosessorista ja käyttää vain GPU: ta? Mikä tekee GPU: sta paljon nopeammin kuin CPU?

Miksi todellakin? Mikä tekee CPU: stä ainutlaatuisen?

Vastaus

SuperUser-avustaja DragonLord tarjoaa hyvin tuetun yleiskuvan GPU: iden ja prosessorin välisistä eroista:

TL, DR vastaus: GPUsilla on paljon enemmän prosessoriytimiä kuin prosessorit, mutta koska jokainen GPU-ydin kulkee huomattavasti hitaammin kuin CPU-ydin ja sillä ei ole nykyaikaisten käyttöjärjestelmien tarvitsemia ominaisuuksia, ne eivät ole sopivia suurimman osan päivittäisen tietojenkäsittelyn suorittamisesta. Ne soveltuvat parhaiten laskentatehokkaisiin toimintoihin, kuten videon prosessointiin ja fysiikan simulaatioihin.

Yksityiskohtainen vastaus:GPGPU on edelleen suhteellisen uusi konsepti. GPU: itä käytettiin alun perin grafiikan esittämiseen; kuten tekniikka kehittyi, GPU: eiden suurten ydinmäärien suhteessa CPU: iin hyödynnettiin kehittämällä laskennallisia kykyjä GPU: eille, jotta ne pystyvät käsittelemään useita rinnakkaisia ​​datavirtoja samanaikaisesti riippumatta siitä, mitä tietoja kyseiset tiedot voivat olla. Vaikka GPUssa voi olla satoja tai jopa tuhansia suoratoistoprosessoreita, ne kulkevat hitaammin kuin suorittimen ydin ja niillä on vähemmän ominaisuuksia (vaikka ne olisivat täydellisiä, ja ne voidaan ohjelmoida suorittamaan minkä tahansa ohjelman, jota CPU voi käyttää). GPU: eilta puuttuvat ominaisuudet sisältävät keskeytykset ja virtuaalimuistin, joita tarvitaan modernin käyttöjärjestelmän käyttöön.

Toisin sanoen prosessoreilla ja GPUsilla on huomattavasti erilaiset arkkitehtuurit, jotka tekevät niistä paremmin erilaisiin tehtäviin. GPU pystyy käsittelemään suuria määriä tietoja monissa virroissa, suorittamalla niille suhteellisen yksinkertaisia ​​toimintoja, mutta se ei sovi raskaaseen tai monimutkaiseen käsittelyyn yhdellä tai useammalla tietovirralla. CPU on paljon nopeampi per-core-pohjalta (käskyjä sekunnissa) ja voi suorittaa monimutkaisia ​​operaatioita yhdellä tai useammalla tietovirralla helpommin, mutta ei pysty käsittelemään tehokkaasti useita virtoja samanaikaisesti.

Tämän seurauksena GPU: t eivät sovi sellaisten tehtävien hoitamiseen, jotka eivät ole merkittäviä hyötyjä tai joita ei voida rinnastaa, mukaan lukien monet tavalliset kuluttajasovellukset, kuten tekstinkäsittelyohjelmat. Lisäksi GPU: t käyttävät pohjimmiltaan erilaista arkkitehtuuria; sinun on ohjelmoitava sovellus, joka on tarkoitettu nimenomaan GPU: lle, jotta se toimisi ja GPU: t voi ohjelmoida merkittävästi erilaisilla tekniikoilla. Näihin eri tekniikoihin kuuluvat uudet ohjelmointikielet, nykyisten kielten muutokset ja uudet ohjelmointiparadigmit, jotka soveltuvat paremmin laskennan ilmaisemiseen rinnakkaisoperaattina, jota monet suorahyödyttimet suorittavat. Lisätietoja GPU: iden ohjelmoinnissa tarvittavista tekniikoista on Wikipedia-artikkeleissa, jotka koskevat suoratoiston ja rinnakkaisen laskennan.

Nykyaikaiset GPU: t pystyvät suorittamaan vektoritoimintoja ja liukuluku aritmeettisia, ja viimeisimmät kortit, jotka pystyvät manipuloimaan kaksinkertaisen tarkkuuden liukulukuisia numeroita. Kehykset, kuten CUDA ja OpenCL, mahdollistavat ohjelmien kirjoittamisen GPU: eille, ja GPU: iden luonne sopivat parhaiten erittäin rinnakkaisiin toimintoihin, kuten tieteelliseen tietojenkäsittelyyn, jossa joukko erikoistuneita GPU-laskentakortteja voi olla kannattava korvaava pieni laskenta klusterin kuten NVIDIA Tesla Personal Supercomputers. Kuluttajat, joilla on nykyaikaisia ​​GPU: ita, jotka kokevat Folding @ homein kanssa, voivat käyttää niitä osallistumaan GPU-asiakkaiden kanssa, jotka pystyvät tekemään proteiinin taittosimulaatioita erittäin nopeilla nopeuksilla ja lisäämään työtä projektissa (muista lukea usein kysytyt kysymykset, erityisesti GPU). GPU: t voivat myös parantaa fysiikan simulaatiota videopeleissä PhysX: n avulla, nopeuttaa videokoodausta ja dekoodausta sekä suorittaa muita laskennäköisiä tehtäviä. GPU: t ovat tällaisia ​​tehtäviä, jotka sopivat parhaiten suorittamiseen.

AMD on edelläkävijä prosessorin suunnittelussa, jota kutsutaan Accelerated Processing Unit (APU), joka yhdistää perinteiset x86-prosessoriytimet GPU-laitteisiin. Tämä voi mahdollistaa CPU: n ja GPU: n komponentit toimimaan yhdessä ja parantamaan suorituskykyä järjestelmissä, joilla on rajoitetusti tilaa erillisille komponenteille. Kun tekniikka jatkuu, näemme näiden kerran erillisten osien kasvavan määrän. Kuitenkin monet PC-käyttöjärjestelmien ja sovellusten suorittamat tehtävät soveltuvat yhä paremmin CPU: iin, ja tarvitaan paljon työtä ohjelman nopeuttamiseksi GPU: n avulla. Koska niin paljon olemassa olevia ohjelmistoja käyttää x86-arkkitehtuuria, ja koska GPU: t tarvitsevat eri ohjelmointitekniikoita ja puuttuvat useat käyttöjärjestelmien tärkeät ominaisuudet, yleinen siirtyminen CPU: sta GPU: iin päivittäiseen tietojenkäsittelyyn on äärimmäisen vaikeaa.

Onko jokin asia lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä? Katso koko keskusteluketju täältä.