Nvidia’s Tensor Cores for Machine Learning and AI - Explained
Nvidias nå anerkjente RTX-serie med grafikkort har vært enormt vellykket helt siden lanseringen med RTX 20-serien. Innføringen av RTX-merkevaren var en endring i retning av selskapet, og som et resultat grafikkortmarkedet som helhet. Nvidia har fulgt sin første RTX-serie med suksess med lanseringen av RTX 30-serien i 2020, selv om selve lanseringen var litt av en letdown på grunn av verdensomspennende lager- og tilgjengelighetsproblemer. Likevel er RTX-merket fortsatt en dominerende kraft i grafikkortmarkedet i dag.
Med introduksjonen av RTX har Nvidia brakt støtte for sanntids Ray Tracing i spill, som forvandler måten lys oppfører seg i spillmiljøet. Vi har allerede sammenlignet de to gjengivelsesformene, Ray Tracing og Rasterized Rendering, i detalj og alt i alt, virker Ray Tracing som veien å gå så langt som spillets fremtid. Nvidia har også inkludert spesialiserte kjerner dedikert til Ray Tracing i deres RTX-kort, kjent som RT Cores, som håndterer mesteparten av gjengivelsesarbeidsbelastningen når det gjelder Ray Tracing i spill. Det folk kanskje ikke vet, er at Nvidia også har introdusert et annet sett med kjerner med Turing- og Ampere-kort, kjent som Tensor Cores.
Tensorkerner
Tensorkerner er fysiske kjerner som er dedikert til komplekse beregninger involvert i oppgaver som maskinlæring og AI. Tensorkerner muliggjør databehandling med blandet presisjon, og tilpasser beregninger dynamisk for å akselerere gjennomstrømningen mens nøyaktigheten bevares. Disse kjernene er spesielt designet for å hjelpe til med disse komplekse arbeidsbelastningene for å gjøre disse beregningene mer effektive, samt for å avlaste de viktigste CUDA-kjernene på kortet for den ekstra byrden.
I forbrukerkort som den spillfokuserte GeForce-serien av kort basert på Turing- eller Ampere-arkitekturen, har ikke Tensor Cores spesifikt en gjengivelsesjobb. Disse kjernene gjengir ikke rammer eller hjelper til med generelle ytelsestall som de vanlige CUDA-kjernene eller RT Cores kan gjøre. Tilstedeværelsen av Tensor Cores i disse kortene tjener et formål. Disse kjernene håndterer mesteparten av prosessorkraften bak den utmerkede Deep Learning Super Sampling eller DLSS-funksjonen til Nvidia. Vi vil utforske DLSS om et øyeblikk, men først må vi identifisere hvilke kort som faktisk har Tensor Cores i utgangspunktet.
I skrivende stund er det bare en håndfull kort som inneholder Tensor Cores. Nvidia integrerte først Tensor Cores i Nvidia TITAN V, som var et arbeidsstasjonskort basert på Volta-arkitekturen. Denne arkitekturen ble aldri nedskalert til grafikkort på forbrukernivå, og dermed ble Volta-arkitekturen aldri sett i en GeForce GPU. Etter det introduserte Nvidia Tensor-kjernene i en haug med Quadro GPUer, og enda viktigere for spillere, RTX-kortene basert på Turing- og Ampere-arkitekturen. Dette betyr at alle RTX-merkede grafikkort fra RTX 2060 helt til RTX 3090 har Tensor Cores og kan dra nytte av Nvidias DLSS-funksjon.
Hvordan fungerer Tensor Cores?
Selv om den faktiske prosessen bak arbeidet med en Tensor Core er ganske komplisert, kan den oppsummeres i tre punkter.
- Tensorkerner reduserer de brukte syklusene som trengs for å beregne multipliserings- og tilsetningsoperasjoner, 16 ganger - i mitt eksempel for en 32 × 32 matrise, fra 128 sykluser til 8 sykluser.
- Tensor Cores reduserer avhengigheten av gjentatt delt minnetilgang, og sparer dermed ekstra sykluser for minnetilgang.
- Tensorkerner er så raske at beregning ikke lenger er en flaskehals. Den eneste flaskehalsen er å få data til Tensor Cores.
Med enkle ord brukes Tensor Cores til å utføre ekstremt komplekse beregninger som vil ta andre ikke-spesialiserte kjerner som CUDA-kjerner en urimelig tid å utføre. På grunn av deres spesifikke karakter er Tensor Cores helt klart gode til å utføre denne typen arbeid. Da Volta først dukket opp, utførte Anandtech faktisk noen matteprøver ved hjelp av 3 Nvidia-kort. Det nye Volta-kortet, et topp Pascal-grafikkort og et eldre Maxwell TITAN-kort ble alle kastet i blandingen, og dette var resultatene.
I dette diagrammet refererer begrepet presisjon til antall biter som brukes for flytpunkttallene i matriser med dobbelt som 64, enkelt er 32, og så videre. Dette resultatet viser tydelig at Tensor Cores er langt foran standard CUDA-kjerner når det gjelder spesialiserte tensorberegninger som denne.
applikasjoner
Men hva er egentlig applikasjonene til disse Tensor Cores? Siden Tensor Cores kan øke hastigheten på komplekse prosesser som AI Training med så mye som 10 ganger, er det flere områder innen AI og Deep Learning som Tensor Cores kan være nyttige. Her er noen vanlige områder der Tensor Cores kan brukes.
Dyp læring
Et område der Tensor Cores og kortene som har dem kan være spesielt fordelaktige, er feltet Deep Learning. Dette er faktisk et underfelt av maskinlæring som er opptatt av algoritmer inspirert av hjernens struktur og funksjon som kalles kunstige nevrale nettverk. Deep Learning er et stort felt som dekker en rekke interessante fagområder. Kjernen i dyp læring er at vi nå har raske datamaskiner og nok data til å faktisk trene store nevrale nettverk.
Det er her Tensor Cores kommer inn. Selv om normale grafikkort kan være tilstrekkelig for småskalaoperasjoner eller på individnivå, krever denne prosessen mye spesifikk beregning hestekrefter når den implementeres i større skala. Hvis en organisasjon som Nvidia selv vil jobbe med Deep Learning som et felt, blir grafikkort med de spesifikke beregningskreftene til Tensor Cores en nødvendighet. Tensor Cores håndterer disse arbeidsbelastningene mye mer effektivt og raskt enn noen annen form for databehandlingskjerne som er tilgjengelig. Denne spesifisiteten gjør disse kjernene og kortene som inneholder dem til en verdifull ressurs for Deep Learning-industrien.
Kunstig intelligens
Vi har alle sett filmene. Kunstig intelligens skal være den neste store tingen innen databehandling og robotikk. Kunstig intelligens eller AI refererer til simulering av menneskelig intelligens i maskiner som er programmert til å tenke som mennesker og til å utføre lignende handlinger. Egenskaper som læring og problemløsning faller også inn under kategorien kunstig intelligens.
Det skal bemerkes at kunstig intelligens ikke bare er begrenset til intelligens i maskiner som vi har sett i filmene. Denne typen intelligens er faktisk veldig vanlig i flere applikasjoner i dag. Våre virtuelle assistenter i mobiltelefonene våre bruker også en form for kunstig intelligens. I spillverdenen viser alle datamaskengenererte og kontrollerte fiender og NPCer et visst nivå av kunstig intelligens. Alt som har menneskelignende tendenser eller atferdsmessige nyanser i et simulert miljø, bruker kunstig intelligens.
Feltet kunstig intelligens krever også mye beregningsspesifikk, og det er et annet område der grafikkort drevet av Tensor Cores definitivt kommer til nytte. Nvidia er en av verdens ledere når det gjelder AI og Deep Learning, og produktene deres som Tensor Cores og funksjoner som Nvidias berømte Deep Learning Super Sampling er et bevis på deres posisjon.
Deep Learning Super Sampling
DLSS er en av de beste applikasjonene til Tensor Cores som for tiden finnes i bransjen. DLSS eller Deep Learning Super Sampling er Nvidias teknikk for smart oppskalering, som kan ta et bilde gjengitt med lavere oppløsning og oppskalere det til en skjerm med høyere oppløsning, og dermed gi mer ytelse enn naturlig gjengivelse. Nvidia introduserte denne teknikken med den første generasjonen av RTX-serien med grafikkort. DLSS er ikke bare en teknikk for vanlig oppskalering eller supersampling, den bruker heller AI for å øke kvaliteten på bildet som ble gjengitt med en lavere oppløsning for å bevare bildekvaliteten på en smart måte. Dette kan i teorien gi det beste fra begge verdener, ettersom bildet som vises fremdeles vil være av høy kvalitet, mens ytelsen også forbedres i forhold til naturlig gjengivelse.
DLSS utnytter kraften til AI til smart beregning av hvordan bildet skal gjengis med lavere oppløsning, samtidig som maksimal kvalitet er intakt. Den bruker kraften til de nye RTX-kortene til å utføre komplekse beregninger, og bruker deretter dataene til å justere det endelige bildet slik at det ser så nær innfødt gjengivelse ut som mulig. Kjennetegnet ved DLSS er dens ekstremt imponerende bevaring av kvalitet. Ved å bruke tradisjonell oppskalering ved hjelp av spillmenyene, kan spillerne definitivt merke mangel på skarphet og skarphet i spillet etter at det har blitt gjengitt med en lavere oppløsning. Dette er et ikke-problem når du bruker DLSS. Selv om det gjengir bildet med en lavere oppløsning (ofte så mye som 66% av den opprinnelige oppløsningen), er det resulterende oppskalerte bildet langt bedre enn det du ville fått ut av tradisjonell oppskalering. Det er så imponerende at de fleste spillere ikke kan se forskjellen mellom et bilde som er gjengitt med høyere oppløsning, og et bilde oppskalert av DLSS.
Den mest bemerkelsesverdige fordelen med DLSS og uten tvil hele insentivet bak utviklingen er den betydelige løftingen i ytelse mens DLSS er slått på. Denne ytelsen kommer fra det enkle faktum at DLSS gjengir spillet med en lavere oppløsning, og deretter oppskalerer det ved hjelp av AI for å matche skjermens utgangsoppløsning. Ved å bruke de dype læringsfunksjonene i RTX-serien med grafikkort, kan DLSS sende ut bildet i en kvalitet som samsvarer med det opprinnelige gjengitte bildet.
Nvidia har forklart mekanikken bak DLSS 2.0-teknologien på sin offisielle nettside. Vi vet at Nvidia bruker et system kalt Neural Graphics Framework eller NGX, som bruker muligheten til en NGX-drevet superdatamaskin for å lære og bli bedre på AI-beregninger. DLSS 2.0 har to primære innganger i AI-nettverket:
- Lavoppløste, aliasbilder gjengitt av spillmotoren
- Bevegelsesvektorer med lav oppløsning fra de samme bildene - også generert av spillmotoren
Nvidia bruker deretter en prosess kjent som tidsmessig tilbakemelding for å "estimere" hvordan rammen vil se ut. Deretter tar en spesiell type AI autoencoder den nåværende rammen med lav oppløsning, og den forrige rammen med høy oppløsning for å bestemme på en piksel-for-piksel-basis hvordan man genererer en nåværende ramme av høyere kvalitet. Nvidia tar også samtidig grep for å forbedre superdatamaskinens forståelse av prosessen:
Fremtidige applikasjoner
Som vi kan se fra applikasjonene som dyp læring, kunstig intelligens og spesielt DLSS-funksjonen som Nvidia nå har introdusert, utfører Tensor Cores på disse grafikkortene mange interessante og viktige oppgaver. Det er vanskelig å forutsi hva fremtiden vil ha for disse feltene, men man kan definitivt lage en utdannet spådom basert på dagens data og bransjetrender.
Foreløpig er det globale presset innen felt som kunstig intelligens og maskinlæring på et helt toppnivå. Det er trygt å anta at Nvidia vil utvide sortimentet av grafikkort som inkluderer Tensor Cores i nær fremtid, og disse kortene vil være nyttige for disse applikasjonene. Videre er DLSS en annen flott applikasjon av de dype læringsteknologiene som bruker Tensor Cores, og det vil trolig også se store forbedringer i nær fremtid. Det er en av de mest interessante og mest produktive funksjonene som har rammet PC-spillindustrien de siste årene, så man må anta at den er kommet for å bli.
Med kraften fra Tensor Cores gjøres fremskritt innen maskinlæring og kunstig intelligens i raskt tempo. Denne prosessen vil mest sannsynlig fortsette og forsterkes med selskaper som Nvidia som tar ansvar og leder PC-spillbransjen når det gjelder å bruke kunnskapen om disse feltene i spillene vi spiller.