Under den senaste veckan hade jag skrivit en bit om obskurliga GPU-specifikationer. Medan det avslöjade några av de mest förvirrande delarna av specifikationerna i grafikkort har ett antal läsare engagerat sig i artikeln och sagt att det kunde ha varit mer detaljerat. Det skulle bara vara lämpligt att svara på fler frågor om komponenterna på grafikkortet som inte nödvändigtvis svarades av den artikeln i den här delen. Utan ytterligare ado, här är några svar på de mest pressande frågorna om grafikkortspecifikationer som inte verkar fullständigt förklaras så att alla kan förstå på webben.

Vad är CUDA, och vad är en CUDA-kärna?

Beräkna enhetlig enhetarkitektur (CUDA) är en funktion i de flesta nya Nvidia-grafikkort som gör att datorn kan använda en del av GPU (eller till och med den kompletta GPU) som en "assistent" till processorn. GPU: er packar mycket mer muskler än datorer, men deras arkitektur har historiskt varit mer optimerad för att beräkna räckvidder och polygoner (det är därför de slås på grafikkort i första hand). CUDA förvandlar GPU till en matte geek som kan krossa tal mycket snabbt, med hjälp av den galna muskelstyrkan hos en GPU för andra saker än att bara göra och visa grafik på skärmen.

I artikeln kopplad till i början förklarade jag att SETI @ Home utnyttjar CUDA genom att använda grafikkort för att utföra beräkningar. Detta är bara ett exempel på hur CUDA kan användas för att göra fantastiska saker. CUDA kan också användas för att omvandla video (konvertera det från ett format till ett annat) med hjälp av en särskild codec som kommunicerar med hårdvaran. Nvidias kodare är känd som NVENC, och det är ett kraftfullt sätt att koda video mycket snabbare med grafikkortets videomotor i motsats till att utmana din CPU. Om du är en utvecklare, och du är intresserad av att inkludera NVENC i ditt program, kan du se Nvidias resurser här.

OK, så nu vet vi vad CUDA är. Vad sägs om CUDA-kärnor?

En CUDA-kärna är ett segment av GPU som kan användas för CUDA. Det är den del av GPU som vissa övervakningsprogram kallar "Video Engine". Varje kärna är en liten del av hela GPU: s arkitektur som kan användas för både traditionell 3D-rendering eller CUDA-specifika funktioner. På de flesta grafikkort är hela GPU tillgänglig för CUDA-arbete. Detta innebär att antalet CUDA-kärnor i GPUen definierar faktiskt hur många kärnor hela GPU har.

Varför har GPU: er så många kärnor?

Medan dagens processorer normalt har fyra till åtta kärnor finns grafikkort där ute med över 5000 kärnor! Varför är det, och varför kan inte CPU-enheter ha så en galen mängd kärnor?

GPU och CPU var båda gjorda för olika ändamål. Medan en CPU reagerar på maskinkod för att kommunicera med olika hårdvaror på din dator, är GPUen endast gjord för ett visst syfte: Det ska göra polygoner till de vackra scenerna som vi ser i 3D-accelererade miljöer och översätt sedan alla dessa saker till en bild 60 gånger eller mer per sekund. Det är en lång order för en CPU, men eftersom GPU har avdelade polygonprocessorer kan den dela arbetsbelastningen bland alla dess kärnor för att göra en grafisk miljö inom några millisekunder.

Det är här kärnorna kommer in. En GPU behöver alla dessa kärnor att dela upp stora uppgifter i små bitar, varje kärna behandlar sin egen del av scenen individuellt. Program som använder CPU-enheter (som din webbläsare) drar inte nytta av att ha ett så stort antal kärnor om inte varje kärna har muskelstyrkan hos en hel bearbetningsenhet. Din webbläsare är beroende av snabb åtkomst till information i motsats till avdelning av uppgifter. När du laddar en webbsida eller läser en PDF-fil behöver du bara en bearbetningsström för att ladda upp allt detta.

Ger mer RAM ett videokort bättre?

RAM är lite av ett konstigt gråområde med videokort. Även om det är trevligt att ha så mycket RAM som möjligt, måste du också kunna använda allt RAM . Ett grafikkort med 1024 MB RAM och en 192 bitars buss kommer att fungera mycket bättre än ett grafikkort med 2048 MB RAM och samma buss.

Som jag har förklarat i det föregående stycket kommer 2048 MB-grafikkortet att uppleva något som kallas "fläckhalsbandshantering" eftersom bussen (vägen där data färdas) inte är tillräckligt stor för att ha tillräcklig mängd data i en kort mängd tid.

Kort sagt, nej, mer RAM är inte nödvändigtvis bättre om videokortet inte har en bred buss. Här är min guide till korrekt bussbredd: Ditt grafikkort ska ha högst åtta gånger så mycket RAM i megabyte som antalet bitar i bussen. Ett 1024 MB-kort skulle till exempel ha minst 128 bitars buss (1024/8 = 128). Så, för ett 2048 MB-kort rekommenderar jag minst 256 bitar.

Om du fortfarande har fler frågor, var god och fråga dem i kommentarerna nedan!