Gå til innhold

Vil kjøre DirectX på CPU-en


Anbefalte innlegg

Larrabee er interessant det. Men overbevist er jeg ikke.

1. Om intel finner opp en super-duper prosessor, så vil de ikke slippe ut den. De er smarte, og slipper ut en prosessor som er 5% bedre enn den gamle, og så slipper ut nye etter det som igjen er 5% bedre. Ergo, jeg tror ikke ytelsen vil gå i taket.

 

2. Nvidia og Ati deler 3D markedet seg i mellom ca 50/50, med en liten klatt til intel. Om intel skyter gullfugelen, så snakker vi år før Larrabee er utbredt. Om SwRendering var tilpasset Larrabee, så snakker vi marginalt marked for ekstremt få personer - noe skurrer.

 

3. Vedlikehold av SwRendering biblioteket. For DX så snakker vi MS, og det vil overraske meg om de plutselig skulle kjøre full fres på å holde SwRenderingen oppdatert, ved siden av alt det andre. Greit MS har masse programmerere, men de er ikke gud enda...

 

Larrabee er en interessang sak. Uten å ha sett for mye på det, så snakker man om prosessor med veldig mange kjerner, x86 instruksjonssett, og masse kjæsj rettet mot grafikk. Så er tanken at rendering skjer med software på den prosessoren. Både ATI og Nvidia jobber også med å lage et system som gjør at vanlige applikasjoner kan utnytte prosesseringskraften i skjermkortene. Hva nå ola-dunk trenger det for. Det er jo en nisjegreie for å gi forskere som trenger mye regnekraft, en supermaskin i sin vanlige maskin. Larrabee ser jo ut til å bli en kul konkurrent i det markedet.

 

Men vil DX sin SwRendering være optimalisert for Larrabee? Vil DX bli oppdatert hele tiden med tanke på nye features? Vi snakker om mamutarbeid her... jeg tror nei.

Driveren til Intel vil nok gjøre grafikkoperasjoner med software i Larrabee, og DX vil bruke driveren, fremfor å gå direkte til HW tipper jeg. Vi får se, Larrabee er jo ikke ute enda, så det skal jo bli spennende.

 

og 3D på monsterserver... jajo ... om windowsverktøyene plutselig skulle begynne med 3D.. eh .. hjelp meg her. Ser liksom ikke for backup, dns config, mail oppsett, webserver eller sql dilldall - eller AD - plutselig skulle bruke 3D til noe...

Lenke til kommentar
Videoannonse
Annonse
Til opplysning er det software rendering som gjøres på dagens GPU. De er i realiteten en stor mengde svært tynne CPUer som kjører flertråding.

Den må du utdype litt...

 

Ja du kan skrive shadere, og de rusler og går i gpu - men jeg vet ikke om jeg vil kalle det SwRendering. Uten at jeg har god kunnskap om shadere, så vil jeg ikke tro at man kan skrive fullblods render engine med kun shadere.

 

Jeg ser mer på shadere som...

Man går igjennom 3D modeller i space, sjekker om modellen har shadere, og så kjører hver shader. Vertex manipulerer koordinatene til modellen, pixel tukler med teksturen, og den nye geometri saken animere, kopierer, flytter, kødder med hele modeller.

 

Rasterization, clipping m.m. er fortsatt ting skjermkortet fikser, og ikke gjøres primært av shadere. Men for all del, jeg jobber ikke med dette så jeg er ingen ekspert.

Lenke til kommentar
Til opplysning er det software rendering som gjøres på dagens GPU. De er i realiteten en stor mengde svært tynne CPUer som kjører flertråding.

Den må du utdype litt...

Ta f.eks nvidia sin massivt parallelle multiprosessor aka GPU. Den har flere hundre massivt flertrådede prosessorkjerner. For å øke effektiviteten har de organisert flere kjerner, det er vel snakk om 16 stykker i nåværende design(?), i hva de kaller en multiprosessor. Hver multiprosessor har bare en kontrollenhet som styrer alle kjernene. Dette medfører en vesentlig begrensning siden hver kjerne nå må kjøre nøyaktig samme instruksjon på hvert klokkeslag. En må altså kjøre kopier av "samme" tråd innad i en multiprosessor, men kjører de med forskjellig data. Eventuelt kan alle unntatt en kjerne parkeres hvis det ikke er mulig å kjøre mange like tråder på samme sted i tråden. Predikering brukes for å komme unna enkelte tilfeller av avvik. dvs. at instruksjoner kan kjøres men resultatene kan forkastes for de trådene det gjelder.

 

Videre har hver kjerne egne registre og minneområder samt at hver multiprosessor har egne minneområder og hovedminnet til GPU er også delt opp. Dette minnehierarkiet er svært spesialisert og optimalisert for grafikk. Det er også dette minnehierarkiet som gjør programmering i overkant avansert for disse arkitekturene.

 

Om du gir hver kjerne i nvidia arkitekturen sin egen kontrollenhet slik at du fritt kan kjøre uavhengige tråder til enhver tid og slår sammen minneområde for hver kjerne og multiprosessor samt kollapser hovedminnet til ett område så har du i realiteten samme konseptet som Cell. Litt enklere, litt mer generelt anvendelig og litt mindre optimalisert.

 

Om du videre konverterer alle de lokale kjerne/multiprosessor minneområdene til en cache så har du i realiteten samme konsept som Larrabee.

 

Om du videre reduserer til kun to kjerner, men blåser disse kraftig opp i størrelse så har du i realiteten samme konsept som en C2D.

Endret av Anders Jensen
Lenke til kommentar
Larrabee er vel da ihvertfall en "x86 GPU" noe som sikkert er fin adresse for dette MS greiene her , sier meg enig med Krigun.

Larrabee er en helt vanlig multicore x86 CPU. De har kastet inn en veldig bred SIMD (eventuelt smal vektor, kjert barn mange navn osv.) motor i hver kjerne som gjør at en kan få god tallknusing uten at det koster så mye. Vanlige CPU kjerner har som regel sin tallknusing i form av smale SIMD enheter eller vanlige skalare enheter (vanlige execution units som tar én instruksjon med ett sett data).

 

Med Larrabee, Core 2 og Atom viser Intel at en lett kan bygge svært forskjellige kjerner med samme type instruksjonssett. Det er forsåvidt ikke noe nytt, men verdt å merke seg. At en lett kan bygge kjerner med svært forskjellige egenskaper er imidlertid ikke det samme som at en faktisk gjør det effektivt. Sikkert mange med meg som har blandede følelser for at x86/x64 skal ta fullstendig overhånd. Tenk om postit lapper var den eneste typen papir en kunne kjøpe :(

Lenke til kommentar

Anders Jensen: Jeg tror mange av deltagerne i tråden og her på forumet ikke helt forstår hva en CPU eller GPU er for noe. De tror CPU eller GPU er "en liten magisk boks som er satt til å jobbe med grafikk eller andre ting". Ikke at det er en "regnemaskin" som utfører regnestykker på samlebånd. De klarer derfor ikke å se forskjellen på "dumme" regnemaskiner med 240 samlebånd og "avanserte" regnmaskiner med 4 samlebånd. Nesten som om de tror GPU og CPU ikke er programmerbare og må gjøre kun én bestemt type oppgaver.

Lenke til kommentar

Anders Jensen:

ehm...

Jeg ser fortsatt ikke denne SwRenderingen du skulle mene at forekommer i GPU.

Ja pipelinen er meget konfigurerbart, ja du har shadere som tråkker og går - men alt dette er veldig veldig veldig grafikkspesialisert.

 

Ja du kan i dag lage shadere som tar input fra cpu, gjør kalkulasjoner, og returnerer et svar til cpu. Som igjen kan brukes til tallknusing, som igjen kan gjøres til .... whatever ... simulering av fallende snø.

 

Men jeg mener det er et godt stykke fra shadere/tallknusing - til at man laster inn et program som rendrer 3D. Da mener jeg at softwaren styrer alle ledd. På en måte gjør man antagelig det, men ikke ved å laste opp en exe fil til gpu og ber den execute det. Det er litt mer komplisert enn som så.

 

Jeg kan ikke se hvordan man får en applikasjon ala kalkulator, paint, notepad laget kun med shadere. Jeg kan se det med en Larabee... kanskje...

Lenke til kommentar
Men jeg mener det er et godt stykke fra shadere/tallknusing - til at man laster inn et program som rendrer 3D. Da mener jeg at softwaren styrer alle ledd. På en måte gjør man antagelig det, men ikke ved å laste opp en exe fil til gpu og ber den execute det. Det er litt mer komplisert enn som så.

Helt riktig. Forøvrig er .exe filer til windows og vi har ikke kommet riktig dit at GPU kjører et OS... enda så du må ha en spesialisert opplasting av software til GPU for at den skal kjøre. Poenget er imidlertid at dagens GPU kjører software. Det er i driverne all logikken ligger hardwaren er veldig generell og det er softwaren som bestemmer hvilken del av 3D renderingen hver enkelt kjerne skal gjøre. De er alle like kapable til å gjøre (nest) alt, og softwaren kan ut fra behov bestemme hvor mange kjerner som skal delta i hvert enkelt steg av renderingen eller hva annet GPUen gjør.

 

Ser du på eldre skjermkort så er det mye slike spesielle pipelines og relativt lite programerbart. På dagens GPU er det vel egentlig bare en del etterprosessering som ikke er lagt til videre programmerbar hardware. Lurer på om ikke anti aliasing f.eks kjøres på spesialisert hardware fremdeles.

Endret av Anders Jensen
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...