Sedan det senaste decenniet har vi sett GPU:er komma in i bilden allt oftare inom områden som HPC (High-Performance Computing) och det mest populära området, dvs. spel. GPU:er har förbättrats år efter år och nu kan de göra otroligt bra saker, men under de senaste åren har de fått ännu mer uppmärksamhet på grund av djupinlärning.
Eftersom modeller för djupinlärning spenderar mycket tid på träning var inte ens kraftfulla CPU:er tillräckligt effektiva för att hantera så många beräkningar samtidigt, och det är på detta område som GPU:erna helt enkelt överträffade CPU:erna på grund av sin parallellism. Men innan vi går in på djupet kan vi först förstå några saker om GPU.
En GPU eller ”Graphics Processing Unit” är en miniversion av en hel dator, men endast avsedd för en specifik uppgift. Den är till skillnad från en CPU som utför flera uppgifter samtidigt. GPU:n har en egen processor som är inbyggd på ett eget moderkort tillsammans med v-ram eller videoram och även en ordentlig termisk konstruktion för ventilation och kylning.
I samband med att den här bloggen skrevs meddelade Nvidia att de senaste 3000-serierna i sitt GPU-utbud kommer med Ampere-arkitektur. I denna har de förbättrat prestandan hos sensorkärnorna med 2x. De har också tagit med sig nya precisionsvärden som TF32(tensor float 32), FP64(floating point 64). TF32 fungerar på samma sätt som FP32 men med en hastighetsökning på upp till 20x. Som ett resultat av allt detta hävdar Nvidia att inferens- eller träningstiden för modeller kommer att minskas från veckor till timmar.
AMD vs Nvidia
källa(Tom’s Hardware)
AMD:s GPU:er är anständiga för spel, men så snart som djupinlärning kommer in i bilden, då ligger helt enkelt Nvidia långt före. Det betyder inte att AMD:s GPU:er är dåliga. Det beror på mjukvaruoptimering och drivrutiner som inte uppdateras aktivt, på Nvidias sida har de bättre drivrutiner med frekventa uppdateringar och dessutom hjälper CUDA, cuDNNN till att påskynda beräkningarna.
Vissa välkända bibliotek som Tensorflow, PyTorch har stöd för CUDA. Det innebär att GPU:er på instegsnivå i GTX 1000-serien kan användas. På AMD:s sida finns det mycket lite mjukvarustöd för deras GPU:er. På hårdvarusidan har Nvidia infört dedikerade sensorkärnor. AMD har ROCm för acceleration, men det är inte lika bra som tensor-kärnor, och många bibliotek för djupinlärning har inte stöd för ROCm. Under de senaste åren har man inte märkt något stort språng när det gäller prestanda.
På grund av alla dessa punkter utmärker sig Nvidia helt enkelt inom djupinlärning.
Sammanfattning
För att dra en slutsats av allt vi har lärt oss är det tydligt att Nvidia i dagsläget är marknadsledande när det gäller GPU:er, men jag hoppas verkligen att även AMD kommer ikapp i framtiden eller åtminstone gör några anmärkningsvärda förbättringar i den kommande serien av deras GPU:er eftersom de redan gör ett bra jobb när det gäller deras CPU:er i.
Den omfattning som GPU:erna har under de kommande åren är enorm eftersom vi gör nya innovationer och genombrott inom djupinlärning, maskininlärning och HPC. GPU-acceleration kommer alltid att vara till nytta för många utvecklare och studenter för att komma in på detta område eftersom deras priser också blir mer överkomliga. Tack också till det breda samhället som också bidrar till utvecklingen av AI och HPC.