GPU Computing – vad är det?
Hör du hela tiden om GPU-beräkning eller acceleration, men är inte säker på vad de betyder? Här är allt du behöver veta.

GPU eller Graphics Processing Units finns i alla elektroniska kretsar som producerar den ena eller den andra formen av skärm, särskilt datorn.
Tidiga grafikprocessorer var relativt enkla. Men med intåget av spel, 3D-animationer och videorenderingsuppgifter som drev CPU:er utöver sina gränser, var kraftfullare GPU:er tvungna att komma till undsättning.
Dessa nya GPU-kort växte i kraft och komplexitet med tiden, med olika företag och forskare som letade efter sätt att utnyttja sina fördelar med parallella exekveringar. Det här inlägget visar hur det har gått hittills.
Vad är en GPU?
En GPU eller Graphics Processing Unit är en specialiserad krets designad för manipulering av data för att hjälpa till att skapa bilder för visning. Med andra ord är en GPU ett system som skapar de bilder du ser på vilken skärm som helst, som datorskärm, smartphoneskärm, spelkonsoler och så vidare.
GPU:er var från början enkla enheter som satte ihop grafiska element för att skapa en idealisk utdata för en specifik enhet. Med tiden, och med tillkomsten av datorspel, började dock GPU:er växa i komplexitet och kraft, vilket gav upphov till GPGPU eller General Purpose Computing on GPUs.
Vad är GPU Computing?
GPU-beräkning eller GPGPU är användningen av en GPU för beräkning utöver grafik. Detta innebär att man använder GPU:er inbäddade i en dators grafikkort och som ursprungligen var avsedda för bearbetning av datorgrafik för beräkning av andra typer av data, såsom vetenskapliga simuleringar, brytning av kryptovaluta, algebraberäkningar, väderprognoser, neurala nätverk och så vidare.
Anledningen till denna utveckling av GPU-beräkningar kommer från den imponerande utvecklingen av grafikbehandlingsenheter, som kommer från den distribuerade parallella arkitekturen hos moderna GPU-system.
Allt eftersom datorns processor blev kraftfullare och kunde hantera mer komplexa program och spel, försökte även grafikkortstillverkarna hålla jämna steg med utvecklingen inom modern datoranvändning och 3D-grafik. Nvidia presenterade GeForce 256 1999 som världens första GPU-grafikkort och saker och ting utvecklades därifrån.
Den stora fördelen med GPU-kort framför processorer är deras parallella bearbetningsarkitektur, vilket gör att de kan bearbeta stora datauppgifter på ett distribuerat, parallellt sätt som förhindrar flaskhalsar och CPU-stopp.
Vilka är applikationerna för GPU Computing?
Tillämpningarna av GPU-datorer är många, här är en titt på några av de vanligaste användningsområdena:
- Maskininlärning och neurala nätverk
- Fuzzy logik
- Bioinformatik
- Molekylär modellering
- Videorendering
- Geometrisk beräkning
- Klimatforskning och väderprognoser
- Astrofysik
- Kryptografi
- Datorsyn
- Lösenordsknäckande
- Kvantforskning
GPU vs CPU-behandling
GPU:er och processorer bearbetar båda digital data, men de gör det på olika sätt. CPU eller centralenhet är designad för seriell bearbetning vid höga hastigheter, medan GPU:er är designade för parallell bearbetning vid mycket lägre hastigheter. Naturligtvis kan en CPU använda hyper-threading för att få 2 trådar per kärna, eller till och med ha dussintals kärnor, men de är i grunden seriella processorer.
Medan processorer kan ha ett fåtal kärnor, levereras moderna grafikkort med tusentals kärnor, till exempel Nvidia GeForce RTX 3090 som har 10 000+ kärnor. För att få en fördel gentemot processorer måste dock data kunna bearbetas parallellt, till exempel att bearbeta en ström som innehåller tusentals bilder samtidigt.
GPU:er kontra ASIC:er
ASIC står för Application Specific Integrated Circuit och det betyder att den bara kan utföra en uppgift – det vill säga uppgiften den var designad för att utföra. En ASIC är en unik maskin som är utvecklad från grunden och kräver expertkunskaper om hårdvara för att bygga. ASIC:er används ofta vid brytning av kryptovalutor, eftersom de erbjuder goda fördelar med parallell bearbetning och bättre effektivitet än GPU:er.
Den stora skillnaden mellan de två är dock att GPU:er är mer mångsidiga. Till exempel kan du enkelt bygga en gruvrigg för kryptovaluta med hjälp av GPU:er. Delarna är lättillgängliga och är du klar med mining kan du alltid sälja GPU-kortet till spelare eller andra gruvarbetare. Med ASIC kan du dock bara sälja en begagnad maskin till andra gruvarbetare, eftersom du knappast kan göra något annat med den.
Utöver brytning av kryptovaluta blir det ännu svårare att lägga händerna på en ASIC-maskin, eftersom de inte är massprodukter. Detta står i stark kontrast till GPU-system som du kan få överallt och enkelt konfigurera.
GPU kontra Cluster Computing
Medan ett enda GPU-kort innehåller tusentals kärnor, som tillför enorm kraft till vilken dator du ansluter det till, kan du teoretiskt lägga till så många GPU-kort till datorns moderkort som det kan hantera, och ytterligare öka dess bearbetningsförmåga.
Ett datorkluster, å andra sidan, hänvisar till flera datorer som är sammankopplade i nätverk för att fungera som en stor dator - en superdator. Varje dator i nätverket kallas en nod och kan ha en multi-core CPU, samt ett eller flera GPU-kort ombord.
Varje kluster måste ha en huvudnod, som är den främre datorn som är ansvarig för att hantera och schemalägga sina arbetarnoder. Den kommer också att innehålla programvara som allokerar data och program för sina arbetarnoder för att beräkna och returnera resultat.
GPU Acceleration vs Hyper-threading
CPU:n är designad för att hantera flera uppgifter samtidigt, och det är därför den körs i mycket höga hastigheter och schemalägger bearbetningstid mellan dessa flera processer. Men när den stöter på en beräkningsintensiv funktion kan den tillbringa en stund i slingan innan den återgår till de andra processerna. Detta resulterar vanligtvis i en allmän nedgång av datorn, och i värre fall, en fullständig frysning av systemet.
Datordesigners kan undvika detta fruktade scenario genom att antingen använda hyper-threading eller GPU-acceleration. Hyper-threading tillåter en enda CPU-kärna att fungera som två bearbetningstrådar. Så när en tråd är fångad i en beräkningskrävande slinga kan den andra tråden fortfarande hålla ihop systemet.
Moderna datorer har nu flera kärnor från 2 till 4, 8, 16, 32 och så vidare. Dessutom har de hypertrådning, så en 2-kärnig CPU erbjuder 4 trådar, en 4-kärnig erbjuder 8 trådar, och så vidare.
Hyper-threading med flerkärniga processorer kommer att lösa de flesta datorproblem, förhindra flaskhalsar och leverera toppprestanda med enkla spel, musikproduktion och små grafik-, video- och maskininlärningsprojekt. Men när du behöver mer kraft än så är en GPU ofta rätt lösning.
GPU eller hårdvaruacceleration är förmågan hos en mjukvaruapplikation att utnyttja en GPU:s parallella processorkraft för att krossa stora mängder data, utan att köra ner processorn. Många professionella applikationer är beroende av GPU-acceleration för att fungera bra. Dessa inkluderar video- och animationsdesign/renderingsprogram, kodare, kryptografi, stora neurala nätverk och så vidare.
Grunderna i GPGPU-programmering
Allmän programmering av GPU:er gjordes ursprungligen med hjälp av DirectX- och OpenGL -bibliotek. Dessa var dock utformade enbart för grafikutveckling, så man var tvungen att omvandla sina data till grafikliknande modeller för att de skulle fungera.
Lyckligtvis har det skett stora framsteg inom GPGPU under åren, vilket lett till bibliotek, programmeringsspråk och ramverk. Det mest populära av dessa ramverk är CUDA från Nvidia.
CUDA gör det enkelt för alla utvecklare att dyka in i GPU-programmering utan att behöva känna till det snåriga med klassisk GPU-programmering. Den tillhandahåller funktioner som förbättrar utvecklingen bortom grafik, med många enheter som till och med har maskininlärningsspecifika funktioner.
Tillgängliga bibliotek gör det också enkelt att skapa nya GPU-accelererade program från grunden eller att anpassa förskrivna till parallell bearbetning. Du väljer rätt bibliotek, optimerar din kod för parallella loopar, kompilerar om, och det är allt.
CUDA Cores vs Stream-processorer
Ofta stöter man på termerna Cuda-kärnor och stream-processorer . Båda termerna hänvisar helt enkelt till GPU-kärnan eller de aritmetiska logikenheterna i en GPU . CUDA Core är en proprietär teknik från Nvidia, medan Stream-processorer kommer från AMD.
En annan term du kan stöta på är Streaming Multi-Processor eller SM. Detta är en annan Nvidia-teknik som ursprungligen grupperade 8 CUDA-kärnor per SM. Den utför 32-trådsförvrängningar på en gång, med 4 klockcykler per kommando. Nyare design har nu över 100 kärnor per strömmande multiprocessor.
Topp GPU-språk och bibliotek
Det finns så många bibliotek och språk där ute som fungerar på både Nvidia CUDA och AMD-plattformar. Följande är bara några:
- Nvidia cuBLAS – Grundläggande linjär algebra underprogram för CUDA
- cuDNN – Djupa neurala nätverksbibliotek
- OpenCL – Öppen standard för parallell programmering
- Openmp – För AMD GPU:er
- HÖFT – C++ bibliotek
- Nvidia curAND – Generering av slumptal
- cuFFT – För Fast Fourier-transform
- Nvidia NPP – 2D-bild och signalbehandling
- GPU VSIPL – Vektorbild och signalbehandling
- OpenCV – GPU-bibliotek för datorseende
- ÖppnaACC – Språk för parallell utveckling
- I PyCU – Python för CUDA-plattform
- TensorRT – Deep learning för CUDA
- CUDA C++ – C++-språk för CUDA
- CUDA C – C-språk för CUDA
- CUDA Fortran – CUDA för FORTRAN-utvecklare
Topp GPU-klusterprojekt
Från och med juni 2022 är 8 av de 10 snabbaste superdatorerna i världen GPU-accelererade. De delar alla Linux OS också, och är som följer:
| Rang | Namn | Petaflops | CPU-kärnor | GPU-kärnor | Effekt (kW) | År |
| 1. | Frontier | 1,102 | 591,872 | 8,138,240 | 21,100 | 2022 |
| 2. | RUM | 151.90 | 75,264 | 1,034,880 | 2,900 | 2022 |
| 3. | Summit | 148.6 | 202,752 | 2,211,840 | 10,096 | 2018 |
| 4. | Saw | 94.64 | 190,080 | 1,382,400 | 7,438 | 2018 |
| 5. | Perlmutter | 64.59 | - | - | 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 |
Slutsats
När du har nått slutet av den här dykningen i GPU-datorer och allt som följer med den borde du ha fått en uppfattning om dess kraft och omfattning vid det här laget.
För mer information kan du kolla in Nvidias utvecklarplattform här eller AMDs här.




