Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 32 reacties

Nvidia schenkt een half miljoen dollar aan de biofysica-afdeling van de University of Illinois. Die wordt daarmee de eerste zogeheten 'Cuda Center of Excellence' en gaat het geld voor onderzoek naar parallele rekenmethodes met Nvidia's gpu gebruiken.

Nvidia Cuda Cuda is Nvidia's progammeerinterface waarmee het uitbesteden van rekenwerk aan de gpu moet worden vergemakkelijkt. De grafische kern is daar in bepaalde gevallen geschikter voor dan de cpu vanwege de aanwezigheid van grote aantallen shaders die onafhankelijke rekentaken gelijktijdig uit kunnen voeren.

De Theoretical and Computational Biophysics Group van de universiteit van Illinois gebruikt parallele methodes voor het bouwen, doorrekenen en visualiseren van modellen van diverse biologische systemen. De erkenning van Nvidia komt voort uit het feit dat de onderzoeksgroep zijn Namd-architectuur met succes om wist te zetten voor gebruik op de gpu. Daarmee konden de biofysici hun rekenwerk aanzienlijk versnellen, aldus het persbericht van Nvidia.

Nvidia Quadro FX 5600 Nvidia zegt dat universiteiten in aanmerking kunnen komen voor de titel Cuda Center of Excellence indien er onderwijs wordt gegeven over het programmeren met Cuda, en dit tevens in onderzoeken wordt toegepast. De instellingen kunnen naast geld rekenen op de donatie van apparatuur en hulp bij het opzetten van gpu-clusters. Zo kreeg de biofysica-afdeling van de universiteit van Illinois 32 Quadroplex-systemen met in totaal 64 Quadro FX 5600-kaarten aan boord. De apparatuur heeft een waarde van zo'n 800.000 dollar.

Moderatie-faq Wijzig weergave

Reacties (32)

De hele CUDA hype moet echt sterk gerelativeerd worden. Ik doe op het moment een project met CUDA voor een klant wat beeldverwerkings algoritmen moet versnellen. De resultaten zijn teleurstellend zowel wat snelheid als ook de nauwkeurigheid aangaat.

Het enige waar CUDA echt geschikt voor is zijn klassieke SIMD algoritmen zoals convoluties en dense matrix berekeningen. Dus weinig branching in een stream programma. Vector berekeningen verliest het van de CPU vanwege de CPU cache. Het grootste nadeel van CUDA is dat de (tussen)resultaten steeds naar het RAM gekopieerd moeten worden over de in verhouding langzame PCI-E bus.

Bij een zelfontwikkelde raytracer zijn de resultaten ook teleurstellend tov een quad core Intel vanwege het vele branching in de kernel en de non-coalesced reads/writes die nodig zijn omdat de acceleratie datastuctuur niet in shared memory past.

Ook de nauwkeurigheid is beperkt vanwege de 32-bit floating point precision, hoewel dit opgelost is in de GT200 architectuur. Helaas is double precision floating point een factor 8 langzamer en voldoet het niet aan de IEEE 754 standaard.

Ik zou alle gepubliceerde CUDA resultaten maar delen door de NVIDIA marketing factor om een realistisch beeld te krijgen.
In welke zin voldoet de double precision float niet aan de IEEE standaard? Dat zou werkelijk heel erg ernstig zijn, en zou het praktisch onbruikbaar maken voor wetenschappelijke toepassing. Heb je toevallig een linkje? Hier bij ons wil men er ook gebruik van maken, en dit is dus wel belangrijk voor me.
ziehier:
http://beyond3d.com/images/articles/Tesla10/5.png
http://www.beyond3d.com/content/articles/106/3

geen status flags om bv overflow/underflow, divide by zero te detecteren, niet echt rampzalig zeker niet voor de toepassingen waarvoor ze bedoeld zijn

/edit
afaik is de R670 ook niet conform met de standaard (wel veel sneller met doubles, ongeveer 4-5 keer trager dan de single performance).
Van de R770 is er nog niet veel informatie, hij zou wel nieuwe GPGPU mogelijkheden gekregen hebben onder andere ondersteuning voor compute shaders specifiek voor gpgpu (ipv vroeger als pixel shader).

[Reactie gewijzigd door oeLangOetan op 1 juli 2008 20:38]

Het ondersteunt blijkbaar IEEE 754R: http://www.nvidia.com/docs/IO/55533/GPU_Datasheet.pdf. Dat is niet hetzelfde als IEEE 754.
Bij single precision berekeningen heb ik in ieder geval grote afrondingsfouten gezien wat de GPUs inzetbaarheid beperkt. Dit is echter niet het enige probleem, divergerende kernels(branching) en de bandbreedte van de PCI-E bus beperken de toepasbaarheid nog meer.

[Reactie gewijzigd door b_visser op 1 juli 2008 21:12]

Divergerende kernels (eigenlijk zijn het divergerende hardware threads op een SIMD processor) kan inderdaad een probleem zijn, ook in mijn ervaringen. Meestal is daar wel een redelijke oplossing voor te vinden in het type algoritmes dat CUDA target. Zo deden wij een hoop onnodig rekenwerk, waarvan we de resultaten gewoon weggooiden om branchen te vermijden. Het resultaat wegschrijven stond wel in een branch, maar die was kort genoeg voor predication, waardoor er geen branchen nodig is.

In mijn ervaring is voor de meeste algoritmen die 754R standaard afdoende, alhoewel het wel tot meer werk kan leiden om precies te begrijpen waar de moeilijkheden liggen. Bovendien is het voor DP nog maar de vraag of de performance 8 keer minder is; er zijn wel minder ALU's maar die hebben wel de beschikking over de gehele geheugen bandbreedte en het zijn nog steeds gigantisch veel meer GFLOPS dan op een CPU. Het hangt hier dan ook sterk af van het algoritme. Misschien kan je aangeven waarom je perse IEEE754 nodig hebt?

Waarom zou de bandbreedte van de PCI-e bus een limiet zijn? Je werkt dan wel met hele grote datasets. Meestal is de aanpak toch eerst alles van RAM naar VRAM kopieeren, dan berekeningen doen en vervolgens de resultaten weer terughalen? Wij gebruikten zelfs een kernel om de resultaten al samen te voegen in VRAM, wat een factor 10 aan bandbreedte scheelde.

Uiteindelijk was de 8800GTX ruim 130 keer sneller dan een Core2 processor voor ons probleem met ongeveer dezelfde nauwkeurigheid in single precision FP.
Kan ik vragen, welke beeldverwerkings algoritmen het waren? ik had eerder veel succes met mijn implementaties. Maar de technieken waren niet bepaald geavanceerd. Het grootste probleem was de random access memory patterns oplossen.

Ik behield natuurlijk alle tijdelijke oplossing in de GPU geheugen. Dus niet bepaald grote beelden.
Ik kan me niet vorrstellen dat je bij densematrix berekeningen snel meer dan 512MB nodig hebt. En als dat wel zo is loop je heel snel ook tegen de beperking van gewoon werkgeheugen aan en zul je moeten gaan swappen. Verder hebben andere mensen met verschillende technieken (oa raytracing) juist wel hele goede resultaten gehaald. Inderdaad is branching niet de sterkste kant van GPU's (er zat zelfs een hele harde limiet op een tijdje). Misschien dat je implementatie nog te verbeteren valt?
"Ik kan me niet vorrstellen dat je bij densematrix berekeningen snel meer dan 512MB nodig hebt"

Dat is nu juist iets wat GPUs wel goed kunnen, zoals ook in mijn post staat. Verder staat er ook niet veel zinnigs in je post om op te reageren. Misschien beter gewoon niet reageren op iets waar je geen verstand van hebt?
Ze proberen dat CUDA wel te pushen, valt me op. Ik heb het idee dat het komt doordat AMD/Ati nu zo'n slimme chip heeft gebakken, die stiekum beter blijkt te zijn in GPGPU ;)
Ik kan het ze niet echt kwalijk nemen...
Ze hebben een goeie chip, en belangrijker : ze zorgen dat de gebruikers ermee overweg kunnen. AMD heeft nog geen nette interface neergezet, en mijn compiler snapt nog totaal niets van m'n videokaart, laat staan z'n extra mogelijkheden. CUDA is een goede oplossing, en dat promoten ze dus. Ik wacht met smart tot ie 64-bit ondersteunt... (wetenschappelijke programmas willen ook wel eens 64-bit draaien, vanwege precisie. Komt dat in een videokaart, dan gaat het hard).
hoezo pushen? cuda werkt ook met amd/ati, nvidia probeert tenminste nog veel meer uit een gpu te halen en investeert daar flink in, is ze alleen maar aan te prijzen

als je ziet dat het coderen van video 9 keer sneller gaat via cuda dan via een cpu is het zeker meer dan de moeite waard

[Reactie gewijzigd door gbh op 1 juli 2008 18:04]

Cuda werkt helemaal niet met AMD/ATI.
Voor zover we weten is dat een hack. Het verteld helemaal niets over hoe goed CUDA supported is, welke delen van de technologie werken en welke helemaal niet.

Ik wacht liever op OpenCL, brook+(voor nvidia) of tenzij AMD of iemand anders een officieele CUDA port doet waarbij we de verschillen kunnen onderzoeken. Namelijk het geheugen model werkt bij een nvidia kaart anders dan bij een amd kaart, zie global/shared memory, memory coalescing, bank conflicts etc voor meer info.
cuda kan volledig gepoort worden naar amd/ati, kost ze waarschijnlijk alleen een licentie en daar zal amd wel niet al te happig mee zijn omdat ze nu met intel in het havok kamp zitten

Remember, it takes a lot of time and work to make CUDA compatible enough with Radeon to get it to fully work without any issues.
Cuda kan misschien wel geport worden maar wellicht niet efficient. Cuda is echt gemaakt voor de huidige architectuur van de nvidia kaarten. Dat is duidelijk in de manier waarop in cuda met de cache omgegaan wordt.
Er is zelf een reële kans dat cuda in zijn huidige vorm niet efficiënt zal zijn op de volgende gpu architectuur van nvidia. Cuda is heel erg hardware gericht maar wel gemakkelijker in gebruik dan de IL van CAL (AMD).
Och, die hack lijkt best wel efficient. (als het geen hoax is)

En dat zelfs op een 3800 serie kaart, waar de 4800 serie veel gunstiger voor cuda zou moeten zijn gezien de architectuur.
hoezo pushen?
Nou, een universiteit 1 miljoen dollar geven omdat ze wat met Cuda doen (ok, ze doen wel iets meer dan "wat" :) ) en een aparte status in het leven roepen voor universiteiten die met Cuda werken met de belofte van donaties klinkt mij toch aardig "pusherig" in de oren...
Voor zover ik weet is de GPU2 client van Folding@Home op ATI kaarten godsganselijk veel langzamer dan op nvidia kaarten.

Overigens hoop ik wel dat ze binnenkort het probleem oplossen wat je hebt met meerdere kaarten in Windows Vista: je kunt met CUDA alleen kaarten aanspreken waarop een fysieke desktop uitgebreid is. Wat dus betekent dat Vista gebruikers Folding@home GPU niet in op meer dan één GPU core kunnen gebruiken als ze maar één monitor hebben - en XP heeft behoorlijke problemen met prioriteit stellen, daar kan je je systeem bijna niet meer gebruiken op het moment dat je FAH GPU2 (voor nvidia kaarten) aanzet. (trouwens, multi-GPU support is nog niet officieel, maar hier is een methode om het toch werkende te krijgen. Maar dus alleen handig op XP of Vista als je meerdere monitoren hebt)

Edit: haha, nu is er een nieuwe core uit die multi-GPU support toevoegt. Plus een oplossing voor het probleem van hierboven.

[Reactie gewijzigd door Mitsuko op 2 juli 2008 05:22]

vind je het gek.
gt200 tegen x1950xt....
tegen de 3870 werd het al een stuk minder.
het wordt pas leuk als het gt200 tegen 4870(x2) wordt
Doet me denken aan die Belgische student die in een youtube video uitlegd dat hij z'n eigen supercomputer gemaakt heeft om berekeningen mee te kunnen doen. Is toen ook nog op Tweakers geweest volgens mij.
Je bedoelt de FASTRA? De universiteit van Antwerpen gebruikt een custom made computer met 4 Geforce 9800GX2 grafische kaarten om tomografisch reconstructie te versnellen.

Ik gebruik zelf CUDA om mijn raytracer te versnellen en ik moet zeggen dat het een nette API is. Veel dingen zijn duidelijk gedocumenteerd en er zijn veel voorbeelden zodat het porten van CPU code naar de GPU redelijk simpel is :) Ik zou graag willen dat ze op de UT wat meer aandacht zouden schenken aan CUDA :9
werkt dat goed. ivm weinig cache, en veel random memory acces?
zou eerder wachten op larrabee...
Het is simpele raytracer zonder een acceleratiestructuur en alleen met primary rays, dus zo heel bijzonder is het niet. Maar kwa performance is het best redelijk. Mijn cpu versie die 21.5 sec. over een scene met 1034 polygonen doet, rendert mijn 8600GT in 0.69 sec. met een paar kleine optimalisaties. Je moet ervoor zorgen dat je aligned kan lezen (wat moeilijk is) en dan gaat het veel sneller. Ik ga de cpu versie wel opnieuw schrijven om gebruik te maken van alle 4 de cores in mijn pc, dan kan ik ebeter vergelijken.

[Reactie gewijzigd door Oguz286 op 2 juli 2008 14:28]

Zo kreeg de biofysica-afdeling van de universiteit van Illinois 32 Quadroplex-systemen met ieder 64 Quadro FX 5600-kaarten aan boord
64 kaarten in één systeem? :o
Ik neem aan dat het 2 kaarten per systeem zijn en zo een totaal van 64 kaarten maakt? :P
Interessante ontwikkeling! Ik zou het niet erg vinden als mijn GPU gebruikt wordt om het uitpakken van RAR bestanden te versnellen of zoiets dergelijks! Ik vermoed dat dat toch de toekomst wel gaat worden. _/-\o_

Over de toekomst gesproken, CUDA is natuurlijk wel leuk en aardig plus dat we leuke dingen hebben gezien maar ik denk toch echt dat het hem niet wordt. We moeten niet vergeten dat Intel en AMD/ATI de Havoc engine ondersteunen. Gezien de geschiedenis heeft Microsoft altijd gebruik gemaakt van ATI Radeon kaarten (Xbox bijvoorbeeld). De kans is heel groot dat Microsoft met DirectX 11 (en zijn nieuwe OS?) Havoc gaat ondersteunen en niet CUDA.

Ik dacht trouwens ooit eens gelezen te hebben dat nVidia ook Havoc zou gaan ondersteunen :?
Havok is een physics engine te vergelijken met Physx van nVidia. CUDA is een programmeerinterface om allerhande code van de CPU naar de GPU te kunnen verplaatsen, niet alleen dingetjes die leuk zijn voor games ;)
ik denk eerder dat we een CPU+GPU combi gaan krijgen waarbij dus de grafische kaart geintegreerd is in de processor. Zeker nu AMD en ATI samen zijn gegaan.
@Stephan224

Ik snap zelf helemaal niets van welke soorten berekeningen beter door een GPU dan CPU kunnen worden afgehandeld, maar compressie lijkt me inderdaad een mooie.

Je MS/ATI verhaal daarintegen... eerste xbox had gewoon een nvidia chipset/gpu en de Intel/MS relatie zal ook meespelen. Beide hebben AMD wellicht nodig, maar als Nvidia een dominerende standaard neerzet die closed-source software mogelijk maakt, zal MS dit omarmen ben ik bang.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True