GPU-laskenta – mitä se on?
Kuuletko jatkuvasti GPU-laskennasta tai -kiihdytyksestä, mutta et ole varma, mitä ne tarkoittavat? Tässä on kaikki, mitä sinun tarvitsee tietää.

GPU- tai grafiikkaprosessointiyksiköitä on kaikissa elektronisissa piireissä, jotka tuottavat yhden tai toisen tyyppistä näyttöä, erityisesti tietokoneessa.
Varhaiset grafiikkaprosessorit olivat suhteellisen yksinkertaisia. Mutta pelien, 3D-animaatioiden ja videon renderöintitehtävien myötä, jotka työnsivät suorittimia niiden rajojen ulkopuolelle, tehokkaammat GPU:t joutuivat apuun.
Näiden uusien GPU-korttien teho ja monimutkaisuus kasvoivat ajan myötä, kun eri yritykset ja tutkijat etsivät tapoja hyödyntää rinnakkaisen suorituskyvyn etujaan. Tämä postaus näyttää, miten se on mennyt tähän asti.
Mikä on GPU?
Grafiikkasuoritin tai grafiikkaprosessointiyksikkö on erikoistunut piiri, joka on suunniteltu tietojen käsittelyyn auttamaan kuvien luomisessa näyttöä varten. Toisin sanoen GPU on järjestelmä, joka luo kuvat, jotka näet millä tahansa näyttöpinnalla, kuten tietokoneen näytöllä, älypuhelimen näytöllä, pelikonsoleissa ja niin edelleen.
Näytönohjaimet olivat alun perin suoraviivaisia laitteita, jotka kokosivat graafisia elementtejä luodakseen ihanteellisen tulosteen tietylle laitteelle. Ajan myötä ja tietokonepelien tulon myötä näytönohjaimet alkoivat kuitenkin monimutkaistua ja tehostua, mikä synnytti GPGPU:n eli yleislaskennan näytönohjaimilla.
Mitä on GPU-laskenta?
GPU-laskenta tai GPGPU on GPU:n käyttöä grafiikan lisäksi laskemiseen. Tämä tarkoittaa sitä, että käytetään tietokoneen näytönohjainkorttiin upotettuja GPU:ita, jotka on alun perin tarkoitettu tietokonegrafiikan käsittelyyn muun tyyppisen tiedon laskemiseen, kuten tieteellisiin simulaatioihin, kryptovaluuttojen louhintaan, algebralaskelmiin, sääennusteisiin, hermoverkkoihin ja niin edelleen.
Syy tähän GPU-laskennan kehitykseen johtuu grafiikan prosessointiyksiköiden vaikuttavasta kehityksestä, joka tulee nykyaikaisten GPU-järjestelmien hajautetusta rinnakkaisarkkitehtuurista.
Tietokoneen suorittimen tehostuessa ja sen kyetessä käsittelemään monimutkaisempia ohjelmia ja pelejä, myös näytönohjainten valmistajat pyrkivät pysymään mukana modernin laskennan ja 3D-grafiikan kehityksessä. Nvidia julkisti GeForce 256:n vuonna 1999 maailman ensimmäisenä GPU-näytönohjaimena, ja siitä lähtien asiat kehittyivät.
GPU-korttien suurin etu prosessoreihin verrattuna on niiden rinnakkaiskäsittelyarkkitehtuuri, jonka ansiosta ne pystyvät käsittelemään suuria datatehtäviä hajautetusti, rinnakkain, mikä estää pullonkauloja ja suorittimen jäätymisen.
Mitkä ovat GPU-laskentasovellukset?
GPU-laskennan sovelluksia on monia, tässä on katsaus joihinkin suosituimpiin käyttötarkoituksiin:
- Koneoppiminen ja neuroverkot
- Sumea logiikka
- Bioinformatiikka
- Molekyylimallinnus
- Videon renderöinti
- Geometrinen laskenta
- Ilmastotutkimus ja sääennusteet
- Astrophysics
- Cryptography
- Tietokoneen visio
- Salasanan murtaminen
- Kvanttitutkimus
GPU vs CPU Processing
GPU:t ja CPU:t käsittelevät digitaalista dataa, mutta ne tekevät sen eri tavoin. CPU tai keskusyksikkö on suunniteltu sarjakäsittelyyn suurilla nopeuksilla, kun taas GPU:t on suunniteltu rinnakkaiskäsittelyyn paljon pienemmillä nopeuksilla. Tietenkin suoritin voi käyttää hypersäikeistystä saadakseen 2 säiettä ydintä kohti tai jopa kymmeniä ytimiä, mutta ne ovat pohjimmiltaan sarjasuorittimia.
Vaikka suorittimissa voi olla muutama ydin, nykyaikaisissa näytönohjaimissa on tuhansia ytimiä, esimerkiksi Nvidia GeForce RTX 3090:ssä , jossa on yli 10 000 ydintä. Jotta näytönohjaimesta olisi etulyöntiasema suorittimiin verrattuna, datan on kyettävä rinnakkaiskäsittelyyn, kuten tuhansia kuvia sisältävän virran käsittelyyn kerralla.
GPU vs ASIC
ASIC on lyhenne sanoista Application Specific Integrated Circuit, mikä tarkoittaa, että se voi suorittaa vain yhden tehtävän – eli tehtävän, jota se on suunniteltu suorittamaan. ASIC on ainutlaatuinen kone, joka on kehitetty tyhjästä ja jonka rakentaminen vaatii asiantuntevaa laitteistotietoa. ASIC-kortteja käytetään yleisesti kryptovaluutan louhinnassa, koska ne tarjoavat hyviä rinnakkaiskäsittelyetuja ja paremman tehokkuuden kuin GPU:t.
Suurin ero näiden kahden välillä on kuitenkin se, että GPU:t ovat monipuolisempia. Voit esimerkiksi rakentaa helposti kryptovaluutan louhintalaitteen GPU:iden avulla. Osat ovat helposti saatavilla, ja jos olet lopettanut louhinnan, voit aina myydä GPU-kortin pelaajille tai muille kaivostyöntekijöille. ASIC:illa voit kuitenkin myydä vain käytetyn koneen muille kaivostyöläisille, koska sillä tuskin voi tehdä muuta.
Kryptovaluutan louhinnan lisäksi ASIC-koneen käyttö on entistä vaikeampaa, koska ne eivät ole massatuotteita. Tämä eroaa voimakkaasti GPU-järjestelmistä, joita voit saada kaikkialta ja helposti määrittää.
GPU vs klusterilaskenta
Vaikka yksittäinen GPU-kortti sisältää tuhansia ytimiä, jotka lisäävät valtavasti tehoa mihin tahansa tietokoneeseen, johon sen liität, voit teoriassa lisätä tietokoneen emolevyyn niin monta GPU-korttia kuin se pystyy käsittelemään ja lisätä sen prosessointikykyä entisestään.
Tietokoneklusteri puolestaan viittaa useisiin tietokoneisiin, jotka on verkotettu yhteen toimimaan yhtenä suurena tietokoneena - supertietokoneena. Jokaista verkon tietokonetta kutsutaan solmuksi, ja siinä voi olla moniytiminen prosessori sekä yksi tai useampi GPU-kortti.
Jokaisella klusterilla on oltava pääsolmu, joka on etutietokone, joka vastaa työsolmujensa hallinnasta ja ajoittamisesta. Se sisältää myös ohjelmiston, joka varaa dataa ja ohjelmia työntekijöiden solmuille tulosten laskemiseksi ja palauttamiseksi.
GPU-kiihtyvyys vs hypersäikeistys
CPU on suunniteltu käsittelemään useita tehtäviä kerralla, ja siksi se toimii erittäin suurilla nopeuksilla ajoittaen käsittelyajan näiden useiden prosessien välillä. Kuitenkin, kun se kohtaa laskentaintensiivisen toiminnon, se saattaa viettää jonkin aikaa silmukassa ennen kuin se palaa muihin prosesseihin. Tämä johtaa yleensä tietokoneen yleiseen hidastumiseen ja pahemmissa tapauksissa järjestelmän täydelliseen jumiutumiseen.
Tietokonesuunnittelijat voivat välttää tämän pelätyn skenaarion joko käyttämällä hypersäikeistystä tai GPU-kiihdytystä. Hyper-säikeen ansiosta yksi CPU-ydin voi toimia kahtena käsittelysäietenä. Joten kun yksi säie jää loukkuun laskentaa vaativaan silmukkaan, toinen säie voi silti pitää järjestelmän koossa.
Nykyaikaisissa tietokoneissa on nyt useita ytimiä 2-4, 8, 16, 32 ja niin edelleen. Lisäksi niissä on hypersäikeistys, joten 2-ytiminen CPU tarjoaa 4 säiettä, 4-ytiminen 8 säiettä ja niin edelleen.
Hyper-säikeistys moniytimisillä prosessoreilla ratkaisee useimmat laskentaongelmat, ehkäisee pullonkauloja ja tarjoaa huippusuorituskyvyn yksinkertaisilla peleillä, musiikin tuotannolla ja pienillä grafiikka-, video- ja koneoppimisprojekteilla. Mutta kun tarvitset enemmän tehoa, GPU on usein oikea ratkaisu.
GPU- tai laitteistokiihdytys on ohjelmistosovelluksen kyky hyödyntää GPU:n rinnakkaista prosessointitehoa murskaamaan suuria määriä dataa ilman, että prosessori pysähtyy. Monet ammattisovellukset edellyttävät GPU-kiihdytystä toimiakseen hyvin. Näitä ovat video- ja animaatiosuunnittelu-/renderöintiohjelmat, kooderit, kryptografia, suuret neuroverkot ja niin edelleen.
GPGPU-ohjelmoinnin perusteet
Näytönohjainten yleiskäyttöinen ohjelmointi tehtiin aluksi DirectX- ja OpenGL -kirjastojen avulla. Nämä oli kuitenkin suunniteltu yksinomaan grafiikkakehitystä varten, joten data piti muokata graafisiksi malleiksi, jotta ne toimisivat.
Onneksi GPGPU:ssa on tapahtunut suuria edistysaskeleita vuosien varrella, mikä on johtanut kirjastoihin, ohjelmointikieliin ja kehyksiin. Näistä kehyksistä suosituin on Nvidian CUDA.
CUDA tekee kaikkien kehittäjien helpoksi sukeltaa GPU-ohjelmointiin ilman, että heidän tarvitsee tuntea klassisen GPU-ohjelmoinnin ytimekkäät ominaisuudet. Se tarjoaa ominaisuuksia, jotka tehostavat kehitystä grafiikan lisäksi, ja monissa yksiköissä on jopa koneoppimiseen liittyviä toimintoja.
Saatavilla olevat kirjastot helpottavat myös uusien GPU-kiihdytettyjen ohjelmien luomista alusta alkaen tai esikirjoitettujen ohjelmien mukauttamista rinnakkaiskäsittelyyn. Valitset oikean kirjaston, optimoit koodisi rinnakkaisia silmukoita varten, käännät uudelleen ja siinä kaikki.
CUDA-ytimet vs Stream-prosessorit
Usein törmäät termeihin Cuda-ytimet ja stream-prosessorit . Molemmat termit viittaavat yksinkertaisesti GPU-ytimeen tai GPU:n aritmeettisiin logiikkayksiköihin . CUDA Core on Nvidian oma teknologia, kun taas Stream-prosessorit ovat AMD:n.
Toinen termi, jonka saatat törmätä, on Streaming Multi-Processor tai SM. Tämä on toinen Nvidia-tekniikka, joka alun perin ryhmitteli 8 CUDA-ydintä SM:ää kohti. Se suorittaa 32-säikeistä loimia kerrallaan käyttämällä 4 kellojaksoa komentoa kohden. Uudemmissa malleissa on nyt yli 100 ydintä streaming-moniprosessoria kohden.
Suosituimmat GPU-kielet ja -kirjastot
Siellä on niin monia kirjastoja ja kieliä, jotka toimivat sekä Nvidia CUDA- että AMD-alustoilla. Seuraavassa on vain muutamia:
- Nvidia cuBLAS – Lineaarialgebran perusaliohjelmat CUDA:lle
- cuDNN – Deep neuroverkkokirjasto
- OpenCL – Avoin standardi rinnakkaisohjelmointiin
- Openmp – AMD GPU:lle
- HIP – C++-kirjasto
- Nvidia cuRAND – Satunnaislukujen generointi
- cuFFT – Nopealle Fourier-muunnokselle
- Nvidian ydinvoimala – 2D-kuvan ja signaalin käsittely
- GPU VSIPL – Vektorikuvan ja signaalin käsittely
- OpenCV - GPU-kirjasto tietokonenäkemiseen
- OpenACC – Kieli rinnakkaiseen kehitykseen
- PyCUDA – Python CUDA-alustalle
- TensorRT – Syvä oppiminen CUDA:lle
- CUDA C++ – C++-kieli CUDA:lle
- CUDA C – C-kieli CUDA:lle
- CUDA Fortran – CUDA FORTRAN-kehittäjille
Parhaat GPU-klusteriprojektit
Kesäkuussa 2022 kahdeksassa maailman 8 nopeimmasta supertietokoneesta on GPU-kiihdytetty. Niillä kaikilla on myös Linux-käyttöjärjestelmä, ja ne ovat seuraavat:
| arvo | Nimi | Petaflops | CPU-ytimet | GPU-ytimet | Teho (kW) | Vuosi |
| 1. | Raja | 1,102 | 591,872 | 8,138,240 | 21,100 | 2022 |
| 2. | HUONE | 151.90 | 75,264 | 1,034,880 | 2,900 | 2022 |
| 3. | Huippukokous | 148.6 | 202,752 | 2,211,840 | 10,096 | 2018 |
| 4. | Sierra | 94.64 | 190,080 | 1,382,400 | 7,438 | 2018 |
| 5. | Perlmutter | 64.59 | N / A | N / A | 2,589 | 2021 |
| 6. | selene | 63.46 | 71,680 | 483,840 | 2,646 | 2020 |
| 7. | Tianhe-2 | 61.445 | 427,008 | 4,554,752 | 18,482 | 2013 |
| 8. | Adastra | 46.1 | 21,632 | 297,440 | 921 | 2022 |
Yhteenveto
Kun olet päässyt tämän GPU-laskentaan ja kaikkeen siihen liittyvään sukellukseen, sinun olisi pitänyt saada käsitys sen tehosta ja laajuudesta jo nyt.
Lisätietoja saat Nvidian kehittäjäalustalta täältä tai AMD:n alustalta täältä.




