CPU vs GPU
CPU, forkortelsen for Central Processing Unit, er hjernen til et datasystem som utfører "beregningene" gitt som instruksjoner gjennom et dataprogram. Derfor er det meningsfullt å ha en CPU bare når du har et datasystem som er "programmerbart" (slik at det kan utføre instruksjoner), og vi bør merke oss at CPU er den "sentrale" prosessorenheten, enheten som styrer de andre enhetene/ deler av et datasystem. I dagens sammenheng er en CPU vanligvis plassert i en enkelt silisiumbrikke også kjent som en mikroprosessor. På den annen side er GPU, forkortelsen for Graphics Processing Unit, designet for å avlaste beregningsintensive grafikkbehandlingsoppgaver fra CPU. Det endelige målet med slike oppgaver er å projisere grafikken til en skjermenhet som en skjerm. Gitt at slike oppgaver er velkjente og spesifikke, trenger de i hovedsak ikke å programmeres, og i tillegg er slike oppgaver iboende parallelle på grunn av visningsenhetenes natur. Igjen, i den nåværende konteksten, mens de mindre kapable GPU-ene vanligvis er plassert i samme silisiumbrikke som du finner CPU-en (dette oppsettet er kjent som integrert GPU) andre, de mer kapable, kraftige GPU-ene finnes i deres egen silisiumbrikke, vanligvis på et separat PCB (Printed Circuit Board).
Hva er CPU?
Begrepet CPU er brukt i datasystemer i mer enn fem tiår nå, og det var den eneste prosessorenheten i de tidlige datamaskinene inntil "andre" prosessorenheter (som GPUer) ble introdusert for å komplementere prosessorkraften. De to hovedkomponentene til en CPU er dens aritmetiske logiske enhet (aka ALU) og kontrollenhet (aka CU). ALU-en til en CPU er ansvarlig for de aritmetiske og logiske operasjonene til datasystemet, og CU-en er ansvarlig for å hente instruksjonsprogrammet fra minnet, dekode dem og instruere andre enheter som ALU om å utføre instruksjonene. Derfor er kontrollenheten til CPUen ansvarlig for å bringe ære for CPU til å være den "sentrale" prosessorenheten. CU for å hente instruksjonene fra minnet, instruksjonene må lagres som programmer i minnet, og derfor er et slikt instruksjonssystem også kjent som "lagrede programmer". Det ville være klart at CU ikke vil utføre instruksjonene, men vil legge til rette for det samme ved å kommunisere med de riktige enhetene som ALU.
Hva er GPU (aka VPU)?
Begrepet Graphics Processing Unit (GPU) ble introdusert på slutten av nittitallet av NVIDIA, et GPU-produksjonsselskap, som hevdet å ha markedsført verdens første GPU (GeForce256) i 1999. Ifølge Wikipedia, på tidspunktet for GeForce256, definerte NVIDIA GPU som følgende: "en enkeltbrikke prosessor med integrert transformasjon, belysning, trekantoppsett/klipping og gjengivelsesmotorer som er i stand til å behandle minimum 10 millioner polygoner per sekund". Et par år senere ga NVIDIAs rival ATI Graphics, et annet lignende selskap, ut en lignende prosessor (Radeon300) med betegnelsen VPU for Visual Processing Unit. Men siden det er tydelig at begrepet GPU har blitt mer populært enn begrepet VPU.
I dag er GPUer utplassert over alt, for eksempel i innebygde systemer, mobiltelefoner, personlige datamaskiner og bærbare datamaskiner og spillkonsoller. Moderne GPUer er ekstremt kraftige til å manipulere grafikk, og de er laget programmerbare slik at de kan tilpasses ulike situasjoner og applikasjoner. Men selv nå er typiske GPU-er programmert på fabrikken gjennom det som kalles fastvare. Generelt er GPUer mer effektive enn CPUer for algoritmer der behandling av store datablokker gjøres parallelt. Det forventes, siden GPUer er designet for å manipulere datagrafikk, som er ekstremt parallelle.
Det er også dette nye konseptet kjent som GPGPU (General Purpose computing on GPU), for å bruke GPUer til å utnytte dataparallellen som er tilgjengelig i enkelte applikasjoner (som bioinformatikk) og derfor utføre ikke-grafikkbehandling i GPU. De er imidlertid ikke vurdert i denne sammenligningen.
Hva er forskjellen mellom CPU og GPU?• Mens resonnementet bak utplasseringen av en CPU er å fungere som hjernen i et datasystem, introduseres en GPU som en komplementær prosesseringsenhet som håndterer den beregningsintensive grafikkbehandlingen og behandlingen som kreves av oppgaven med projiserer grafikk til skjermenhetene. • I natur er grafikkbehandling iboende parallell og kan derfor lett parallelliseres og akselereres. • I en tid med flerkjernesystemer er CPUer utformet med bare noen få kjerner som kan håndtere noen få programvaretråder, som kan utnyttes i et applikasjonsprogram (instruksjon og trådnivåparallellisme). GPUer er utformet med hundrevis av kjerner for å utnytte den tilgjengelige parallelliteten. |