GPU kompiuterija – kas tai?
Ar nuolat girdite apie GPU skaičiavimą ar pagreitį, bet nesate tikri, ką jie reiškia? Štai viskas, ką reikia žinoti.

GPU arba grafikos procesorių blokai yra visose elektroninėse grandinėse, kurios sukuria vienokią ar kitokią ekraną, ypač kompiuteryje.
Ankstyvieji grafikos procesoriai buvo gana paprasti. Tačiau atsiradus žaidimams, 3D animacijai ir vaizdo atvaizdavimo užduotims, kurios išstūmė CPU per jų ribas, į pagalbą turėjo ateiti galingesni GPU.
Laikui bėgant šių naujų GPU kortelių galia ir sudėtingumas išaugo, o skirtingos įmonės ir tyrėjai ieškojo būdų, kaip panaudoti lygiagretaus vykdymo pranašumus. Šis įrašas parodo, kaip sekėsi iki šiol.
Kas yra GPU?
GPU arba grafikos apdorojimo blokas yra specializuota grandinė, skirta manipuliuoti duomenimis, kad būtų lengviau sukurti vaizdus, kurie bus rodomi. Kitaip tariant, GPU yra sistema, kuri sukuria vaizdus, kuriuos matote bet kuriame ekrano paviršiuje, pavyzdžiui, kompiuterio monitoriuje, išmaniojo telefono ekrane, žaidimų pultuose ir pan.
Iš pradžių GPU buvo paprasti įrenginiai, sujungiantys grafinius elementus, kad sukurtų idealų išvestį konkrečiam įrenginiui. Tačiau laikui bėgant ir atsiradus kompiuteriniams žaidimams, GPU tapo sudėtingesnis ir galingesnis, todėl atsirado GPGPU arba bendrosios paskirties skaičiavimas GPU.
Kas yra GPU kompiuterija?
GPU skaičiavimas arba GPGPU yra GPU naudojimas ne tik grafiniam skaičiavimui. Tai reiškia, kad į kompiuterio vaizdo plokštę įtaisytus GPU, iš pradžių skirtus kompiuterinei grafikai apdoroti, reikia naudoti kitų tipų duomenims skaičiuoti, pavyzdžiui, moksliniams modeliams, kriptovaliutų gavybai, algebros skaičiavimams, orų prognozėms, neuroniniams tinklams ir pan.
Tokios GPU skaičiavimo raidos priežastis yra įspūdinga grafikos apdorojimo blokų plėtra, kurią lemia paskirstyta lygiagreti šiuolaikinių GPU sistemų architektūra.
Kadangi kompiuterio procesorius tapo galingesnis ir galėjo valdyti sudėtingesnes programas bei žaidimus, vaizdo plokščių gamintojai taip pat stengėsi neatsilikti nuo šiuolaikinės kompiuterijos ir 3D grafikos raidos. „Nvidia“ pristatė "GeForce 256" 1999 m. tapo pirmąja pasaulyje GPU vaizdo plokšte ir viskas išsivystė iš ten.
Pagrindinis GPU kortelių pranašumas, palyginti su procesoriais, yra lygiagretaus apdorojimo architektūra, leidžianti joms apdoroti dideles duomenų užduotis paskirstytu lygiagrečiu būdu, kuris apsaugo nuo kliūčių ir procesoriaus užšalimo.
Kokios yra GPU skaičiavimo programos?
GPU skaičiavimo programų yra daug, štai keletas pagrindinių naudojimo būdų:
- Mašininis mokymasis ir neuroniniai tinklai
- Apytikslė logika
- Bioinformatika
- Molekulinis modeliavimas
- Vaizdo įrašų atvaizdavimas
- Geometrinis skaičiavimas
- Klimato tyrimai ir orų prognozės
- Astrofizika
- Kriptografija
- Kompiuterių vizija
- Slaptažodžio nulaužimas
- Kvantinis tyrimas
GPU vs CPU apdorojimas
GPU ir procesoriai apdoroja skaitmeninius duomenis, tačiau tai daro skirtingai. CPU arba centrinis procesorius skirtas nuosekliam apdorojimui dideliu greičiu, o GPU – lygiagrečiam apdorojimui daug mažesniu greičiu. Žinoma, centrinis procesorius gali naudoti hipersriegius, kad gautų 2 gijas viename šerdyje arba net dešimtis branduolių, tačiau iš esmės tai yra serijiniai procesoriai.
Nors CPU gali turėti keletą branduolių, šiuolaikiniuose GPU yra tūkstančiai branduolių, pavyzdžiui, „Nvidia GeForce RTX 3090“ kuriame yra 10K+ branduolių. Tačiau norint gauti pranašumą prieš procesorius, duomenis turi būti galima apdoroti lygiagrečiai, pavyzdžiui, apdoroti srautą, kuriame yra tūkstančiai vaizdų vienu metu.
GPU vs ASIC
ASIC reiškia taikomosios programos integrinį grandyną, o tai reiškia, kad jis gali atlikti tik vieną užduotį – tai yra užduotį, kuriai ji buvo sukurta. ASIC yra unikali mašina, kuri sukurta nuo nulio ir kuriai sukurti reikia ekspertų aparatinės įrangos žinių. ASIC dažniausiai naudojami kriptovaliutų kasyboje, nes jie siūlo gerą lygiagretaus apdorojimo naudą ir didesnį efektyvumą nei GPU.
Tačiau pagrindinis skirtumas tarp šių dviejų yra tas, kad GPU yra universalesni. Pavyzdžiui, galite lengvai sukurti kriptovaliutų kasybos įrenginį naudodami GPU. Dalys yra lengvai prieinamos ir, jei baigsite kasybą, visada galite parduoti GPU kortelę žaidėjams ar kitiems kalnakasiams. Tačiau naudodami ASIC galite parduoti naudotą mašiną tik kitiems kalnakasiams, nes vargu ar su ja galite ką nors padaryti.
Be kriptovaliutų gavybos, dar sunkiau numoti ranka į ASIC mašiną, nes tai nėra masiniai produktai. Tai stipriai kontrastuoja su GPU sistemomis, kurias galite gauti visur ir lengvai konfigūruoti.
GPU vs klasterinis skaičiavimas
Nors vienoje GPU kortelėje yra tūkstančiai branduolių, kurie suteikia didžiulę galią bet kuriam kompiuteriui, prie kurio ją prijungiate, teoriškai prie kompiuterio pagrindinės plokštės galite pridėti tiek GPU kortelių, kiek ji gali apdoroti, ir dar labiau padidinti jo apdorojimo galimybes.
Kita vertus, kompiuterių klasteris reiškia kelis kompiuterius, sujungtus į tinklą, kad veiktų kaip vienas didelis kompiuteris - superkompiuteris. Kiekvienas tinklo kompiuteris vadinamas mazgu ir gali turėti kelių branduolių centrinį procesorių, taip pat vieną ar daugiau GPU kortelių.
Kiekvienas klasteris turi turėti pagrindinį mazgą, kuris yra priekinis kompiuteris, atsakingas už darbuotojų mazgų valdymą ir planavimą. Jame taip pat bus programinė įranga, kuri paskirsto duomenis ir programas savo darbuotojų mazgams, kad būtų galima apskaičiuoti ir grąžinti rezultatus.
GPU pagreitis vs hipersriegis
CPU sukurtas taip, kad vienu metu galėtų atlikti kelias užduotis, todėl jis veikia labai dideliu greičiu, suplanuodamas apdorojimo laiką tarp šių kelių procesų. Tačiau kai ji susiduria su daug skaičiavimo reikalaujančia funkcija, ji gali šiek tiek užtrukti cikle, kol grįš į kitus procesus. Paprastai tai lemia bendrą kompiuterio sulėtėjimą, o blogesniais atvejais – visišką sistemos užšalimą.
Kompiuterių dizaineriai gali išvengti šio baisaus scenarijaus naudodami hipergiją arba GPU spartinimą. Hipersriegiavimas leidžia vienam procesoriaus branduoliui veikti kaip dviem apdorojimo gijomis. Taigi, kai viena gija yra įstrigusi daug skaičiavimo reikalaujančioje kilpoje, kita gija vis tiek gali išlaikyti sistemą kartu.
Šiuolaikiniai kompiuteriai dabar turi kelis branduolius nuo 2 iki 4, 8, 16, 32 ir pan. Be to, jie pasižymi hipersriegiu, todėl 2 branduolių procesorius siūlo 4 gijas, 4 branduolių – 8 gijas ir pan.
Hipersriegiavimas su kelių branduolių procesoriais išspręs daugumą skaičiavimo problemų, užkirs kelią kliūtims ir užtikrins geriausią našumą naudojant paprastus žaidimus, muzikos kūrimą ir nedidelius grafikos, vaizdo įrašų ir mašininio mokymosi projektus. Tačiau kai jums reikia daugiau galios, GPU dažnai yra tinkamas sprendimas.
GPU arba aparatinės įrangos pagreitis – tai programinės įrangos galimybė panaudoti GPU lygiagretaus apdorojimo galią, kad būtų galima sutraiškyti didelį duomenų skaičių, neužstrigdamas procesoriaus. Daugelio profesionalių programų veikimas priklauso nuo GPU spartinimo. Tai vaizdo ir animacijos projektavimo/perteikimo programos, kodavimo įrenginiai, kriptografija, dideli neuroniniai tinklai ir pan.
GPGPU programavimo pagrindai
Bendrosios paskirties GPU programavimas iš pradžių buvo atliktas naudojant "DirectX bei OpenGL bibliotekos. Tačiau jie buvo sukurti griežtai grafikos kūrimui, todėl turėjote iš naujo panaudoti duomenis į grafinius modelius, kad jie veiktų.
Laimei, per daugelį metų GPGPU buvo padaryta didelė pažanga, todėl atsirado bibliotekos, programavimo kalbos ir sistemos. Populiariausias iš šių karkasų yra CUDA iš Nvidia.
CUDA leidžia bet kuriam kūrėjui lengvai pasinerti į GPU programavimą, nereikia išmanyti klasikinio GPU programavimo subtilybių. Jame yra funkcijų, kurios pagerina plėtrą ne tik grafikoje, o daugelyje įrenginių netgi yra specifinių mašininio mokymosi funkcijų.
Galimos bibliotekos taip pat leidžia lengvai kurti naujas GPU pagreitintas programas nuo nulio arba pritaikyti iš anksto parašytas programas lygiagrečiam apdorojimui. Jūs pasirenkate tinkamą biblioteką, optimizuojate savo kodą lygiagrečioms kilpoms, perkompiliuojate ir viskas.
CUDA branduoliai vs srauto procesoriai
Dažnai susidursite su terminais Cuda šerdys bei srauto procesoriai. Abu terminai tiesiog nurodo GPU branduolį arba Aritmetiniai loginiai vienetai GPU. „CUDA Core“ yra patentuota „Nvidia“ technologija, o „Stream“ procesoriai yra iš AMD.
Kitas terminas, su kuriuo galite susidurti, yra srautinis kelių procesorių arba SM. Tai dar viena „Nvidia“ technologija, kuri iš pradžių sugrupavo 8 CUDA branduolius viename SM. Jis vienu metu atlieka 32 gijų deformacijas, vienai komandai naudodamas 4 laikrodžio ciklus. Naujesniuose modeliuose dabar yra daugiau nei 100 branduolių vienam srautinio perdavimo procesoriui.
Populiariausios GPU kalbos ir bibliotekos
Yra tiek daug bibliotekų ir kalbų, kurios veikia tiek Nvidia CUDA, tiek AMD platformose. Toliau pateikiami tik keli:
- Nvidia cuBLAS – Pagrindinės tiesinės algebros subprogramos, skirtos CUDA
- cuDNN – Giliųjų neuroninių tinklų biblioteka
- OpenCL – Atviras lygiagretaus programavimo standartas
- „OpenMP“ - AMD GPU
- HIP - C++ biblioteka
- Nvidia cuRAND - Atsitiktinių skaičių generavimas
- cuFFT – Greitai Furjė transformacijai
- Nvidia AE – 2D vaizdo ir signalo apdorojimas
- GPU VSIPL – Vektorinio vaizdo ir signalo apdorojimas
- OpenCV – GPU biblioteka kompiuteriniam matymui
- OpenACC – Kalba lygiagrečiai plėtrai
- PyCU – Python CUDA platformai
- TensorRT – Gilus CUDA mokymasis
- CUDA C++ – C++ kalba, skirta CUDA
- CUDA C – C kalba, skirta CUDA
- CUDA Fortran – CUDA FORTRAN kūrėjams
Populiariausi GPU klasterių projektai
2022 m. birželio mėn. 8 iš 10 greičiausių superkompiuterių pasaulyje yra pagreitinti GPU. Jie visi taip pat dalijasi „Linux“ OS ir yra tokie:
| rangas | Jūsų vardas | Petaflops | Procesoriaus šerdys | GPU ritės | Galia (kW) | Metai |
| 1. | Siena | 1,102 | 591,872 | 8,138,240 | 21,100 | 2022 |
| 2. | KAMBARYS | 151.90 | 75,264 | 1,034,880 | 2,900 | 2022 |
| 3. | Viršūnė | 148.6 | 202,752 | 2,211,840 | 10,096 | 2018 |
| 4. | Kalnagūbris | 94.64 | 190,080 | 1,382,400 | 7,438 | 2018 |
| 5. | Perlmutteris | 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 |
Išvada
Pasiekę šio nardymo į GPU skaičiavimą ir visa, kas su juo susijusi, pabaigą, jau turėjote susidaryti supratimą apie jo galią ir apimtį.
Norėdami gauti daugiau informacijos, galite peržiūrėti kūrėjo platformą Nvidia čia arba kad iš AMD čia.




