Grafikkbehandlingsenhet - Graphics processing unit

Komponenter i en GPU

En grafisk prosessorenhet ( GPU ) er en spesialisert elektronisk krets designet for å raskt manipulere og endre minne for å akselerere opprettelsen av bilder i en rammebuffer beregnet for utgang til en skjermenhet . GPUer brukes i innebygde systemer , mobiltelefoner , personlige datamaskiner , arbeidsstasjoner og spillkonsoller .

Moderne GPUer er svært effektive til å manipulere datagrafikk og bildebehandling . Deres svært parallelle struktur gjør dem mer effektive enn sentrale prosessorenheter (CPUer) for generelle formål for algoritmer som behandler store datablokker parallelt. I en PC kan en GPU være tilstede på et skjermkort eller innebygd på hovedkortet . I visse CPUer er de innebygd i CPU -matrisen .

På 1970 -tallet sto begrepet "GPU" opprinnelig for grafikkprosessorenhet og beskrev en programmerbar prosessorenhet som uavhengig jobber fra CPU og er ansvarlig for grafikkmanipulering og -utgang. Senere, i 1994, brukte Sony begrepet (nå står for grafikkbehandlingsenhet ) med henvisning til PlayStation -konsollens Toshiba -designede Sony GPU i 1994. Begrepet ble populært av Nvidia i 1999, som markedsførte GeForce 256 som "verdens første GPU ". Den ble presentert som en "single-chip prosessor med integrert transformasjon, belysning, oppsett/klipping av trekanter og gjengivelsesmotorer". Rival ATI Technologies myntet begrepet " visual processing unit " eller VPU med utgivelsen av Radeon 9700 i 2002.

Historie

1970 -tallet

Arcade systemkort har brukt spesialiserte grafikkretser siden 1970 -tallet. I tidlig maskinvare for videospill var RAM for rammebuffere dyrt, så videoklipp sammensatte data mens skjermen ble skannet ut på skjermen.

En spesialisert fatskifterkrets ble brukt for å hjelpe CPU -en med å animere framebuffer -grafikken for forskjellige arkadespill fra 1970 -tallet fra Midway og Taito , for eksempel Gun Fight (1975), Sea Wolf (1976) og Space Invaders (1978). Den Namco galaxian hall system i 1979 brukt spesialisert grafikkmaskinvare som støtter RGB-farge , flerfargede fantomer og tilemap bakgrunn. Den galaksiske maskinvaren ble mye brukt i gullalderen til arkadespill , av spillselskaper som Namco , Centuri , Gremlin , Irem , Konami , Midway , Nichibutsu , Sega og Taito .

Atari ANTIC mikroprosessor på et Atari 130XE hovedkort

På hjemmemarkedet brukte Atari 2600 i 1977 en videoforskyver kalt Television Interface Adapter . De Atari 8-bit datamaskiner (1979) hadde ANTIC , en videoprosessor som tolket instruksjoner som beskriver en "skjerm liste" -den måte skannelinjene kart til bestemte punktgrafikk eller modiene og hvor minnet er lagret (slik at det ikke trenger å være en sammenhengende rammebuffer). 6502 maskinkode -subrutiner kan utløses på skannelinjer ved å sette litt på en visningslisteinstruksjon. ANTIC støttet også jevn vertikal og horisontal rulling uavhengig av CPU.

1980 -tallet

NEC μPD7220 A.

Den NEC μPD7220 var den første implementeringen av en PC-grafikk skjerm prosessor som en enkelt Large Scale Integration (LSI) integrert krets chip, slik at utformingen av lave kostnader, høy ytelse video grafikkort som dem fra Number Nine Visual Technology . Det ble den mest kjente GPU fram til midten av 1980-tallet. Det var den første fullt integrerte VLSI (veldig storskala integrasjonen) metalloksid-halvleder ( NMOS ) grafikkskjermprosessor for PC-er, støttet opptil 1024x1024 oppløsning , og la grunnlaget for det nye PC-grafikkmarkedet. Det ble brukt i en rekke grafikkort, og var lisensiert for kloner som Intel 82720, den første av Intels grafikkbehandlingsenheter . Williams Electronics arkadespill Robotron 2084 , Joust , Sinistar og Bubbles , alle utgitt i 1982, inneholder egendefinerte blitterbrikker for bruk på 16-fargede bitmaps.

I 1984 ga Hitachi ut ARTC HD63484, den første store CMOS -grafikkprosessoren for PC. ARTC var i stand til å vise opptil 4K -oppløsning i monokrom modus, og den ble brukt på en rekke PC -grafikkort og terminaler på slutten av 1980 -tallet. I 1985 inneholdt Commodore Amiga en tilpasset grafikkbrikke, med en blitterenhet som akselererer bitmapmanipulering, linjetegning og områdefyllingsfunksjoner . En coprocessor med sitt eget enkle instruksjonssett er også inkludert, som er i stand til å manipulere grafikkmaskinvareregistre i synkronisering med videobjelken (f.eks. For palettbrytere per skanning, sprite-multipleksing og maskinvarevinduer), eller drive blitteren. I 1986 ga Texas Instruments ut TMS34010 , den første fullt programmerbare grafikkprosessoren. Den kan kjøre generell kode, men den hadde et grafikkorientert instruksjonssett. I løpet av 1990–1992 ble denne brikken grunnlaget for Texas Instruments Graphics Architecture ("TIGA") Windows -akseleratorkort .

Den IBM 8514 Micro Channel-adapter, med minne add-on.

I 1987 ble IBM 8514- grafikksystemet utgitt som et av de første skjermkortene for IBM PC-kompatible for å implementere 2D-primitiver med fast funksjon i elektronisk maskinvare . Sharp 's X68000 , utgitt i 1987, brukte en tilpasset grafikk brikkesett med 65536 fargepalett og maskinvarestøtte for sprites, bla, og flere spillefelter, til slutt tjener som utviklingsmaskin for Capcom er CP System arcade bord. Fujitsu konkurrerte senere med FM Towns -datamaskinen, utgitt i 1989 med støtte for hele 16 777 216 fargepaletter. I 1988 ble de første dedikerte polygonale 3D -grafikkortene introdusert i arkader med Namco System 21 og Taito Air System.

VGA -seksjon på hovedkortet i IBM PS/55

IBM 's proprietære Video Graphics Array (VGA) viser standard ble innført i 1987, med en maksimal oppløsning på 640 x 480 piksler. I november 1988 kunngjorde NEC Home Electronics opprettelsen av Video Electronics Standards Association (VESA) for å utvikle og promotere en Super VGA (SVGA) dataskjermstandard som en etterfølger av IBMs proprietære VGA -skjermstandard. Super VGA -aktiverte grafikkskjermoppløsninger på opptil 800 × 600 piksler , en økning på 36%.

1990 -tallet

Voodoo3 2000 AGP -kort

I 1991 introduserte S3 Graphics S3 86C911 , som designerne oppkalte etter Porsche 911 som en indikasjon på ytelsesøkningen den lovet. 86C911 skapte en rekke etterlignere: innen 1995 hadde alle de store PC -grafikkbrikkeprodusentene lagt til 2D -akselerasjonsstøtte til sjetongene. På dette tidspunktet hadde Windows-akseleratorer med fast funksjon overgått dyre generelle grafikkprosessorer i Windows-ytelse, og disse coprocessorene bleknet bort fra PC-markedet.

Gjennom 1990 -tallet fortsatte 2D GUI -akselerasjonen å utvikle seg. Etter hvert som produksjonskapasiteten ble forbedret, ble integrasjonsnivået for grafikkbrikker også bedre. Ytterligere applikasjonsprogrammeringsgrensesnitt (APIer) ankom for en rekke oppgaver, for eksempel Microsofts WinG -grafikkbibliotek for Windows 3.x , og deres senere DirectDraw -grensesnitt for maskinvareakselerasjon av 2D -spill i Windows 95 og nyere.

På begynnelsen og midten av 1990-tallet ble 3D-grafikk i sanntid stadig mer vanlig i arkade-, datamaskin- og konsollspill, noe som førte til en økende offentlig etterspørsel etter maskinvareakselerert 3D-grafikk . Tidlige eksempler på massemarkeds 3D-grafikkmaskinvare finnes i arkadesystemkort som Sega Model 1 , Namco System 22 og Sega Model 2 , og femte generasjons videospillkonsoller som Saturn , PlayStation og Nintendo 64 . Arkadesystemer som Sega Model 2 og Namco Magic Edge Hornet Simulator i 1993 var i stand til maskinvare T&L ( transformering, klipping og belysning ) år før de ble vist på forbrukerens grafikkort. Noen systemer brukte DSP -er for å akselerere transformasjoner. Fujitsu , som jobbet med arkadesystemet Sega Model 2, begynte å jobbe med å integrere T&L i en enkelt LSI -løsning for bruk i hjemmemaskiner i 1995; Fujitsu Pinolite, den første 3D-geometri prosessor for personlige datamaskiner, utgitt i 1997. Den første hardware T & L GPU på hjemme spillkonsoller ble Nintendo 64 's Reality prosessor , utgitt i 1996. I 1997 Mitsubishi lanserte 3Dpro / 2MP , en fullt utstyrt GPU som er i stand til transformasjon og belysning, for arbeidsstasjoner og Windows NT -stasjonære datamaskiner; ATi brukte det til sitt FireGL 4000 grafikkort , utgitt i 1997.

Begrepet "GPU" ble laget av Sony med referanse til 32-biters Sony GPU (designet av Toshiba ) i PlayStation -spillkonsollen, utgitt i 1994.

I PC-verdenen var S3 ViRGE , ATI Rage og Matrox Mystique bemerkelsesverdige mislykkede første forsøk på rimelige 3D-grafikkbrikker . Disse brikkene var i hovedsak forrige generasjons 2D-akseleratorer med 3D-funksjoner boltet på. Mange var til og med pin-kompatible med tidligere generasjons sjetonger for enkel implementering og minimale kostnader. I utgangspunktet var ytelses 3D -grafikk bare mulig med diskrete brett dedikert til å akselerere 3D -funksjoner (og mangler helt 2D GUI -akselerasjon) som PowerVR og 3dfx Voodoo . Etter hvert som produksjonsteknologien fortsatte å utvikle seg, ble imidlertid video, 2D GUI -akselerasjon og 3D -funksjonalitet integrert i en brikke. Rendition's Verite -brikkesett var blant de første som gjorde dette godt nok til å være verdt å merke seg. I 1997 gikk Rendition et skritt videre ved å samarbeide med Hercules og Fujitsu om et "Thriller Conspiracy" -prosjekt som kombinerte en Fujitsu FXG-1 Pinolite geometri-prosessor med en Vérité V2200-kjerne for å lage et grafikkort med full T & L-motor år før Nvidias GeForce 256 . Dette kortet, designet for å redusere belastningen på systemets CPU, kom aldri på markedet.

OpenGL dukket opp på begynnelsen av 90 -tallet som et profesjonelt grafikk -API, men led opprinnelig av ytelsesproblemer som gjorde at Glide API kunne gå inn og bli en dominerende kraft på PC -en på slutten av 90 -tallet. Imidlertid ble disse problemene raskt overvunnet og Glide API falt av veien. Programvareimplementeringer av OpenGL var vanlige i løpet av denne tiden, selv om påvirkningen fra OpenGL til slutt førte til utbredt maskinvarestøtte. Over tid dukket det opp en likhet mellom funksjoner som tilbys i maskinvare og de som tilbys i OpenGL. DirectX ble populært blant Windows -spillutviklere på slutten av 90 -tallet. I motsetning til OpenGL insisterte Microsoft på å gi streng en-til-en-støtte for maskinvare. Tilnærmingen gjorde DirectX mindre populær som et frittstående grafikk -API i utgangspunktet, siden mange GPUer ga sine egne spesifikke funksjoner, som eksisterende OpenGL -applikasjoner allerede kunne dra nytte av, og etterlot DirectX ofte en generasjon bak. (Se: Sammenligning av OpenGL og Direct3D .)

Over tid begynte Microsoft å jobbe tettere med maskinvareutviklere, og begynte å målrette utgivelsene av DirectX for å falle sammen med de som støtter grafikkmaskinvaren. Direct3D 5.0 var den første versjonen av det spirende API-et som fikk utbredt adopsjon i spillmarkedet, og det konkurrerte direkte med mange mer maskinvarespesifikke, ofte proprietære grafikkbiblioteker, mens OpenGL opprettholdt et sterkt tilhenger. Direct3D 7.0 introduserte støtte for maskinvareakselerert transformasjon og belysning (T&L) for Direct3D, mens OpenGL allerede hadde denne muligheten avslørt fra starten. 3D -akseleratorkort flyttet utover å være enkle rasterizers for å legge til en annen viktig maskinvarestadium i 3D -gjengivelsesrørledningen. Den Nvidia GeForce 256 (også kjent som NV10) var den første forbruker-nivå kortet sluppet på markedet med maskinvareakselerert T & L, mens profesjonelle 3D-kort allerede hadde denne evnen. Maskinvaretransform og belysning, begge allerede eksisterende funksjoner i OpenGL, kom til maskinvare på forbrukernivå på 90-tallet og skapte presedensen for senere pixel shader og vertex shader enheter som var langt mer fleksible og programmerbare.

2000 til 2010

Nvidia var den første som produserte en brikke som var i stand til å programmere skyggelegging ; den GeForce 3 (kodenavnet NV20). Hver piksel kan nå behandles av et kort "program" som kan inneholde ytterligere bildestrukturer som innganger, og hvert geometrisk toppunkt kan på samme måte bli behandlet av et kort program før det ble projisert på skjermen. Brukt i Xbox -konsollen konkurrerte den med PlayStation 2 , som brukte en tilpasset vektorenhet for maskinvareakselerert toppunktbehandling (ofte referert til som VU0/VU1). De tidligste inkarnasjonene av shader -utførelsesmotorer som ble brukt i Xbox, var ikke for generelle formål og kunne ikke utføre vilkårlig pikselkode. Hodepunkter og piksler ble behandlet av forskjellige enheter som hadde sine egne ressurser, med pikselskyggere som hadde mye strengere begrensninger (da de ble utført på mye høyere frekvenser enn med hjørner). Pixel -skyggemotorer var faktisk mer beslektet med en funksjonsblokk som kan tilpasses og "kjørte" egentlig ikke et program. Mange av disse forskjellene mellom toppunkt- og pikselskygge ble ikke løst før mye senere med Unified Shader -modellen .

I oktober 2002, med introduksjonen av ATI Radeon 9700 (også kjent som R300), kunne verdens første Direct3D 9.0 -akselerator, pixel- og vertex -shaders implementere looping og lang flytende matematikk, og ble raskt like fleksible som CPUer, men bestillinger av størrelsen raskere for bildearrayoperasjoner. Pixel -skyggelegging brukes ofte til bump -kartlegging , som legger til tekstur, for å få et objekt til å se skinnende, kjedelig, grovt eller til og med rundt eller ekstrudert ut.

Med introduksjonen av Nvidia GeForce 8 -serien , og deretter ble nye generiske strømbehandlingsenheter GPU -er en mer generalisert dataenhet. I dag har parallelle GPUer begynt å gjøre beregningsinnhugg mot CPU'en, og et undersøkelsesfelt, kalt GPU Computing eller GPGPU for General Purpose Computing på GPU , har funnet veien til så forskjellige områder som maskinlæring , oljeleting , vitenskapelig bildebehandling , lineær algebra , statistikk , 3D -rekonstruksjon og til og med fastsettelse av aksjeopsjoner . GPGPU på den tiden var forløperen til det som nå kalles en compute shader (f.eks. CUDA, OpenCL, DirectCompute) og misbrukte faktisk maskinvaren til en viss grad ved å behandle dataene som ble overført til algoritmer som teksturkart og utføre algoritmer ved å tegne en trekant eller firkant med en passende pikselskygge. Dette innebærer åpenbart noen omkostninger siden enheter som Scan Converter er involvert der de egentlig ikke er nødvendige (og det er heller ikke engang bekymring for trekantsmanipulasjoner - bortsett fra å påkalle pixel shader).

Nvidias CUDA -plattform, først introdusert i 2007, var den tidligste allment vedtatte programmeringsmodellen for GPU -databehandling. Nylig har OpenCL blitt bredt støttet. OpenCL er en åpen standard definert av Khronos Group som muliggjør utvikling av kode for både GPUer og CPUer med vekt på bærbarhet. OpenCL -løsninger støttes av Intel, AMD, Nvidia og ARM, og ifølge en nylig rapport fra Evan's Data er OpenCL GPGPU -utviklingsplattformen som er mest brukt av utviklere i både USA og Asia Pacific.

2010 til nå

I 2010 begynte Nvidia et partnerskap med Audi for å drive bilens dashbord ved å bruke Tegra GPU -er for å gi økt funksjonalitet til bilens navigasjons- og underholdningssystemer. Fremskritt innen GPU-teknologi i biler har bidratt til å presse selvkjørende teknologi . AMDs Radeon HD 6000 Series -kort ble utgitt i 2010, og i 2011 ga AMD ut sine diskrete GPUer i 6000M -serien som skal brukes i mobile enheter. Kepler -serien med grafikkort av Nvidia kom ut i 2012 og ble brukt i Nvidias 600- og 700 -seriekort. En funksjon i denne nye GPU-mikroarkitekturen inkluderer GPU boost, en teknologi som justerer klokkehastigheten til et skjermkort for å øke eller redusere det i henhold til strømuttaket. Den Kepler microarchitecturen ble fremstilt på 28 nm prosessen.

Den PS4 og Xbox One ble lansert i 2013, de begge bruker GPU basert på AMDs Radeon HD 7850 og 7790 . Nvidias Kepler -serie med GPU -er ble fulgt av Maxwell -linjen, produsert i samme prosess. 28 nm brikker av Nvidia ble produsert av TSMC, Taiwan Semiconductor Manufacturing Company, som produserte ved hjelp av 28 nm -prosessen den gangen. Sammenlignet med 40 nm -teknologien fra fortiden, tillot denne nye produksjonsprosessen 20 prosent økning i ytelsen samtidig som den trakk mindre strøm. Virtual reality -hodesett har svært høye systemkrav. Produsenter av VR -hodesett anbefalte GTX 970 og R9 290X eller bedre på tidspunktet for utgivelsen. Pascal er neste generasjon forbrukergrafikkort av Nvidia utgitt i 2016. GeForce 10 -kortserien er under denne generasjonen grafikkort. De er laget ved hjelp av en 16 nm produksjonsprosess som forbedrer tidligere mikroarkitekturer. Nvidia har gitt ut et ikke-forbrukerkort under den nye Volta- arkitekturen, Titan V. Endringer fra Titan XP, Pascals high-end-kort, inkluderer en økning i antall CUDA-kjerner, tillegg av tensorkjerner og HBM2 . Tensorkjerner er kjerner som er spesielt designet for dyp læring, mens minne med høy båndbredde er på-dø, stablet, lavere klokke-minne som tilbyr en ekstremt bred minnebuss som er nyttig for Titan Vs hensikt. For å understreke at Titan V ikke er et spillkort, fjernet Nvidia "GeForce GTX" -endelsen det legger til forbrukerspillkort.

20. august 2018 lanserte Nvidia GPU-ene i RTX 20-serien som legger kjerner til strålesporing til GPUer, noe som forbedrer ytelsen på lyseffekter. Polaris 11 og Polaris 10 GPUer fra AMD er produsert av en 14-nanometer prosess. Utgivelsen deres resulterer i en betydelig økning i ytelsen per watt AMD -skjermkort. AMD har også gitt ut Vega GPU -serien for high -end -markedet som en konkurrent til Nvidias high -end Pascal -kort, også med HBM2 som Titan V.

I 2019 ga AMD ut etterfølgeren til deres Graphics Core Next (GCN) mikroarkitektur/instruksjonssett. Kalt som RDNA, den første produktserien med den første generasjonen av RDNA var Radeon RX 5000 -serien med skjermkort, som senere ble lansert 7. juli 2019. Senere kunngjorde selskapet at etterfølgeren til RDNA -mikroarkitekturen ville være en oppdatering. Den nye mikroarkitekturen ble kalt "RDNA 2" og skulle etter planen lanseres i 4. kvartal 2020.

AMD avduket Radeon RX 6000-serien , dets neste generasjons RDNA 2-grafikkort med støtte for maskinvareakselerert strålesporing på et online-arrangement 28. oktober 2020. Oppstillingen består i utgangspunktet av RX 6800, RX 6800 XT og RX 6900 XT . RX 6800 og 6800 XT ble lansert 18. november 2020, med RX 6900 XT som ble utgitt 8. desember 2020. RX 6700 XT, som er basert på Navi 22, ble lansert 18. mars 2021.

Den PlayStation fem og Xbox serien X og Series S ble lansert i 2020, har de begge bruker GPU basert på rDNA to mikroarkitektur med proprietære tilpasninger og ulike GPU konfigurasjoner i gjennomføringen hvert system tallet.

GPU -selskaper

Mange selskaper har produsert GPUer under en rekke merkenavn. I 2009 var Intel , Nvidia og AMD / ATI ledende i markedsandeler, med henholdsvis 49,4%, 27,8% og 20,6% markedsandel. Disse tallene inkluderer imidlertid Intels integrerte grafikkløsninger som GPUer. Uten disse, kontrollerer Nvidia og AMD nesten 100% av markedet fra og med 2018. Deres respektive markedsandeler er 66% og 33%. I tillegg produserer Matrox GPUer. Moderne smarttelefoner bruker også hovedsakelig Adreno GPUer fra Qualcomm , PowerVR GPU fra Imagination Technologies og Mali GPU fra ARM .

Beregningsfunksjoner

Moderne GPUer bruker de fleste av sine transistorer til å gjøre beregninger relatert til 3D -datagrafikk . I tillegg til 3D -maskinvaren inkluderer dagens GPU -er grunnleggende 2D -akselerasjon og framebuffer -funksjoner (vanligvis med VGA -kompatibilitetsmodus). Nyere kort som AMD/ATI HD5000-HD7000 mangler til og med 2D-akselerasjon; den må emuleres av 3D -maskinvare. GPUer ble opprinnelig brukt til å akselerere det minnekrevende arbeidet med teksturering og gjengivelse av polygoner, og senere legge til enheter for å akselerere geometriske beregninger som rotasjon og oversettelse av hjørner til forskjellige koordinatsystemer . Nyere utvikling i GPUer inkluderer støtte for programmerbare shaders som kan manipulere hjørner og teksturer med mange av de samme operasjonene som støttes av CPUer , oversampling og interpolasjonsteknikker for å redusere aliasing og farger med svært høy presisjon . Gitt at de fleste av disse beregningene involverer matrise- og vektoroperasjoner , har ingeniører og forskere i økende grad studert bruken av GPUer for ikke-grafiske beregninger; de egner seg spesielt godt til andre pinlig parallelle problemer.

Flere faktorer i GPU-konstruksjonen spiller inn i ytelsen til kortet for gjengivelse i sanntid. Felles faktorer kan omfatte størrelsen av forbindelsesveier i enheten fabrikasjon halvleder , den klokkesignalfrekvensen, og antallet og størrelsen av forskjellige on-chip minnebuffere . I tillegg er antallet Streaming Multiprocessors (SM) for NVidia GPUer, eller Compute Units (CU) for AMD GPUer, som beskriver antall kjerne-silisiumprosessorenheter i GPU-brikken som utfører kjerneberegningene, som vanligvis fungerer parallelt med andre SM/CU -er på GPU -en. Ytelsen til GPU -er måles vanligvis i flytende punktoperasjoner per sekund eller FLOPS , med GPUer i 2010- og 2020 -årene som vanligvis leverer ytelse målt i teraflops (TFLOPS). Dette er et estimert ytelsesmål, da andre faktorer kan påvirke den faktiske visningsfrekvensen.

Med fremveksten av dyp læring har viktigheten av GPUer økt. I forskning utført av Indigo, ble det funnet at GPUer kan være 250 ganger raskere enn CPUer mens de trener nevrale nettverk i dyp læring. Det har vært en viss grad av konkurranse på dette området med ASIC , mest fremtredende Tensor Processing Unit (TPU) laget av Google. ASIC krever imidlertid endringer i eksisterende kode, og GPUer er fortsatt veldig populære.

GPU -akselerert videodekoding og -koding

ATI HD5470 GPU (over) har UVD 2.1 som gjør det mulig å dekode AVC- og VC-1-videoformater

De fleste GPU gjort siden 1995 støtte YUV fargerommet og maskinvare overlegg , viktige for digital video avspilling, og mange GPUer gjort siden 2000 også støtte MPEG primitiver som bevegelseskompensasjon og IDCT . Denne prosessen med maskinvareakselerert videodekoding, hvor deler av videodekodingsprosessen og video-etterbehandling blir lastet ned til GPU-maskinvaren, blir ofte referert til som "GPU-akselerert videodekoding", "GPU-assistert videoavkoding", "GPU-maskinvare akselerert videodekoding "eller" GPU -maskinvareassistert videodekoding ".

Nyere grafikkort dekoder til og med HD-video på kortet og laster den sentrale prosessorenheten av. De vanligste API- ene for GPU-akselerert videodekoding er DxVA for Microsoft Windows- operativsystem og VDPAU , VAAPI , XvMC og XvBA for Linux-baserte og UNIX-lignende operativsystemer. Alle unntatt XvMC er i stand til å dekode videoer som er kodet med MPEG-1 , MPEG-2 , MPEG-4 ASP (MPEG-4 Part 2) , MPEG-4 AVC (H.264 / DivX 6), VC-1 , WMV3 / WMV9 , Xvid / OpenDivX (DivX 4) og DivX 5- kodeker , mens XvMC bare er i stand til å dekode MPEG-1 og MPEG-2.

Det finnes flere dedikerte maskinvaredekodings- og kodingsløsninger .

Videodekodingsprosesser som kan akselereres

Videodekodingsprosessene som kan akselereres av dagens moderne GPU -maskinvare er:

Operasjonene ovenfor har også applikasjoner innen videoredigering, koding og transkoding

GPU -skjemaer

Terminologi

I personlige datamaskiner er det to hovedformer for GPUer. Hver har mange synonymer:

Bruksspesifikk GPU

De fleste GPU-er er designet for en bestemt bruk, 3D-grafikk i sanntid eller andre masseberegninger:

  1. Spill
  2. Cloud Gaming
  3. Arbeidsstasjon
  4. Cloud Workstation
  5. Opplæring i kunstig intelligens og Cloud
  6. Automatisert/førerløs bil

Dedikerte grafikkort

GPU -ene i den kraftigste klassen grensesnittes vanligvis med hovedkortet ved hjelp av et utvidelsesspor som PCI Express (PCIe) eller Accelerated Graphics Port (AGP) og kan vanligvis byttes eller oppgraderes relativt enkelt, forutsatt at hovedkortet er i stand til å støtte oppgraderingen. Noen få grafikkort bruker fremdeles Peripheral Component Interconnect (PCI) -spor, men båndbredden er så begrenset at de vanligvis bare brukes når en PCIe- eller AGP -spor ikke er tilgjengelig.

En dedikert GPU er ikke nødvendigvis flyttbar, og den trenger ikke nødvendigvis å grensesnittes med hovedkortet på en standard måte. Begrepet "dedikert" refererer til det faktum at dedikerte grafikkort har RAM som er dedikert til kortets bruk, ikke til det faktum at de fleste dedikerte GPU -er er flyttbare. Videre er denne RAM -en vanligvis spesielt valgt for den forventede serielle arbeidsmengden til grafikkortet (se GDDR ). Noen ganger ble systemer med dedikerte, diskrete GPUer kalt "DIS" -systemer, i motsetning til "UMA" -systemer (se neste avsnitt). Dedikerte GPUer for bærbare datamaskiner er oftest grensesnitt gjennom et ikke-standardisert og ofte proprietært slot på grunn av størrelses- og vektbegrensninger. Slike porter kan fortsatt betraktes som PCIe eller AGP når det gjelder det logiske vertsgrensesnittet, selv om de ikke er fysisk utskiftbare med sine kolleger.

Teknologier som SLI og NVLink av Nvidia og CrossFire av AMD lar flere GPUer tegne bilder samtidig for en enkelt skjerm, noe som øker prosessorkraften som er tilgjengelig for grafikk. Disse teknologiene er imidlertid stadig mer uvanlige, ettersom de fleste spill ikke fullt ut bruker flere GPUer, ettersom de fleste brukere ikke har råd til dem. Flere GPUer brukes fortsatt på superdatamaskiner (som i Summit ), på arbeidsstasjoner for å akselerere video (behandler flere videoer samtidig) og 3D -gjengivelse, for VFX og for simuleringer, og i AI for å fremskynde trening, slik det er tilfellet med Nvidias utvalg av DGX -arbeidsstasjoner og -servere og Tesla -GPUer og Intels kommende Ponte Vecchio -GPUer.

Integrert grafikkbehandlingsenhet

Posisjonen til en integrert GPU i et system med nordbro/sørbro
Et ASRock -hovedkort med integrert grafikk, som har HDMI, VGA og DVI -utganger.

Integrert grafikkbehandlingsenhet (IGPU), Integrert grafikk , delte grafikkløsninger , integrerte grafikkprosessorer (IGP) eller enhetlig minnearkitektur (UMA) bruker en del av datamaskinens system -RAM i stedet for dedikert grafikkminne. IGP -er kan integreres på hovedkortet som en del av (northbridge) brikkesettet, eller på samme dør (integrert krets) med CPU (som AMD APU eller Intel HD Graphics ). På visse hovedkort kan AMDs IGP -er bruke dedikert sideportminne. Dette er en separat fast blokk med høytytende minne som er dedikert til bruk av GPU. Tidlig i 2007 står datamaskiner med integrert grafikk for omtrent 90% av alle PC -forsendelser. De er billigere å implementere enn dedikert grafikkbehandling, men har en tendens til å være mindre dyktige. Historisk sett ble integrert behandling ansett som uegnet til å spille 3D -spill eller kjøre grafisk intensive programmer, men kunne kjøre mindre intensive programmer som Adobe Flash. Eksempler på slike IGPer kan være tilbud fra SiS og VIA rundt 2004. Imidlertid er moderne integrerte grafikkprosessorer som AMD Accelerated Processing Unit og Intel HD Graphics mer enn i stand til å håndtere 2D -grafikk eller 3D -grafikk med lav belastning.

Siden GPU-beregningene er ekstremt hukommelseskrevende, kan integrert prosessering konkurrere med CPU-en om det relativt sakte system-RAM, ettersom den har minimalt eller ingen dedikert videominne. IGP -er kan ha opptil 29,856 GB/s med minnebåndbredde fra system -RAM, mens et grafikkort kan ha opptil 264 GB/s båndbredde mellom RAM og GPU -kjerne. Denne minnebussbåndbredden kan begrense ytelsen til GPU, selv om flerkanalsminne kan redusere denne mangelen. Eldre integrerte grafikkbrikkesett manglet maskinvareomforming og belysning , men nyere inkluderer det.

Hybrid grafikkbehandling

Denne nyere klassen med GPUer konkurrerer med integrert grafikk på low-end desktop- og bærbare markeder. De vanligste implementeringene av dette er ATIs HyperMemory og Nvidias TurboCache .

Hybrid grafikkort er noe dyrere enn integrert grafikk, men mye billigere enn dedikerte grafikkort. Disse deler minne med systemet og har en liten dedikert minnebuffer, for å kompensere for den høye latensen til system -RAM. Teknologier innen PCI Express kan gjøre dette mulig. Selv om disse løsningene noen ganger blir annonsert for å ha så mye som 768 MB RAM, refererer dette til hvor mye som kan deles med systemminnet.

Stream -behandling og GPUer for generelle formål (GPGPU)

Det blir stadig mer vanlig å bruke en grafisk behandlingsenhet for generelle formål (GPGPU) som en modifisert form for strømprosessor (eller en vektorprosessor ), som kjører datakjerner . Dette konseptet gjør den massive beregningskraften til en moderne grafikkakselerators skyggepipeline til generell datakraft, i motsetning til å være hardwired utelukkende for å utføre grafiske operasjoner. I visse applikasjoner som krever massive vektoroperasjoner, kan dette gi flere størrelsesordener høyere ytelse enn en konvensjonell CPU. De to største diskrete (se " Dedikerte grafikkort " ovenfor) GPU -designere, AMD og Nvidia , begynner å forfølge denne tilnærmingen med en rekke applikasjoner. Både Nvidia og AMD har samarbeidet med Stanford University for å lage en GPU-basert klient for Folding@home distribuert databehandlingsprosjekt, for beregninger av proteinfolding. Under visse omstendigheter beregner GPU'en førti ganger raskere enn CPUene som tradisjonelt brukes av slike applikasjoner.

GPGPU kan brukes til mange typer pinlig parallelle oppgaver, inkludert strålesporing . De er generelt egnet for beregninger av høy gjennomstrømningstype som viser data-parallellitet for å utnytte den brede vektorbredden SIMD- arkitekturen til GPU.

Videre begynner GPU-baserte datamaskiner med høy ytelse å spille en betydelig rolle i storskala modellering. Tre av de 10 kraftigste superdatamaskinene i verden drar fordel av GPU -akselerasjon.

GPUer støtter API -utvidelser til programmeringsspråket C, for eksempel OpenCL og OpenMP . Videre introduserte hver GPU -leverandør sitt eget API som bare fungerer med kortene deres, AMD APP SDK og CUDA fra henholdsvis AMD og Nvidia. Disse teknologiene lar spesifikke funksjoner som kalles beregningskjerner fra et vanlig C -program, kjøre på GPUs strømprosessorer. Dette gjør det mulig for C -programmer å dra fordel av en GPUs evne til å operere på store buffere parallelt, mens de fortsatt bruker CPU -en når det er aktuelt. CUDA er også det første API som tillater CPU-baserte applikasjoner å få direkte tilgang til ressursene til en GPU for mer generell databehandling uten begrensninger ved bruk av et grafisk API.

Siden 2005 har det vært interesse for å bruke ytelsen som tilbys av GPUer for evolusjonær beregning generelt, og for å akselerere kondisjonsevalueringen innen genetisk programmering spesielt. De fleste tilnærminger kompilerer lineære eller treprogrammer på verts -PCen og overfører den kjørbare filen til GPU -en som skal kjøres. Vanligvis oppnås ytelsesfordelen bare ved å kjøre det aktive programmet samtidig på mange eksempler på problemer parallelt, ved bruk av GPUs SIMD -arkitektur. Imidlertid kan en betydelig akselerasjon også oppnås ved ikke å kompilere programmene, og i stedet overføre dem til GPU -en, for å bli tolket der. Akselerasjon kan deretter oppnås ved enten å tolke flere programmer samtidig, samtidig kjøre flere eksempler på problemer eller kombinasjoner av begge. En moderne GPU kan lett tolke hundretusenvis av svært små programmer samtidig.

Noen moderne arbeidsstasjons-GPUer, for eksempel Nvidia Quadro-arbeidsstasjonskort som bruker Volta- og Turing-arkitekturen, har dedikerte prosessorkjerner for tensorbaserte deep learning-applikasjoner. I Nvidias nåværende serie GPUer kalles disse kjernene Tensor Cores. Disse GPU -ene har vanligvis betydelige FLOPS -ytelsesøkninger ved å bruke 4x4 matrisemultiplikasjon og divisjon, noe som resulterer i maskinvareytelse på opptil 128 TFLOPS i noen applikasjoner. Disse tensor -kjernene skal også vises i forbrukerkort som kjører Turing -arkitekturen, og muligens i Navi -serien med forbrukerkort fra AMD.

Ekstern GPU (eGPU)

En ekstern GPU er en grafikkprosessor som er plassert utenfor datamaskinens hus, i likhet med en stor ekstern harddisk. Eksterne grafikkprosessorer brukes noen ganger med bærbare datamaskiner. Bærbare datamaskiner kan ha en betydelig mengde RAM og en tilstrekkelig kraftig sentral prosessorenhet (CPU), men mangler ofte en kraftig grafikkprosessor, og har i stedet en mindre kraftig, men mer energieffektiv innebygd grafikkbrikke. Innebygde grafikkbrikker er ofte ikke kraftige nok til å spille videospill eller til andre grafisk intensive oppgaver, for eksempel redigering av video eller 3D-animasjon/gjengivelse.

Derfor er det ønskelig å kunne koble en GPU til en ekstern buss på en bærbar PC. PCI Express er den eneste bussen som brukes til dette formålet. Porten kan for eksempel være en ExpressCard- eller mPCIe -port (PCIe × 1, henholdsvis opptil 5 eller 2,5 Gbit/s) eller en Thunderbolt 1, 2 eller 3 port (PCIe × 4, opptil 10, 20 eller 40 Gbit/s). Disse portene er bare tilgjengelige på visse bærbare systemer. eGPU -kabinetter inkluderer sin egen strømforsyning (PSU), fordi kraftige GPUer enkelt kan forbruke hundrevis av watt.

Offisiell leverandørstøtte for eksterne GPU -er har fått grep nylig. En bemerkelsesverdig milepæl var Apples beslutning om å offisielt støtte eksterne GPUer med MacOS High Sierra 10.13.4. Det er også flere store maskinvareleverandører (HP, Alienware, Razer) som slipper Thunderbolt 3 eGPU -kabinetter. Denne støtten har fortsatt drivstoff til eGPU -implementeringer av entusiaster.

Salg

I 2013 ble 438,3 millioner GPUer sendt globalt og prognosen for 2014 var 414,2 millioner.

Se også

Maskinvare

APIer

applikasjoner

Referanser

Eksterne linker