GPU računalstvo – što je to?

Slušate li stalno o GPU računalstvu ili ubrzanju, ali niste sigurni što oni znače? Ovdje je sve što trebate znati.

GPU ili grafičke procesorske jedinice prisutne su u svim elektroničkim sklopovima koji proizvode jedan ili drugi oblik prikaza, posebno u računalu.

Rani grafički procesori bili su relativno jednostavni. Ali s dolaskom igara, 3D animacija i zadataka renderiranja videa koji su CPU-e gurnuli izvan njihovih granica, snažniji GPU-i morali su priskočiti u pomoć.

Ove nove GPU kartice s vremenom su postajale sve snažnije i složenije, dok su različite tvrtke i istraživači tražili načine da iskoriste svoju prednost paralelnog izvođenja. Ovaj vam post pokazuje kako je do sada išlo.

Što je GPU?

GPU ili grafička procesorska jedinica specijalizirani je sklop dizajniran za manipulaciju podacima kako bi se pomoglo u stvaranju slika za prikaz. Drugim riječima, GPU je sustav koji stvara slike koje vidite na bilo kojoj površini zaslona, ​​kao što je monitor računala, zaslon pametnog telefona, igraće konzole i tako dalje.

GPU-ovi su u početku bili jednostavni uređaji koji spajaju grafičke elemente kako bi stvorili idealan izlaz za određeni uređaj. S vremenom, međutim, i s pojavom računalnih igara, GPU-ovi su počeli rasti u složenosti i snazi, rađajući GPGPU ili računalstvo opće namjene na GPU-u.

Što je GPU računalstvo?

GPU računalstvo ili GPGPU je upotreba GPU-a za računanje izvan grafike. To znači korištenje GPU-ova ugrađenih u video karticu računala i izvorno namijenjenih obradi računalne grafike za izračunavanje drugih vrsta podataka, kao što su znanstvene simulacije, rudarenje kriptovalute, algebarska izračunavanja, vremenska prognoza, neuronske mreže i tako dalje.

Razlog za ovu evoluciju GPU računalstva dolazi iz impresivnog razvoja grafičkih procesorskih jedinica, koji dolazi iz distribuirane paralelne arhitekture modernih GPU sustava.

Kako je CPU računala postajao sve moćniji i mogao se nositi sa složenijim programima i igrama, proizvođači video kartica također su pokušavali držati korak s razvojem modernog računalstva i 3D grafike. Nvidia je predstavila GeForce 256 1999. godine kao prva GPU video kartica na svijetu i stvari su se odatle razvile.

Glavna prednost GPU kartica nad CPU-ima njihova je arhitektura paralelne obrade, što ih čini sposobnima za obradu velikih podatkovnih zadataka na distribuiran, paralelan način koji sprječava uska grla i zamrzavanje CPU-a.

Koje su aplikacije za GPU računalstvo?

Primjene GPU računalstva su mnoge, evo pogleda na neke od najboljih upotreba:

  1. Strojno učenje i neuronske mreže
  2. Nejasna logika
  3. Bio-informatika
  4. Molekularno modeliranje
  5. Video renderiranje
  6. Geometrijsko računanje
  7. Klimatsko istraživanje i vremenska prognoza
  8. astrofizika
  9. Kriptografija
  10. Računalni vid
  11. Razbijanje lozinke
  12. Kvantno istraživanje

GPU vs CPU obrada

GPU i CPU obrađuju digitalne podatke, ali to rade na različite načine. CPU ili središnja procesorska jedinica dizajnirana je za serijsku obradu pri velikim brzinama, dok su GPU-ovi dizajnirani za paralelnu obradu pri mnogo manjim brzinama. Naravno, CPU može koristiti hiper-nitnost da dobije 2 niti po jezgri ili čak imati desetke jezgri, ali oni su u osnovi serijski procesori.

Dok CPU-i mogu imati nekoliko jezgri, moderni GPU-i dolaze s tisućama jezgri, na primjer, Nvidia GeForceRTX 3090 koji ima 10K+ jezgri. Kako bi dobili prednost u odnosu na CPU, podaci moraju biti sposobni za paralelnu obradu, kao što je obrada toka koji sadrži tisuće slika u pokretu.

GPU protiv ASIC-a

ASIC je kratica za Application Specific Integrated Circuit, a to znači da može obavljati samo jedan zadatak – to jest zadatak za koji je dizajniran. ASIC je jedinstven stroj koji se razvija od nule i zahtijeva stručno znanje hardvera za izradu. ASIC-ovi se obično koriste u rudarenju kriptovaluta jer nude dobre prednosti paralelne obrade i bolju učinkovitost od GPU-a.

Međutim, glavna razlika između njih dvoje je u tome što su grafički procesori svestraniji. Na primjer, možete jednostavno izgraditi opremu za rudarenje kriptovalute koristeći GPU. Dijelovi su lako dostupni i ako ste gotovi s rudarenjem, uvijek možete prodati GPU karticu igračima ili drugim rudarima. S ASIC-ovima, međutim, možete prodati samo rabljeni stroj drugim rudarima, jer teško da možete učiniti bilo što drugo s njim.

Osim rudarenja kriptovaluta, još je teže dočepati se ASIC stroja jer oni nisu masovni proizvodi. To je u velikoj suprotnosti s GPU sustavima koje možete nabaviti posvuda i lako konfigurirati.

GPU vs Cluster Computing

Dok jedna GPU kartica sadrži tisuće jezgri, koje dodaju ogromnu snagu bilo kojem računalu na koje je priključite, teoretski možete dodati onoliko GPU kartica na glavnu ploču računala koliko može podnijeti i dodatno povećati njegovu sposobnost obrade.

Računalni klaster, s druge strane, odnosi se na više računala koja su umrežena kako bi funkcionirala kao jedno veliko računalo – superračunalo. Svako računalo na mreži naziva se čvor i može imati višejezgreni CPU, kao i jednu ili više GPU kartica.

Svaki klaster mora imati glavni čvor, koji je prednje računalo koje je odgovorno za upravljanje i raspoređivanje svojih radnih čvorova. Također će sadržavati softver koji dodjeljuje podatke i programe svojim radnim čvorovima za izračunavanje i vraćanje rezultata.

GPU ubrzanje vs Hyper-threading

CPU je dizajniran za rješavanje više zadataka odjednom i zato radi vrlo velikom brzinom, raspoređujući vrijeme obrade između tih višestrukih procesa. Međutim, kada naiđe na računalno intenzivnu funkciju, može provesti neko vrijeme u petlji prije nego što se vrati na druge procese. To obično rezultira općim usporavanjem rada računala, au gorim slučajevima i potpunim zamrzavanjem sustava.

Računalni dizajneri mogu izbjeći ovaj zastrašujući scenarij korištenjem hiper-nitnosti ili GPU ubrzanja. Hyper-threading omogućuje da jedna CPU jezgra funkcionira kao dvije procesne niti. Dakle, kada je jedna nit zarobljena u računski intenzivnoj petlji, druga nit još uvijek može držati sustav na okupu.

Moderna računala sada imaju više jezgri od 2 do 4, 8, 16, 32 i tako dalje. Osim toga, imaju hiper-threading, tako da 2-jezgreni CPU nudi 4 niti, 4-jezgreni nudi 8 niti, i tako dalje.

Hyper-threading s višejezgrenim procesorima riješit će većinu računalnih problema, spriječiti uska grla i pružiti vrhunske performanse s jednostavnim igrama, glazbenom produkcijom i malim grafičkim, video i projektima strojnog učenja. Ali kada trebate više snage od toga, GPU je često pravo rješenje.

GPU ili hardversko ubrzanje sposobnost je softverske aplikacije da iskoristi snagu paralelne obrade GPU-a za obradu velikog broja podataka, bez zagušenja CPU-a. Mnoge profesionalne aplikacije ovise o GPU ubrzanju da bi dobro funkcionirale. To uključuje programe za dizajn/renderiranje videa i animacije, kodere, kriptografiju, velike neuronske mreže i tako dalje.

Osnove GPGPU programiranja

Programiranje opće namjene GPU-a u početku se provodilo korištenjem DirectX i OpenGL knjižnicama. Međutim, oni su dizajnirani isključivo za grafički razvoj, tako da ste morali prenamijeniti svoje podatke u grafičke modele da bi radili.

Srećom, došlo je do velikog napretka u GPGPU-u tijekom godina, što je dovelo do biblioteka, programskih jezika i okvira. Najpopularniji od ovih okvira je CUDA iz Nvidije.

CUDA olakšava bilo kojem programeru da uroni u GPU programiranje bez potrebe za poznavanjem sitnica klasičnog GPU programiranja. Pruža značajke koje poboljšavaju razvoj izvan grafike, a mnoge jedinice imaju čak i funkcije specifične za strojno učenje.

Dostupne biblioteke također olakšavaju stvaranje novih GPU-ubrzanih programa od nule ili prilagodbu već napisanih za paralelnu obradu. Odabereš pravu biblioteku, optimiziraš svoj kod za paralelne petlje, ponovno kompajliraš, i to je to.

CUDA jezgre protiv stream procesora

Često ćete naići na pojmove Cuda jezgre i stream procesori. Oba pojma jednostavno se odnose na GPU jezgru ili Aritmetičko-logičke jedinice GPU-a. CUDA Core je vlasnička tehnologija Nvidije, dok su Stream procesori AMD-a.

Još jedan pojam na koji možete naići je Streaming Multi-Processor ili SM. Ovo je još jedna Nvidijina tehnologija koja je izvorno grupirala 8 CUDA jezgri po SM-u. Izvršava 32-thread warps u pokretu, koristeći 4 takta po naredbi. Noviji dizajni sada imaju više od 100 jezgri po streaming multi-procesoru.

Najbolji GPU jezici i biblioteke

Postoji toliko mnogo biblioteka i jezika koji rade na Nvidia CUDA i AMD platformama. Slijedi samo nekoliko:

  1. Nvidia cuBLAS – Osnovni potprogrami linearne algebre za CUDA
  2. cuDNN – Knjižnica dubokih neuronskih mreža
  3. OpenCL – Otvoreni standard za paralelno programiranje
  4. Openmp – Za AMD GPU
  5. HIP – C++ biblioteka
  6. Nvidia cuRAND – Generiranje slučajnih brojeva
  7. cuFFT – Za brzu Fourierovu transformaciju
  8. Nvidia NPP – 2D obrada slike i signala
  9. GPU VSIPL – Vektorska slika i obrada signala
  10. OpenCV – GPU biblioteka za računalni vid
  11. OpenACC – Jezik za paralelni razvoj
  12. U PyCU – Python za CUDA platformu
  13. TensorRT – Duboko učenje za CUDA
  14. CUDA C++ – C++ jezik za CUDA
  15. CUDA C – C jezik za CUDA
  16. CUDA Fortran – CUDA za FORTRAN programere

Najbolji projekti GPU klastera

Od lipnja 2022., 8 od 10 najbržih superračunala na svijetu su GPU-ubrzana. Svi oni također dijele OS Linux, a sljedeći su:

PoredakImePetaflopsCPU jezgreGPU jezgriSnaga (kW)Godina
1.Granica1,102591,8728,138,24021,1002022
2.SOBA151.9075,2641,034,8802,9002022
3.Vrh148.6202,7522,211,84010,0962018
4.Pila94.64190,0801,382,4007,4382018
5.Perlmutter64.59N / AN / A2,5892021
6.Selene63.4671,680483,8402,6462020
7.Tianhe-261.445427,0084,554,75218,4822013
8.Adastra46.121,632297,4409212022

Zaključak

Dolazeći do kraja ovog poniranja u GPU računalstvo i sve što dolazi s njim, trebali ste do sada steći predodžbu o njegovoj moći i opsegu.

Za dodatne informacije možete provjeriti platformu za razvojne programere Nvidia ovdje ili onaj od AMD ovdje.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke je računalni entuzijast koji voli čitati širok raspon knjiga. Više voli Linux nego Windows/Mac i koristio ga je
Ubuntu od svojih ranih dana. Možete ga uhvatiti na twitteru putem bongotrax

Članci: 298

Primajte tehnološke stvari

Tehnički trendovi, trendovi startupa, recenzije, online prihod, web alati i marketing jednom ili dvaput mjesečno