GPU skaitļošana - kas tas ir?

Vai jūs pastāvīgi dzirdat par GPU skaitļošanu vai paātrināšanu, bet neesat pārliecināts, ko tie nozīmē? Šeit ir viss, kas jums jāzina.

GPU vai grafikas apstrādes vienības ir visās elektroniskajās shēmās, kas rada vienu vai otru displeja veidu, jo īpaši datorā.

Agrīnie grafikas procesori bija salīdzinoši vienkārši. Taču līdz ar spēļu, 3D animācijas un video renderēšanas uzdevumu parādīšanos, kas spieda CPU pāri to robežām, palīgā bija jānāk jaudīgāki GPU.

Šo jauno GPU karšu jauda un sarežģītība laika gaitā pieauga, dažādiem uzņēmumiem un pētniekiem meklējot veidus, kā izmantot paralēlās izpildes priekšrocības. Šis ieraksts parāda, kā tas ir gājis līdz šim.

Kas ir GPU?

GPU vai grafikas apstrādes vienība ir specializēta shēma, kas paredzēta datu apstrādei, lai palīdzētu izveidot attēlus attēlošanai. Citiem vārdiem sakot, GPU ir sistēma, kas rada attēlus, ko redzat uz jebkuras displeja virsmas, piemēram, datora monitora, viedtālruņa ekrāna, spēļu konsolēm utt.

GPU sākotnēji bija vienkāršas ierīces, kas apvienoja grafiskos elementus, lai izveidotu ideālu izvadi konkrētai ierīcei. Tomēr laika gaitā un līdz ar datorspēļu parādīšanos GPU sāka pieaugt sarežģītība un jauda, ​​radot GPGPU jeb vispārējas nozīmes skaitļošana uz GPU.

Kas ir GPU skaitļošana?

GPU skaitļošana jeb GPGPU ir GPU izmantošana aprēķiniem, kas nav grafiski. Tas nozīmē, ka ir jāizmanto datora videokartē iebūvētie GPU, kas sākotnēji paredzēti datorgrafikas apstrādei cita veida datu aprēķināšanai, piemēram, zinātniskām simulācijām, kriptovalūtas ieguvei, algebras aprēķiniem, laika prognozēm, neironu tīkliem utt.

Iemesls šai GPU skaitļošanas attīstībai ir iespaidīgā grafikas apstrādes vienību attīstība, kas izriet no mūsdienu GPU sistēmu izplatītās paralēlās arhitektūras.

Tā kā datora centrālais procesors kļuva jaudīgāks un varēja tikt galā ar sarežģītākām programmām un spēlēm, videokaršu ražotāji arī centās sekot līdzi mūsdienu skaitļošanas un 3D grafikas attīstībai. Nvidia atklāja GeForce 256 1999. gadā kā pasaulē pirmā GPU videokarte, un lietas attīstījās no turienes.

Galvenā GPU karšu priekšrocība salīdzinājumā ar centrālajiem procesoriem ir to paralēlās apstrādes arhitektūra, kas ļauj tām apstrādāt lielus datu uzdevumus sadalītā, paralēlā veidā, kas novērš sastrēgumus un CPU iesaldēšanu.

Kādas ir GPU skaitļošanas lietojumprogrammas?

GPU skaitļošanas lietojumu ir daudz, šeit ir apskatīti daži populārākie lietojumi:

  1. Mašīnmācība un neironu tīkli
  2. Izplūdušā loģika
  3. Bioinformātika
  4. Molekulārā modelēšana
  5. Video renderēšana
  6. Ģeometriskā skaitļošana
  7. Klimata izpēte un laikapstākļu prognozēšana
  8. Astrofizika
  9. Kriptogrāfija
  10. Datoru vīzija
  11. Paroles uzlaušana
  12. Kvantu pētījumi

GPU vs CPU apstrāde

Gan GPU, gan CPU apstrādā digitālos datus, taču tie to dara dažādos veidos. CPU jeb centrālais procesora bloks ir paredzēts sērijveida apstrādei lielā ātrumā, savukārt GPU ir paredzēti paralēlai apstrādei ar daudz mazāku ātrumu. Protams, centrālais procesors var izmantot hiperpavedienu, lai iegūtu 2 pavedienus katrā kodolā vai pat desmitiem kodolu, taču tie būtībā ir seriālie procesori.

Lai gan CPU var būt daži kodoli, mūsdienu GPU ir aprīkoti ar tūkstošiem kodolu, piemēram, Nvidia GeForceRTX 3090 kurā ir 10 XNUMX+ kodoli. Tomēr, lai iegūtu priekšrocības salīdzinājumā ar centrālajiem procesoriem, datiem ir jāspēj veikt paralēlu apstrādi, piemēram, apstrādāt straumi, kurā vienlaikus ir tūkstošiem attēlu.

GPU vs ASIC

ASIC apzīmē lietojumprogrammai specifisko integrālo shēmu, un tas nozīmē, ka tas var veikt tikai vienu uzdevumu, tas ir, uzdevumu, kam tas bija paredzēts. ASIC ir unikāla iekārta, kas ir izstrādāta no nulles un kuras izveidei ir nepieciešamas ekspertu aparatūras zināšanas. ASIC parasti izmanto kriptovalūtas ieguvē, jo tie piedāvā labas paralēlās apstrādes priekšrocības un labāku efektivitāti nekā GPU.

Tomēr galvenā atšķirība starp abiem ir tā, ka GPU ir daudzpusīgāki. Piemēram, varat viegli izveidot kriptovalūtas ieguves platformu, izmantojot GPU. Detaļas ir viegli pieejamas, un, ja esat pabeidzis ieguvi, vienmēr varat pārdot GPU karti spēlētājiem vai citiem kalnračiem. Tomēr, izmantojot ASIC, jūs varat pārdot tikai lietotu mašīnu citiem kalnračiem, jo ​​ar to gandrīz neko citu izdarīt.

Papildus kriptovalūtas ieguvei kļūst vēl grūtāk pielikt rokas uz ASIC automātiem, jo ​​tie nav masu produkti. Tas lielā mērā kontrastē ar GPU sistēmām, kuras varat iegūt visur un viegli konfigurēt.

GPU vs klasteru skaitļošana

Lai gan viena GPU karte satur tūkstošiem kodolu, kas piešķir milzīgu jaudu jebkuram datoram, kuram to pievienojat, teorētiski varat datora pamatplatei pievienot tik daudz GPU karšu, cik tas spēj apstrādāt, un vēl vairāk palielināt tā apstrādes iespējas.

No otras puses, datoru klasteris attiecas uz vairākiem datoriem, kas ir savienoti tīklā, lai darbotos kā viens liels dators - superdators. Katrs dators tīklā tiek saukts par mezglu, un tajā var būt daudzkodolu centrālais procesors, kā arī viena vai vairākas GPU kartes.

Katram klasterim ir jābūt galvenajam mezglam, kas ir priekšējais dators, kas ir atbildīgs par tā darbinieku mezglu pārvaldību un plānošanu. Tajā būs arī programmatūra, kas piešķir datus un programmas saviem darbinieku mezgliem, lai aprēķinātu un atgrieztu rezultātus.

GPU paātrinājums pret hipervītnēm

CPU ir paredzēts, lai vienlaikus veiktu vairākus uzdevumus, un tāpēc tas darbojas ļoti lielā ātrumā, plānojot apstrādes laiku starp šiem vairākiem procesiem. Tomēr, ja tas saskaras ar skaitļošanas ietilpīgu funkciju, tas var kādu laiku pavadīt ciklā, pirms tas atgriežas citos procesos. Tas parasti izraisa vispārēju datora palēnināšanos un sliktākos gadījumos - pilnīgu sistēmas iesaldēšanu.

Datoru dizaineri var izvairīties no šī baisā scenārija, izmantojot hiperpavedienu vai GPU paātrinājumu. Hipervītņošana ļauj vienam CPU kodolam darboties kā diviem apstrādes pavedieniem. Tātad, ja viens pavediens ir iesprostots skaitļošanas intensīvā cilpā, otrs pavediens joprojām var noturēt sistēmu kopā.

Mūsdienu datoros tagad ir vairāki kodoli no 2 līdz 4, 8, 16, 32 utt. Turklāt tiem ir hiperpavediens, tāpēc 2-kodolu centrālais procesors piedāvā 4 pavedienus, 4-kodolu - 8 pavedienus un tā tālāk.

Hipervītņošana ar daudzkodolu centrālajiem procesoriem atrisinās lielāko daļu skaitļošanas problēmu, novērsīs sastrēgumus un nodrošinās izcilu veiktspēju ar vienkāršām spēlēm, mūzikas producēšanu un maziem grafikas, video un mašīnmācīšanās projektiem. Bet, ja jums ir nepieciešams vairāk jaudas, GPU bieži ir pareizais risinājums.

GPU vai aparatūras paātrinājums ir programmatūras lietojumprogrammas spēja izmantot GPU paralēlās apstrādes jaudu, lai apstrādātu lielu datu skaitu, neapgrūtinot centrālo procesoru. Daudzu profesionālo lietojumprogrammu laba darbība ir atkarīga no GPU paātrinājuma. Tie ietver video un animācijas dizaina/renderēšanas programmas, kodētājus, kriptogrāfiju, lielus neironu tīklus utt.

GPGPU programmēšanas pamati

GPU vispārējas nozīmes programmēšana sākotnēji tika veikta, izmantojot DirectX un OpenGL bibliotēkas. Tomēr tie bija paredzēti tikai grafikas izstrādei, tāpēc, lai tie darbotos, jums bija jāpārveido dati par grafiskiem modeļiem.

Par laimi, gadu gaitā GPGPU ir bijuši ievērojami sasniegumi, kas noveda pie bibliotēkām, programmēšanas valodām un ietvariem. Vispopulārākais no šiem ietvariem ir CUDA no Nvidia.

CUDA ļauj ikvienam izstrādātājam viegli ienirt GPU programmēšanā, nepārzinot klasiskās GPU programmēšanas nianses. Tas nodrošina funkcijas, kas uzlabo izstrādi ārpus grafikas, un daudzas vienības piedāvā pat mašīnmācībai specifiskas funkcijas.

Pieejamās bibliotēkas arī ļauj viegli izveidot jaunas GPU paātrinātas programmas no jauna vai pielāgot iepriekš rakstītas paralēlai apstrādei. Jūs izvēlaties pareizo bibliotēku, optimizējat savu kodu paralēlām cilpām, pārkompilējat, un viss.

CUDA serdeņi pret straumes procesoriem

Bieži vien jūs saskaraties ar terminiem Cuda serdes un straumes procesori. Abi termini vienkārši attiecas uz GPU kodolu vai Aritmētiskās loģikas vienības GPU. CUDA Core ir Nvidia patentēta tehnoloģija, savukārt Stream procesori ir no AMD.

Vēl viens termins, ar kuru jūs varat saskarties, ir vairāku procesoru straumēšana vai SM. Šī ir vēl viena Nvidia tehnoloģija, kas sākotnēji grupēja 8 CUDA kodolus vienā SM. Tā izpilda 32 pavedienu deformācijas, katrai komandai izmantojot 4 pulksteņa ciklus. Jaunākiem dizainiem tagad ir vairāk nekā 100 kodolu uz vienu straumēšanas vairāku procesoru.

Populārākās GPU valodas un bibliotēkas

Ir tik daudz bibliotēku un valodu, kas darbojas gan Nvidia CUDA, gan AMD platformās. Tālāk ir norādīti tikai daži:

  1. Nvidia cuBLAS – Pamata lineārās algebras apakšprogrammas CUDA
  2. cuDNN - Dziļo neironu tīklu bibliotēka
  3. OpenCL – Atvērts standarts paralēlai programmēšanai
  4. Atvērt - AMD GPU
  5. GURNS - C++ bibliotēka
  6. Nvidia cuRAND - nejaušu skaitļu ģenerēšana
  7. cuFFT – Ātrai Furjē transformācijai
  8. Nvidia AES – 2D attēlu un signālu apstrāde
  9. GPU VSIPL – Vektoru attēlu un signālu apstrāde
  10. OpenCV - GPU bibliotēka datorredzei
  11. OpenACC – Valoda paralēlai attīstībai
  12. Programmā PyCU - Python CUDA platformai
  13. TensorRT - Padziļināta mācīšanās CUDA
  14. CUDA C++ - C++ valoda CUDA
  15. CUDA C - C valoda CUDA
  16. CUDA Fortran – CUDA FORTRAN izstrādātājiem

Populārākie GPU klasteru projekti

2022. gada jūnijā 8 no 10 ātrākajiem superdatoriem pasaulē ir ar GPU paātrinājumu. Viņiem visiem ir arī Linux OS, un tie ir šādi:

rangsVārdsPetaflopsCPU kodolsGPU serdesJauda (kW)gads
1.Robeža1,102591,8728,138,24021,1002022
2.ISTABA151.9075,2641,034,8802,9002022
3.Virsotne148.6202,7522,211,84010,0962018
4.sjēra94.64190,0801,382,4007,4382018
5.Perlmuters64.59N / AN / A2,5892021
6.Selene63.4671,680483,8402,6462020
7.Tianhe-261.445427,0084,554,75218,4822013
8.Adastra46.121,632297,4409212022

Secinājumi

Sasniedzot šīs GPU skaitļošanas un visas ar to saistītās iedziļināšanās beigas, jums jau vajadzēja būt priekšstatam par tās jaudu un darbības jomu.

Lai iegūtu papildinformāciju, varat iepazīties ar izstrādātāju platformu Nvidia šeit vai no AMD šeit.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke ir datoru entuziasts, kuram patīk lasīt dažādas grāmatas. Viņš dod priekšroku Linux, nevis Windows/Mac, un ir izmantojis
Ubuntu kopš tā sākuma. Jūs varat viņu noķert Twitter, izmantojot bongotrax

Raksti: 298

Saņemiet tehnikas preces

Tehniskās tendences, starta tendences, atsauksmes, tiešsaistes ienākumi, tīmekļa rīki un mārketings vienu vai divas reizes mēnesī