Hoofdcategorieën

Nvidia maakt C-compiler voor G80-core

Door René Wichers, donderdag 9 november 2006 10:27
Bron: nVidia, views: 18.090

Nvidia heeft een C-compiler uitgebracht waarmee de nieuwe G80-core voor niet-grafische toepassingen kan worden ingezet. De zogeheten Cuda-technologie, die in de nieuwe chip zijn debuut maakt, laat programmeurs de unified shaders van de chip gebruiken als een soort losse processortjes. Daardoor kan een G80 concurreren met de physics-kaarten die games moeten versnellen, maar ook het rekenwerk aan bijvoorbeeld elektrotechnische of geologische modellen zou veel goedkoper uitgevoerd kunnen worden. Naast de G80 zal ook de zakelijke Quadro-lijn Cuda-ondersteuning krijgen, en het laat zich raden dat de lijst in de toekomst alleen maar langer wordt. Het platform wordt voor zowel Windows XP als Linux 'gelijkwaardig' ondersteund. ATi werkt met PeakStream aan een vergelijkbaar concept, wat onlangs de eerste resultaten opleverde, maar volgens nVidia is dat knip- en plakwerk met bestaand materiaal: het geheel nieuwe Cuda is vanaf de grond opgetrokken en daarom veel sneller dan de concurrentie.

nVidia GeForce 8800 GTXEen pc met bijvoorbeeld een GeForce 8800 GTX krijgt er dankzij de Cuda-architectuur 'zomaar' 128 op 1,1GHz geklokte miniprocessortjes bij. Om het parallellisme van de gpu te benutten moeten instructies en data echter op een andere manier geordend worden dan bij klassieke Von Neumann-programma's, waarbij maar één instructie tegelijk in de gaten gehouden hoeft te worden. Bovendien heeft de 'stream processor' van nVidia geen normale processorregisters, maar krijgen de threads dynamisch stukjes cachegeheugen toebedeeld, wat ook nogal wat organisatietalent van de developers vraagt. Dat gaat helemaal op als meerdere shaders aan dezelfde gegevens moeten werken, maar het hergebruik van gecachete gegevens levert volgens nVidia wel een belangrijk snelheidsvoordeel op. Om toch niet teveel hardwarekennis van de programmeur te eisen, is nVidia's C-compiler van een soort cpu-gpu-driver voorzien, die in samenwerking met OpenGL- en DirectX-drivers de gpu van werk voorziet. De oorspronkelijk videofunctie van de G80 komt zo wel wat in het geding, en de verwachting is dan ook dat de Cuda-chips binnen afzienbare tijd voor met name zakelijke toepassingen ook zonder monitoraansturing te koop zullen zijn.

Veel kleine nVidia-logootjes

Volgende 11:03
Vorige 10:01

Reacties

«  1  2  »

Wordt het niet eens tijd dat een bedrijf een losse kaart gaat maken waar op je een x aantal cpu's kan klikken voor dit soort doeleindes?
Dat hoeft dan ook niet zo duur te zijn en als je je games of tools wat sneller wilt hebben (ze moeten het dan wel ondersteunen maar dat is logisch) dan koop je een cpu erbij.

@dmantione :Lijkt inderdaad wel leuk ja... helaas maar voor een 3 tal tools. Maar iemand moet beginnen natuurlijk :-) Het game vlak lijkt me een goed begin

@Ackermans1973 : zeker niet...als het een GPU is dan is het bedoeld voor grafische dingen.. Maar misschien ook weer geen CPU want dat is de centrale eenheid. ff denken.... SPU (Secondary processing unit) lijkt me een goede

@thekip : als ik kijk naar een raid controller met geheugen erop dan werkt dat ook prima. Daar zit bv een risc cpu op. Je stopt er 256MB geheugen in (kost toch geen ruk meer) en klaar. Een extra kaart met verbindingen is het niet echt. Nu heb je een video kaart (ook extra eigenlijk) waar je de software op draait. Dan heb je een extra kaart waar bv 4 spu's op draaien. Ik denk niet dat het een probleem is om zoiets te ontwikkelen, alleen het supporten zal moeilijk zijn omdat bedrijven die moeten inbouwen in hun software.

Bedoel je niet GPU i.p.v. CPU...

zoiezo is dit hele systeem zo snel doordat alles op het bord vastgesoldeerd zit, dat scheelt weer verbindingen via een (toch nog steeds) minder betrouwbaar socket. daarnaast is het lastig om een dergelijke kaart te maken omdat je er ook geheugen etc bij moet steken en die verhouding is erg belangrijk.

@hierboven
ja en je zit aan de breedte van de pus van je insteekkaart en bij heel veel communicatie met het systeem kan dat ook weleens de bottleneck worden (hoe krijg je bijvoorbeeld alle benodigde gegevens in het geheugen op je kaart.....)

Dat is er al, de socket heet PCI-E 16x en de CPU heet G80 kaart.

m.a.w. door losse chips te maken verschuif je alleen je uitbereidingspunt. Als je tegen de limiet van het aantal 16x sloten loopt (3 max zover ik weet momenteel) waarom zou je dat probleem dan ineens niet meer hebben als je met chips in sockets i.p.v. kaarten in slots werkt?

zakelijke quadro lijn ;) (niet quattro)

Aha, dus binnenkort krijgen we ook Folding@Home voor nVidia kaarten? Ik heb nu sinds enkele dagen de Folding@Home client draaien met mijn X1900 XTX, wat opzich goed bevalt. Natuurlijk help ik graag een handje mee aan het folding project, het enige nadeel vindt ik wel dat mijn PC meteen 50 watt meer nodig heeft.

Kan je hem niet via een profiel bij het draaien van Folding@Home wat rustiger aan laten doen? Lager voltage, lagere frequentie, en daardoor minder verbruik. Het zijn de laatste loodjes die de bulk van het vermogen trekken.

0.5x8800 physics 1.5x8800 graphics ;)

Waarom werkt dit nou niet op oudere nvidia kaarten? Er is toch niks veranderd aan de architectuur van de kaart, er is alleen een andere manier bijgekomen om hem aan te sturen, of mis ik iets?

De zogeheten Cuda-technologie, die in de nieuwe chip zijn debuut maakt, laat programmeurs de unified shaders van de chip gebruiken als een soort losse processortjes.

De architecteur niet veranderd???

Die is helemaal op z'n kop gegooid.. In plaats van appart shaders is er nu een unifed shaders architecteur gekomen.. beetje beter lezen (en ook de bechmarks pagina)

Fijn op dit soort ontwikkelingen zit ik te wachten.
Ziet niet te wachten op telkens losse insteekkaartjes.

Prettig toch als je performance toeneemt door 1 kaart?
Physics, graphics etc op 1 kaart.

Simulaties in 3dsmax die versnelt worden.
En mooiere physics in games.
Alles wordt er alleen maar beter op.
Voor game-ontwikkelaars ook heel erg interessant lijkt mij...

Laat maar komen hoor!

Laat 3dsmax maar eens eerste gebruik maken van de GPU bij het renderen...jaren geleden bij SIGGRAPH een demo van geweest (gigantische snelheidswinst), en nu nog steeds niet in max te doen :(

dat is allang te doen, nvidia heeft daar een 3dsmax renderer voor gemaakt en er bestaan er al een hoop meer.

check je info voor je post :P

zoek maar eens naar Gelato

Dan mag je mij eens laten zien hoe ik b.v. glow bij een lightning krijg in Maya op Hardware render.

Is dit misschien een klein beetje een voorbereiding op het gerucht dat Nvidia in de CPU markt wil stappen?

Bron: http://news.com.com/2061-11516_3-6128186.html

Ik kan me namelijk voorstellen dat het aanmoedigen van gebruikers voor het gebruiken van gpu-cores voor andere doeleinden dan grafische toepassingen, best een mooie test kan zijn van Nvidia om de horizon te verbreden.

Dat nieuwsbericht ging over een x86 CPU. deze GPU als cpu ( of een 128 core CPU...) is echt NIET x86 compatible. En ook de C code die je erop draait zul je echt moeten richten op het verwerken van dingen die gespecialiseerd zijn voor een GPU. Anders houd je geen performance meer over.

Neeh maar Nvidia heeft de G80 core wel ontworpen met technieken die ook veel bij cpu's worden gebruikt. Zo complex is deze G80. Dit geeft wel aan dat Nvidia die kant op gaat.

Dus misschien zullen in de toekomst wel een X86 cpu gaan maken wie weet....

Welke technieken mogen dat dan wel zijn?
G80: massief parallel theads, SIMD, in-order, scalar, latency hiding, enz enz.
x86: single threaded, SISD, out-of-order, super-scalar, register renaming, enz enz.
De voornaamste overeenkomst is dat ze instructie uitvoeren. Maar het blijven heel verschillende beestjes en de core is execution unit van een x86 is een orde grootte complexer dan die van een GPU.
Afhankelijk van de bron claimt Nvidia 600 tot 1000 manjaren werk voor de G80. Daar lachen Intel en AMD mee.

Dit moet je in gcc kunnen gebruiken. Dan kan je de video kaart als co-processor laten werken voor vector berekeningen.

Dat gaat zo maar niet.

Dan moet GCC eerst een flink stuk van je applicatie source code zien te isoleren die 100% op de GPU kan draaien, vervolgens dit stuk code laten uploaden naar de GPU, de benodigde input data uploaden, de code draaien, en de uitkomsten weer downloaden.

Dat wordt een flinke verbouwing als je een reguliere compiler zoals GCC dat wil kunnen laten doen. En slechts enkele programma's hebben er baat bij.

Ik denk dat de overhead van de up/download stap te groot is om GPU en CPU op instructie-level te kunnen mengen.

Het zou fijn zijn als je straks een 8600 (of een andere serie) in SLI met de 8800GTZ (die ik al besteld heb) kunt plaatsen en dan alle physics op de 8600 kunt laten draaien.

Kan je gewoon op één grafische kaart laten draaien hoor. Zelfs een minieme fractie van de rekenkracht van G80 is krachtiger dan bestaande physics processoren. Een gehele tweede kaart daaraan toewijden is overkill. Het is veel beter om die werklast te balanceren op één kaart of twee dezelfde in SLI.

Is dit niet handig om bv. d.m.v. SMP te gebruiken als extra core?
En zodra een 3d programma fullscreen gaat worden de processen op die extra core verplaatst naar de echte CPU om dan de GPU te kunnen gebruiken waarvoor ze gebruikt dient te worden :)

(Ik weet er echt niet veel van dus flame me niet als ik het compleet verkeerd bezie :) )
«  1  2  »

Op dit item kan niet meer gereageerd worden.

Volgende 11:03
Vorige 10:01
VNU Media logo Powered by True

© 1998 - 2008 Tweakers.net - Alle rechten voorbehouden

Uitgever van: