3 spørgsmål om video kort specifikationer du har altid ønsket besvaret
I den sidste uge havde jeg skrevet et stykke om uklare GPU-specifikationer. Mens det udsatte nogle af de mest forvirrende dele af specifikationerne i videokort, har en række læsere forlovet med artiklen, idet de sagde, at det kunne have været mere detaljeret. Det ville kun være passende at besvare flere spørgsmål om komponenterne på grafikkortet, som ikke nødvendigvis blev besvaret af den pågældende artikel i dette stykke. Uden yderligere ado, her er nogle svar på de mest presserende spørgsmål om grafikkort specifikationer, der ikke synes at være fuldt ud forklaret, som alle kan forstå på nettet.
Hvad er CUDA, og hvad er en CUDA-kerne?
Beregn Unified Device Architecture (CUDA) er en funktion i de fleste nyere Nvidia grafikkort, der gør det muligt for computeren at bruge en del af GPU'en (eller endda den komplette GPU) som en "assistent" til processoren. GPU'er pakker meget mere muskler end computere, men deres arkitektur har historisk været mere optimeret til beregning af tegningsafstande og polygoner (derfor slås de på grafikkort i første omgang). CUDA forvandler GPU'en til en matte geek, der kan knuse tal meget hurtigt, ved hjælp af den grimme muskelkraft i en GPU til andre ting end blot at gengive og vise grafik på skærmen.
I artiklen knyttet til i begyndelsen forklarede jeg, at SETI @ Home udnytter CUDA ved at bruge grafikkort til at udføre beregninger. Dette er blot et eksempel på, hvordan CUDA kan bruges til at gøre fantastiske ting. CUDA kan også bruges til transcode video (konvertere det fra et format til et andet) ved hjælp af en særlig codec, der kommunikerer med hardware. Nvidia's encoder er kendt som NVENC, og det er en kraftfuld måde at kode video meget hurtigere ved hjælp af grafikkortvideosystemet i modsætning til at udmande din CPU. Hvis du er en udvikler, og du er interesseret i at inkludere NVENC i dit program, kan du se Nvidias ressourcer her.
OK, så nu ved vi, hvad CUDA er. Hvad med CUDA kerner?
En CUDA-kerne er et segment af GPU'en, der kan bruges til CUDA. Det er en del af GPU'en, at nogle overvågningsprogrammer kalder "Video Engine." Hver kerne er et lille stykke af hele GPU'ens arkitektur, som kan bruges til både traditionelle 3D-rendering eller CUDA-specifikke funktioner. På de fleste grafikkort er hele GPU'en tilgængelig for CUDA-arbejde. Det betyder, at antallet af CUDA kerner i GPU'en faktisk definerer, hvor mange kerner hele GPU'en har.
Hvorfor har GPU'er så mange kerner?
Mens dagens CPU'er typisk har fire til otte kerner, er der grafikkort derude med over 5.000 kerner! Hvorfor er det, og hvorfor kan ikke CPU'er have sådan en sindssyg mængde kerner?
GPU'en og CPU'en blev begge lavet til forskellige formål. Mens en CPU reagerer på maskinkoden for at kommunikere med forskellige hardwarestykker på din computer, er GPU'en kun beregnet til et bestemt formål: Det skal gøre polygoner til de smukke scener, vi ser i 3D-accelererede miljøer og derefter oversætte alle disse ting ind i et billede 60 gange eller mere pr. sekund. Det er en høj ordre for en CPU, men da GPU'en har rummelige polygonprocessorer, kan den opdele arbejdsbelastningen blandt alle sine kerner for at gøre et grafisk miljø inden for få millisekunder.
Det er her kernerne kommer ind. En GPU har brug for alle disse kerner til at opdele massive opgaver i små stykker, hver kerne behandler sin egen del af scenen individuelt. Applikationer, der bruger CPU'er (som din browser) har ikke fordel af at have et så stort antal kerner, medmindre hver kerne har muskelstyrken i en hel behandlingsenhed. Din browser er afhængig af hurtig adgang til information i modsætning til opdeling af opgaver. Når du lægger en webside eller læser en PDF-fil, behøver du kun en behandlingsstrøm for at indlæse alt det.
Gør mere RAM et videokort bedre?
RAM er lidt af et underligt grå område med videokort. Selvom det er rart at have så meget RAM som muligt, skal du også kunne bruge alt det RAM . Et videokort med 1024 MB RAM og en 192 bit bred bus skal udføre meget bedre end et grafikkort med 2048 MB RAM og den samme bus.
Som jeg har forklaret i det forrige stykke, vil 2048 MB-videokortet opleve noget, der kaldes "båndbreddeflaskehalsing", fordi bussen (den vej, som data bevæger på) ikke er bred nok til at bære en tilstrækkelig mængde data i en kort mængde tid.
Kort sagt, nej, mere RAM er ikke nødvendigvis bedre, hvis videokortet ikke har en bred bus. Her er min guide til korrekt busbredde: Dit videokort skal have maksimalt otte gange mængden af RAM i megabyte som antallet af bits i bussen. For eksempel skal et 1024 MB kort have mindst 128 bit bus (1024/8 = 128). Så for et 2048 MB kort anbefaler jeg mindst 256 bits.
Hvis du stadig har flere spørgsmål, skal du sørge for at spørge dem i kommentarerne nedenfor!