ATi introduceert 'stream computing'

ATi heeft gisteren onder de noemer stream computing een nieuwe technologie geïntroduceerd waarmee de rekenkracht van de gpu niet alleen voor het tekenen van plaatjes gebruikt kan worden, maar ook voor andere applicaties. Mogelijke toepassingen van de rekenkracht die door ATi worden genoemd zijn onder andere wetenschappelijk onderzoek, financiële voorspellingen, het zoeken in databases en gezichtsherkenning. ATi werkt samen met het bedrijf PeakStream om een software platform te leveren om de rekenkracht van de gpu’s te ontsluiten. Tevens werkt ATi samen met AMD om een co-processing platform te ontwikkelen gebaseerd op AMD’s Torrenza-initiatief.

Het inzetten van de videokaart kan vele taken aanzienlijk versnellen. Volgens ATi kunnen Monte-Carlosimulaties die gebruikt worden bij het inschatten van financiële risico’s met een factor zestien versneld worden, seismische modellen die gebruikt worden bij het opsporen van olie en gas kunnen twintig maal zo snel uitgevoerd worden en de Folding@Home-client werkt zelfs een factor veertig sneller. Aanstaande maandag zal een nieuwe Folding@Home-client beschikbaar gesteld worden die kan draaien op de Radeon X1900 en X1950-kaarten. Momenteel werken ongeveer 200.000 computers mee aan het Folding@Home-project, een prestatie die volgens ATi geëvenaard kan worden door ‘slechts’ 5.000 videokaarten.

Folding@Home visualisatie

Door Hielko van der Hoorn

30-09-2006 • 16:08

65

Bron: ATi

Reacties (65)

65
64
43
4
2
3
Wijzig sortering
een GPU is in sommige aspecten een beter FPU dan een CPU.
waarom zou je die mogenlijk er niet uit halen als je hem toch niet altijd echt gebruikt.
Anoniem: 177370 @stewie30 september 2006 16:58
Lijkt me geen goed idee..

-De FPU kan je niet zomaar uit de cpu halen zonder daarbij een heleboel backwardcompatability te verliezen.

-De FPU van een GPU werkt alleen sneller als er een grote data flow is die erg voorspelbaar, voorbeeld:
[i]for(int i = floatarray.length; i<0; i--)
{floatarray *= 5,6;}
Er kan daar gewoon een opdracht naar de GPU gestuurd worden om alle getallen in de array met 5,6 te multipliceren.

Maar bij:
if(floatB*floatBlah == 11,2) { etc..} moet eerst de GPU aangesproken worden om de berekening uit te voeren, daarna pas kan de CPU de if uitvoeren. Omdat de GPU op een pci slot zit en niet op de CPU zelf, duurt het 'transport' van de data een heel stuk langer.

Dus voor grote data berekeningen als Folding en het berekenen van pixels is een GPU sneller, maar bij korte berkeningen is de CPU sneller.

Het probleem dat er geen niet graphisch programma gebruik maakt van de GPU is omdat je er niet altijd op kan vertrouwen dat de GPU er zit en je een heleboel verschillende versies moet schrijven voor verschillende GPU's. Dat zie je ook hier weer: [quote]
die kan draaien op de Radeon X1900 en X1950-kaarten
[/quote]. 2 GPU's is nou niet echt daverende support.
Dat zie je ook hier weer: die kan draaien op de Radeon X1900 en X1950-kaarten. 2 GPU's is nou niet echt daverende support.
Dat staat wel in ATI's persbericht, maar je geeft onderzoekers natuurlijke je snelste product zodat ze de beste resultaten neer kunnen zetten en jij als fabrikant het beste uit de bus komt. Aangezien alle kaarten uit de X1k-serie bijvoorbeeld ook met Avivo overweg kunnen zullen ze dit ook allemaal wel kunnen. De belangrijkste verschillen tussen de low-end en de high-end kaarten in die serie zijn toch wel de hoeveelheid shader processors, kloksnelheden en dergelijke.
if(floatB*floatBlah == 11,2) { etc..} moet eerst de GPU aangesproken worden om de berekening uit te voeren, daarna pas kan de CPU de if uitvoeren. Omdat de GPU op een pci slot zit en niet op de CPU zelf, duurt het 'transport' van de data een heel stuk langer.
De pixelshaders van tegenwoordig ondersteunen ook on-GPU 'if constructies' en de beste kaarten ondersteunen zelfs for loops(zie GLSL specs).
Maar daarvoor moet je je hele programma (of hele functies) door de gpu laten uitvoeren. En stel dat je klant een onboard gpu heeft? Dan moet je het uiteindelijk toch nog op de cpu kunnen schrijven, wat niet kan als je cpu geen fpu heeft.
(leuk, al die op elkaar lijkende afkortingen)
Als de mogelijkheden er zijn is het zinvol om die mogelijkheden te gebruiken. Natuurlijk is een GPU niet voor alle berekeningen zinvol maar voor bepaalde toepassingen is de GPU gewoon beter geschikt dan een CPU.
Ook is het natuurlijk mogelijk om net zoals nu bij de SSE instructies gebeurd te testen op de aanwezigheid van de geschikte kaart te detecteren en afhankelijk daarvan de data op de CPU of GPU te verwerken.

Feit is dat de processorkracht van de GPU nu in veel gevallen ongebruikt blijft liggen. En dat is zonde
Omdat de GPU op een pci slot zit en niet op de CPU zelf, duurt het 'transport' van de data een heel stuk langer.
Als er MEER data kan worden getransporteerd, duurt het wel langer, maar uiteindelijk win je wel.
Een GPU IS een FPU..alleen met 20x zoveel pipes ^_^
Amiga was zijn tijd idd ver voor.... Helaas zijn ze een beetje op hun lauweren gaan rusten en werden ze op den duur ingehaald door anderen (lees M$)

Als het echt doorontwikkeld was............. ik durf er haast niet aan te denken wat voor mogelijkheden we zouden hebben
een gpu is alles behalve een fpu.

een gpu is een stream computer. MAW veel dezelfde bewerkingen uitvoeren op een stream van data. daar hebben floatingpoints weinig mee te maken. je kunt namelijk ook gewoon een reeks bewerkingen laten uitvoeren op een stream van ints oid.
Met 20x meer pipes maar met 1000x grotere latency. Zoals reeds eerder gezegd biedt dit pas voordeel als je de latency kan wegwerken door heel veel keer dezelfde bewerking achter elkaar te starten. Dat komt vaak voor bij 3D verwerking maar minder bij andere applicaties. De CPU/FPU is gespecialiseerd om veel verschillende berekeningen met minimale latency af te werken, dus die zal niet zomaar overbodig worden.
idd, dit vroeg ik me ook al langer af... zoveel berekeningen, zoveel rekenkracht...

voor spelletjes alleen?!
dit vond ik een beetje absurd
wie weet krijgen we op den duur als gewone rekenkracht voor je pc cpu+gpu... dat zou de max zijn
Of we hebben ooit geen videokaarten meer:-)
jij kijkt teveel star-trek.

chips zijn bovendien al 3D. Er zijn meerdere lagen silicium boven elkaar wat ook de nodige extra problemen meebrengt voor koeling, routing van signalen etc.

Los daarvan wil ik jou wel eens een productieproces zien bedenken om op dat micro-niveau een processor in 3D te bouwen. Quasi onmogelijk dus.
Zo werkt het dus net weer niet, aangezien de taakspecifieke dingen op een GPU onmisbaar zijn voor een GPU en overbodig zijn op een CPU, dat neemt niet weg dat in sommige applicaies de GPU er wel extra bij kan worden gezet en zelfs betere prestaties neer kan zetten.
ik snap niet dat ze nog steeds 2 dimensionaal werken!

Als je een chip in 3D maakt, heb je veel meer winst m.b.t. bussnelheden (afstanden die korter zijn), daarnaast is koeling veel efficienter, omdat hitte danwel koeling aan alle kanten kan ontsnappen/ kan toegevoegd worden.

Wel zal het hele idee van 'atx' overboord gegooid moeten worden.

Een stuk hardware ziet er dan uit als een soort piramide, waarbij het rekengedeelte zich in de punt bevindt, en waar in de punt zich tevens de openingen bevinden voor luchstromen/vloeistofstroming langs de chips.
De rest van de pyramide wordt gebruikt voor verdere koeling en regelschema's.

De verschillende stukken hardware (pyramides) worden bijelkaar gevoegd tot een soort veelvlak (zoals een Romboëdrisch kuboctaëder) , waarbij de punten allemaal in het middenpunt bijelkaar komen in een soort 'superbus' .

Niet alleen het begrip ATX zal overboord gegooid moeten worden, maar ook ide, sata, pci-e, usb etc.
Verder zal ook het productieprocede opnieuw ontwikkeld moeten worden.

Daarbij moet er meer gebruik gemaakt worden van 'licht' om hitteproblemen verder te voorkomen. (cold computing)
Hmm.. Ja... Interesant.. Pyramides.. ATX weg.. Oftoppic.. Hmm..
Maak er eens een draadje van op GOD zou ik zeggen.
Het heeft teveel nadelen om die hier allemaal op te noemen...
GOD? Gathering Of Dweakers?
TWeaKLeGeND heeft zeker een verstopte deus.... :+

Maar wel een mooie ontwikkeling, ik was dus niet de enige die me afvroeg waarom GPU power niet nuttig gebruikt kon worden voor andere dingen dan video beelden weergeven.
Anoniem: 144406 30 september 2006 17:26
Financiële risico's? Seismische modellen? Ik dacht altijd dat banken, verzekeringen en mijnbedrijven met zware multicore workstations werkten, en niet met doorsnee gamesysteempjes van bij de lokale computerboer?
Klopt, maar die zijn wel véél duurder dan een videokaartje GPU (Generalpurpose Processing Unit) ;) :P
Ik werk voor een bedrijf dat software maakt voor de olie en gas industrie (dus ook seismische modellen).
Waar je vroeger zag dat er vrijwel alleen Sun en Silicon machines gebruikt werden, zie je steeds meer de overstap naar win32 machines.

Windows XP is stabiel zat en met 32-bit kom je nog een heel eind.
Omdat ik niet wil spammen, maar een link van de concurrent.
Anoniem: 168789 30 september 2006 16:15
ik gok dat er veel Tweakers/DPC'ers zijn met een X1900? :Y)
Maar werkt ie alleen op een X1900 of ook op een lagere kaart?
Ook op lage kaarten. Maar de X1900 is gewoon de snelste. Echter hebben de mensen op Xtremesystems nog meer van die kaarten en zijn ze ook nog een overclocked. Dus ik denk dat die nog veel hoger komen dan wij. Dat is op dit moment ook bij Rosetta@home. XS heeft DPC heel erg ingehaald. Ik denk wel dubbel. Ze hebben daar gewoon te veel snelle cpu's.
Maar het gaat uiteindelijk om het goede doel, dus iedere kaart is al goed als die extra ingezet kan worden. Dat we dan dalijk niet op nummer 1 staan, tsja, je kunt jezelf beter als winaar benoemen met ieder berekening, daar draait het toch om.
Ik vraag me af of ik mijn 9500 later ook mee kan doen.
Dan de ik rosetta op de CPU en F@H op de GPU
Nee.
Je hebt een SM3 kaart nodig, en dan met name ook eentje met een snelle branch prediction.

Vandaar dat ATI pas actief is geworden met GPGPU initiatieven met de X1000 serie.
En dat tweede punt is de reden waarom de ATI kaarten daar zoveel beter voor geschikt zijn dan de Nvidia SM3 kaarten.
Ik ben er iig een van. Met een X1900XTX dus :+
Anoniem: 148116 30 september 2006 17:27
Dit is eigenlijk niets nieuws. Met de BrookGPU stream programmeertaal kon je dit soort dingen ook al doen.

Zie http://graphics.stanford.edu/projects/brookgpu/.
Sterker nog dit werkte allang op ATI kaarten en er zijn zelfs al topics op GoT over geweest.
Grappig dat je dat zegt, als je kijkt is een van de ontwikkelaars van BrookGPU (Pat Hanrahan) oprichter van PeakStream (http://www.peakstreaminc.com/about/).

Dus dat verklaart dat wel.
Anoniem: 42145 1 oktober 2006 14:25
Wel jammer dat men voor F@H alleen die allernieuwste ATI kaarten ondersteund. Veelal zijn het toch de wat oudere bakjes die voorderest toch weinig staan te doen,die je voor folding inzet.

Ik heb nog een oudere P4 2.8Ghz staan met een 9600XT erin. Die staat ingesteld als download bak en draait natuurlijk een koetje. Juist voor de oudere bakken zou het mooi zijn als de GPU kon bijspringen.
Het probleem is een beetje de bandbreedte die nodig is om tussen de CPU en GPU te communiceren. Als je lang bezig bent om een matrix over te blazen naar de GPU dan, dat je het op de CPU uitrekend... is dat niet echt 'handig'.
Anoniem: 42145 @Skinkie1 oktober 2006 21:51
Als je lang bezig bent om een matrix over te blazen naar de GPU dan, dat je het op de CPU uitrekend... is dat niet echt 'handig'.
Natuurlijk, dat is een wel bekend probleem wat je ook binnen een grid tegenkomt. Zelf uitrekenen in 10 seconden, of naar een andere node sturen die het in 5 seconden kan, maar met een totale network overhead van geschat 4 seconden.

Hier lijkt me het echter anders. Een speedup van 40X!!!

Ook al zou je de matrix over een antieke parallel poort sturen dan zou je hier nog winst halen waarschijnlijk.
Het heeft weinig met bandbreedte te maken, maar veel meer met het feit dat een 9600 verschrikkelijk inefficient is (tov de 1900) wat betreft uitvoeren van branches in de code.

Zodra bandbreedte naar het main memory een bepalende factor wordt, verlies een GPU zowiezo. Om het enigszins efficient te houden, moet alles in het video geheugen gestoken worden met minimale interactie van de CPU.
Anoniem: 131806 1 oktober 2006 11:53
Voor de meeste wetenschappelijke berekeningen gebruikt men 'double precision' floating point aangezien de cumulatieve afrondingsfouten anders de lengte van de mogelijke berekeningen ernstig beperken wil men nog enige nauwkeurigheid overhouden in het eindresultaat.
Het lijkt me sterk dat een GPU hierin zou uitblinken: de benodigde hardware hiervoor is volstrekt overkill voor puur grafische berekeningen.
Blijkbaar heb je de ontwikkelingen de laatste jaren mbt HDR gemist?
Als je even op sourceforge rondneust kan je zien hoe nieuw dit echt is... Het wordt zelf door wetenschappers al toegepast. En coprocessors: die hadden we toch voor de 86286 al?
Het is 80286.
Maar inderdaad je had vroeger ook al coprocessors. Het was destijds zo dat goedkopere CPU's helemaal geen FPU hadden. Je kon dan een FPU coprocessor bijprikken (ik meen me te herinnern dat deze bijvoorbeeld de 80387, en 8087heetten)
Weet iemand hoe eenvoudig/ingewikkeld het is voor Nvidia om hetzelfde te doen met hun kaarten?

Het schijnt namelijk dat Nvidia ook wel redelijk high end kaarten bakt die toch ook wel het 1 en ander kunnen uitrekenen.
Anoniem: 175233 @Hann1BaL2 oktober 2006 14:37
In weze kan iedere SM3 kaart dit. Alleen is de ATI implementatie van SM3 veel beter dan die van NVidia, en zullen ontwikkelaars dus als eerste naar ATI kijken.

Het is toch een stukkie stoerder om 20x zo snel als de snelste CPU te zien, dan dat je 'slechts' 4x so snel bent...


Ik denk dat GPU's steeds vaker zullen worden gebruikt voor dit soort werk. Wij gebruiken momenteel al de GPU om microscopie data te verwerken. Scheelt enorm t.o.v. de CPU. Op dit moment is voor ons de PCIe bus de bottleneck, en nieteens de rekenkracht van de GPU.

Ik heb al gezien dat Zeiss ook zoiets heeft geimplementeerd voor hun confocaal microscoop software.
Universal Audio heeft al jaren een audio processing kaart die gebaseerd is op een GPU, de UAD-1

Dan was er nog even het bedrijf BionicFX wat ook beloofde software uit te brengen waardoor je vst plugins kon draaien op nvidia hardware. Spijtig genoeg bleek het vaporware, maar het is mogelijk en zou geweldig zijn. Ik denk dat zelfs mijn budget FX5500 wel enkele reverbs zou kunnen draaien ;)
Eigenlijk is dat allemaal niets nieuws he...

20 jaar geleden werd in de Amiga de 'blitter' ook al gebruikt om MFM data van de floppy controller te coderen/encoderen...
Oef zoveel jaar alweer voorbij, wat had ik toch schik van mijn Amiga. Zat al een windows achtig OS (Workbench) op dik voor windows met hun versie kwam.

Op dit item kan niet meer gereageerd worden.