Grafikkbehandlingsenhet

En grafikkbehandlingsenhet ( GPU ) eller grafikkprosessor er en koprosessor dedikert til grafikkbehandling eller flyttalloperasjoner, for å lette arbeidsbelastningen til sentralprosessoren /CPUen i applikasjoner som videospill eller 3D-applikasjoner. interaktiv. På denne måten, mens mye av det som er relatert til grafikk behandles i GPUen, kan den sentrale prosessorenheten (CPU) dedikeres til andre typer beregninger (som kunstig intelligens eller mekaniske beregninger når det gjelder videospill ).

GPUen implementerer visse grafikkoperasjoner kalt primitiver optimert for grafikkbehandling. En av de vanligste primitivene for 3D-grafikkbehandling er antialiasing , som jevner ut kantene på figurer for å gi dem et mer realistisk utseende. I tillegg er det primitiver for å tegne rektangler, trekanter, sirkler og buer. GPUer har for tiden et stort antall primitiver, som søker større realisme i effektene.

GPUer finnes i grafikkort .

Historikk

Moderne GPU-er er etterkommere av de monolittiske grafikkbrikkene på slutten av 1970- og 1980-tallet. Disse brikkene hadde begrenset BitBLT- støtte i form av sprites (hvis de hadde slik støtte i det hele tatt), og hadde vanligvis ingen støtte for å tegne grafikk. Noen GPUer kan utføre flere operasjoner på en skjermliste og kan bruke DMA for å redusere belastningen på vertsprosessoren; et tidlig eksempel er ANTIC-koprosessoren som brukes i Atari 800 og Atari 5200 . På slutten av 1980-tallet og begynnelsen av 1990-tallet ble høyhastighets mikroprosessorer for generell bruk populære for å implementere de mest avanserte GPUene. Mange grafikkort for PC-er og arbeidsstasjoner brukte digitale signalprosessorer (DSP) som Texas Instruments TMS340-serien for å implementere raske tegnefunksjoner, og mange laserskrivere inneholdt en "PostScript" bildeskanningsprosessor. " (et spesialtilfelle av GPU) som kjørte på en RISC -prosessor som AMD 29000.

Forskjeller fra CPU

Selv om det ikke er mulig å erstatte CPU med en GPU i en generisk datamaskin, er GPUer i dag veldig kraftige og kan til og med overskride klokkefrekvensen til en eldre CPU (over 1,5 gigahertz ). Men kraften til GPUer og deres raske utviklingshastighet skyldes to forskjellige faktorer. Den første faktoren er den høye spesialiseringen til GPU-er, siden det er designet for å utføre en enkelt oppgave, og det er mulig å dedikere mer silisium i designet for å utføre den oppgaven mer effektivt. For eksempel er dagens GPU-er optimalisert for flytende -punkt-databehandling , som er utbredt i 3D-grafikk .

På den annen side har mange grafikkapplikasjoner en høy grad av iboende parallellitet , ettersom deres grunnleggende beregningsenheter ( punkt og piksler ) er helt uavhengige. Derfor er det en god strategi å bruke brute force på GPU-ene for å fullføre flere beregninger på samme tid. Gjeldende GPU-modeller har vanligvis hundrevis av enhetlige shader -prosessorer som er i stand til å fungere som toppunktskyggelegging , pikselskyggelegging eller fragmentskyggelegging . På denne måten er en klokkefrekvens på omtrent 1-1,9 GHz (standarden i dag i de kraftigste GPU-ene), svært lav sammenlignet med den som tilbys av CPU-ene (3,8-5 GHz i de kraftigste modellene, ikke nødvendigvis mer effektiv) , oversettes til mye større datakraft takket være dens parallelle arkitektur.

En av de største forskjellene med CPU er arkitekturen. I motsetning til den sentrale prosessoren, som har en von Neumann-arkitektur , er GPU-en basert på den sirkulerende modellen. Denne modellen legger til rette for parallell prosessering, og den flotte segmenteringen som GPUen har for sine oppgaver.

GPU-arkitektur

En GPU er svært segmentert, noe som indikerer at den har et stort antall funksjonelle enheter. Disse funksjonelle enhetene kan hovedsakelig deles inn i to: de som behandler hjørner (renderer), og de som behandler piksler ( rasterizer ). Derfor er toppunktet og pikselen etablert som hovedenhetene som håndteres av GPU.

I tillegg, og ikke mindre viktig, er minnet . Dette skiller seg ut for sin hastighet, og det vil spille en relevant rolle når det gjelder lagring av mellomresultatene av operasjonene og teksturene som brukes.

Informasjon fra CPU -en kommer først til GPU -en i form av toppunkter. Den første behandlingen disse hjørnene får gjøres i vertex shader . Her utføres transformasjoner som rotasjon eller bevegelse av figurer. Etter dette defineres delen av disse toppunktene som skal sees ( klipping ), og toppunktene transformeres til piksler gjennom rasteriseringsprosessen. Disse stadiene har ikke en relevant belastning for GPU.

Der hovedflaskehalsen til grafikkbrikken er funnet er i neste trinn: pikselskyggeren . Her utføres transformasjonene knyttet til pikslene, for eksempel påføring av teksturer. Når alt dette er gjort, og før du lagrer pikslene i hurtigbufferen , brukes noen effekter som antialiasing , blending og tåkeeffekten.

Andre funksjonelle enheter kalt rasteroperasjonsrørledning (ROP ) tar den hurtigbufrede informasjonen og forbereder pikslene for visning. De kan også ta seg av å påføre noen effekter. Etter dette lagres utdataene i rammebufferen. Nå er det to alternativer: enten ta disse pikslene direkte for representasjon på en digital skjerm, eller generere et analogt signal fra dem, for analoge skjermer. Hvis det er det siste tilfellet, må de gå gjennom en DAC , digital-analog omformer , for å endelig bli vist på skjermen.

GPU-programmering

Tidlig ble GPU-planlegging gjort med anrop til BIOS - avbruddstjenester . Etter dette begynte programmeringen av GPUen å gjøres i det spesifikke monteringsspråket for hver modell. Deretter ble et ytterligere lag mellom maskinvare og programvare introdusert , med opprettelsen av grafikkspesifikke applikasjonsprogrammeringsgrensesnitt (API), som ga et mer homogent språk for eksisterende modeller på markedet. Den første mye brukte APIen var den åpne standarden OpenGL (Open Graphics Language), hvoretter Microsoft utviklet DirectX .

Etter utviklingen av disse API-ene ble det besluttet å lage et språk nærmere det naturlige språket som brukes av programmereren.

Et bemerkelsesverdig trekk ved NVIDIA-grafikkort, maskinprogrammeringsspråket må legges inn på grunnlag av unicode 16-tekst, gitt arkitekturen til mikrobrikkene som ble brukt siden GeForce GTX 700-serien.

GPU-beregninger for generelle formål

Det gjøres forsøk på å utnytte den store datakraften til GPU-er for ikke-grafiske applikasjoner, i det som nylig har blitt kalt GPGPU , eller generell GPU ( generell bruk GPU ).

GPUer og kvantekjemi

Kvantekjemi er en av disiplinene hvor det kreves stor datakraft. Selvfølgelig er det rapportert om forskjellige applikasjoner der GPUer har blitt brukt. Flere av disse applikasjonene er relatert til løsningen av Kohn-Sham-ligningene , innenfor teorien om tetthetsfunksjoner, og løsningen av Hartree-Fock-ligningene . [ 1 ] Applikasjoner relatert til bølgefunksjonsbaserte metoder som estimerer elektronisk korrelasjon, [ 2 ] eller ioniseringsenergier, er også rapportert . [ 3 ] ​[ 4 ] ​Kraften til GPUer har blitt demonstrert med applikasjoner relatert til modellen av atomer i molekyler . [ 5 ]

Se også

Referanser

  1. IS Ufimtsev og TJ Martinez. Grafiske prosesseringsenheter for kvantekjemi . Computing in Science and Engineering , 10 , 26-34 (2008) DOI: 10.1109/MCSE.2008.148
  2. Javier Carmona-Espíndola, Isaías Mayor-Segundo, Rubicelia Vargas og Jorge Garza. Mange-kroppsforstyrrelsesteori til andre orden brukt på innesluttet helium som atomer . I DATA- OG EKSPERIMENTELL KJEMI: Utviklinger og anvendelser . CRC Press, New Jersey, 2013.
  3. Erwin García-Hernández, Cecilia Díaz-García, Rubicelia Vargas og Jorge Garza. Implementering av elektronpropagatoren til andre orden på GPUer for å estimere ioniseringspotensialene til innesperrede atomer . J. Phys. B: Att. Mol. opt Fysisk . 47 185007 (7 sider) (2014). DOI:10.1088/0953-4075/47/18/185007 ,
  4. Erwin García-Hernández, Cecilia Díaz-García, Rubicelia Vargas og Jorge Garza. Fire-indeks integrert transformasjon i mange-kroppsforstyrrelsesteori og elektronpropagator til andre orden på GPUer for innesluttede atomer . AIP Conf. Proc. 1558 1528-1531 (2013). DOI: 10.1063/1.4825814
  5. Raymundo Hernández-Esparza, Sol-Milena Mejía-Chica, Andy D. Zapata-Escobar, Alfredo Guevara-García, Apolinar Martínez-Melchor, Julio-M. Hernandez-Perez, Rubicelia Vargas og Jorge Garza. Rutenettbasert algoritme for å søke etter kritiske punkter, i elektrontettheten, akselerert av grafikkbehandlingsenheter . Journal of Computational Chemistry . 35 2272-2278 (2014). DOI:10.1002/jcc.23752

Eksterne lenker