I den siste uken hadde jeg skrevet et stykke om obskure GPU-spesifikasjoner. Mens det utstod noen av de mest forvirrende deler av spesifikasjonene i skjermkort, har en rekke lesere engasjert seg i artikkelen, og sa at det kunne vært mer detaljert. Det ville bare være passende å svare på flere spørsmål om komponentene på grafikkortet som ikke nødvendigvis ble besvart av den artikkelen i dette stykket. Uten videre ado, her er noen svar på de mest presserende spørsmålene om skjermkortspesifikasjoner som ikke synes å være fullt forklart, slik alle kan forstå på nettet.

Hva er CUDA, og hva er en CUDA-kjerne?

Beregn Unified Device Architecture (CUDA) er en funksjon i de fleste nyere Nvidia grafikkort som gjør at datamaskinen kan bruke en del av GPU (eller til og med den komplette GPU) som en "assistent" til prosessoren. GPUer pakker mye mer muskler enn datamaskiner, men deres arkitektur har historisk vært mer optimert for å beregne tegningsavstander og polygoner (derfor slår de på grafikkort i første omgang). CUDA forvandler GPU til en matte geek som kan knase tall svært raskt, ved hjelp av den galne muskelkraften til en GPU for andre ting enn bare å gjengi og vise grafikk på skjermen.

I artikkelen knyttet til i begynnelsen forklarte jeg at SETI @ Home utnytter CUDA ved å bruke grafikkort til å utføre beregninger. Dette er bare ett eksempel på hvordan CUDA kan brukes til å gjøre fantastiske ting. CUDA kan også brukes til å kryptere video (konvertere det fra ett format til et annet) ved hjelp av en spesiell kodek som kommuniserer med maskinvaren. Nvidia's encoder er kjent som NVENC, og det er en kraftig måte å kode video mye raskere ved hjelp av grafikkortvideomotoren i motsetning til å utnytte CPUen din. Hvis du er utvikler, og du er interessert i å inkludere NVENC i programmet, kan du se Nvidias ressurser her.

OK, så nå vet vi hva CUDA er. Hva med CUDA kjerner?

En CUDA-kjerne er ett segment av GPU som kan brukes til CUDA. Det er en del av GPU at noen overvåkingsprogrammer kaller "Video Engine." Hver kjerne er et lite stykke av hele GPUs arkitektur som kan brukes til både tradisjonell 3D-rendering eller CUDA-spesifikke funksjoner. I de fleste grafikkort er hele GPU tilgjengelig for CUDA-arbeid. Dette betyr at antall CUDA-kjerner i GPUen faktisk definerer hvor mange kjerner hele GPUen har.

Hvorfor har GPUer så mange kjerner?

Mens dagens CPUer vanligvis har fire til åtte kjerner, er det grafikkort der ute med over 5000 kjerner! Hvorfor er det, og hvorfor kan ikke CPUer ha så sånn mengde kjerner?

GPU og CPU ble begge laget for forskjellige formål. Mens en CPU reagerer på maskinkode for å kommunisere med ulike maskinvare på datamaskinen din, er GPU laget for bare ett bestemt formål: Det skal gjengi polygoner i de vakre scenene vi ser i 3D-akselererte miljøer og deretter oversette alt dette til et bilde 60 ganger eller mer per sekund. Det er en høy rekkefølge for en CPU, men siden GPUen har deltapolygonprosessorer, kan den dele arbeidsbelastningen blant alle kjernene for å gi et grafisk miljø innen noen få millisekunder.

Det er her kjernene kommer inn. En GPU trenger alle disse kjernene til å dele massive oppgaver i små stykker, hver kjerne behandler sin egen del av scenen individuelt. Programmer som bruker CPUer (som nettleseren din), har ikke fordel av å ha et så stort antall kjerner, med mindre hver kjerne har muskelkraft i en hel prosesseringsenhet. Nettleseren din er avhengig av rask tilgang til informasjon i motsetning til oppdeling av oppgaver. Når du laster inn en nettside eller leser en PDF-fil, trenger du bare en behandlingsstrøm for å laste opp alt dette.

Gjør mer RAM et videokort bedre?

RAM er litt av et merkelig grått område med skjermkort. Mens det er fint å ha så mye RAM som mulig, må du også kunne bruke all den RAM-en . Et skjermkort med 1024 MB RAM og en 192-bit-bred buss skal utføre mye bedre enn et skjermkort med 2048 MB RAM og samme buss.

Som jeg har forklart i det forrige stykket, vil 2048 MB skjermkort oppleve noe som kalles "båndbreddeflaskehalsing" fordi bussen (veien som dataene kjøres på) ikke er bred nok til å bære en tilstrekkelig mengde data i en kort mengde tid.

Kort sagt, nei, mer RAM er ikke nødvendigvis bedre hvis skjermkortet ikke har en bred buss. Her er min guide til riktig bussbredde: Skjermkortet ditt skal ha maksimalt åtte ganger mengden RAM i megabyte som antall biter i bussen. For eksempel bør et 1024 MB-kort ha minst 128 bits buss (1024/8 = 128). Så, for et 2048 MB kort, anbefaler jeg minimum 256 bits.

Hvis du fortsatt har flere spørsmål, sørg for å spørre dem i kommentarene nedenfor!