[alg] GPU gebruiken voor niet-grafische doeleinden *

Pagina: 1
Acties:
  • 140 views sinds 30-01-2008
  • Reageer

  • QkE
  • Registratie: April 2002
  • Laatst online: 22-02 14:51

QkE

In your face Gnagna

Topicstarter
Ik ben nieuwsgierig of hier iemand al ooit iets mee gedaan heeft. Op Tweakers.net (nieuws: Stanford University zet GPU in als co-processor) stond dat dit mogelijk was en ik was benieuwd naar de mogelijke toepassingen.

De site (http://graphics.stanford.edu/projects/brookgpu/index.html) geeft een boel nuttige informatie, maar ik vroeg me dus af of iemand hier het al gebruikt en zo ja:

Is het werkelijk zo snel als daar wordt beweerd?
Is het programmeren moeilijk?
Waarvoor is het bruikbaar?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:54

.oisyn

Moderator Devschuur®

Demotivational Speaker

Uhm ja, je kunt er weinig mee, behalve berekeningen doen met min of meer dezelfde functie en heel veel input-variabelen, meer niet.

Maar dat kun je zelf natuurlijk ook wel verzinnen als je bijleest over vertex en pixelshaders

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • QkE
  • Registratie: April 2002
  • Laatst online: 22-02 14:51

QkE

In your face Gnagna

Topicstarter
Heb je er mee gewerkt? Puur voor grafische doeleinden of ook niet-grafisch?
Is het niet zo dat je laten we zeggen seti ofzoiets daarop zou kunnen zetten? Of zoiets te complex. Ik had namelijk het idee aan de hand van het nieuwsbericht dat er behoorlijk wat mogelijk was.

Misschien is Seti te hoog gegrepen, maar wat voor toepassingen zijn er hiervoor? Het is toch een behoorlijke bundel onbenutte processorkracht.

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 17-01 08:36

Macros

I'm watching...

Moderne GPU's zijn gespecialiseerde stream processoren. Stream processoren bestaan al langer maar komen nu pas echt van de grond omdat ze zo goed toepasbaar zijn op 3D berekeningen die GPU's uitvoeren. GPU's hebben naast de normale stream mogelijkheden dus ook nog extra videokaart functies, maar die gebruik je dan dus niet.

Een algemene stream processor zijn meestal vele kleine cpu's die je software matig aan elkaar kan linken om meerdere operaties sequenteel uit te voeren op een data stream. Nu is 3D hardware gemaakt om 4 dimensionale data te bewerken (3 kleuren + alpha kanaal), dus dat doen de GPU's dan ook meteen.

Stream processors zijn dus erg goed in het bewerken van stromen data, dus denk aan video bewerking, filters en dergelijke. GeForce 3 is al gebruikt om een sparse matrix solver op te implementeren. Voordeel van Stream processors is, dat ze beter schalen dan normale processors. Zo kunnen ze makkelijk honderden FPU's onboard hebben die bijna allemaal tegelijk kunnen werken, dus zelfs op lage MHz verwerken ze veel meer data dan een normale CPU.

Ze hebben wel een hoop nadelen, maar een kleine hoeveelheid programma's kunnen gebruik maken van dit soort CPU's. Veelal dus multimedia programma's.

"Beauty is the ultimate defence against complexity." David Gelernter


  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 01-02 09:13
Ik had gehoord dat vectorberekeningen, matrices, complexe variabelen erg goed hierop uit te rekenen was. Iets of iemand in de USA had hier een proggie voor, waar hoe en wat weet ik niet.

if broken it is, fix it you should


  • QkE
  • Registratie: April 2002
  • Laatst online: 22-02 14:51

QkE

In your face Gnagna

Topicstarter
Maar ik begrijp dus dat progjes die andere dingen moeten doen dan video/audio bewerkingen eigenlijk niet echt gebruik kunnen maken van deze brutekracht?

Het wordt eigenlijk nog niet toegepast. Moeten we waarschijnlijk wachten op nieuwere videokaarten die meer mogelijkheden hebben. Zou er ooit een moment komen dat we niet alleen onze CPU aan het werk kunnen zetten voor Folding@home?

[ Voor 44% gewijzigd door QkE op 19-02-2004 19:37 ]


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 17-01 08:36

Macros

I'm watching...

Als je het folding algoritme om kan zetten naar matrix berekeningen en veel paralelisme, dan kan je het wel op een GPU implementeren.

"Beauty is the ultimate defence against complexity." David Gelernter


  • nhimf
  • Registratie: September 2000
  • Laatst online: 29-01 16:26

nhimf

Lekker belangrijk allemaal

Netwerkapparatuur kan ook veel voordelen hebben van stream cpu's. Ik geloof dat er op de fp al eens sprake was om gpu's als cpu in netwerapparatuur te gaan gebruiken. Juist omdat netwerkverkeer streams zijn.

Ik stink niet, ik ruik gewoon anders


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:54

.oisyn

Moderator Devschuur®

Demotivational Speaker

QkE schreef op 19 februari 2004 @ 19:18:
Heb je er mee gewerkt? Puur voor grafische doeleinden of ook niet-grafisch?
ik ben aardig bekend met waar vertex en pixelshaders voor bedoeld zijn, dus ik ken de mogelijkheden ja ;)
Is het niet zo dat je laten we zeggen seti ofzoiets daarop zou kunnen zetten? Of zoiets te complex. Ik had namelijk het idee aan de hand van het nieuwsbericht dat er behoorlijk wat mogelijk was.
Valt best tegen. Seti@home voert voornamelijk fourier transformaties uit, dat is met pixelshaders niet echt mogelijk. Zelfs met de nieuwste hardware kun je nog max. 8 lookups in textures doen, verder alleen een beetje basis wiskundebewerkingen. Ingewikkelde functies moet je dus als een lookuptable implementeren in textures, en het resutaat schrijf je ook naar een texture wat je achteraf uit kunt lezen.
Misschien is Seti te hoog gegrepen, maar wat voor toepassingen zijn er hiervoor?
Het berekenen van heel veel verschillende uitkomsten van een wiskundige functie gegeven een aantal input-variabelen, daar komt het op neer :)

Verder moet je je bedenken dat de AGP bus er niet voor is ontworpen om data terug te sturen naar het gewone geheugen of CPU, een texture uitlezen is dus een dure operatie

[ Voor 8% gewijzigd door .oisyn op 19-02-2004 20:36 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Ik heb een aantal experimenten met neurale netwerken op de GPU gedaan, dat ging vrij rap, een 70x versnelling ten opzichte van dezelfde bewerking op mijn CPU. Overigens wel ten koste van enige precisie, 32 bit op de processor versus 24 bit op de kaart, maar of dit acceptabel is hangt af van je applicatie.
En GPUs kunnen erg snel met floats werken, maar hebben geen integer operaties. Hou dit in gedachten.

Zie ook http://www.gpgpu.org/ , zij hebben een forum specifiek over dit onderwerp.

  • QkE
  • Registratie: April 2002
  • Laatst online: 22-02 14:51

QkE

In your face Gnagna

Topicstarter
Het berekenen van heel veel verschillende uitkomsten van een wiskundige functie gegeven een aantal input-variabelen, daar komt het op neer :)
Zouden fractals dan tot de mogelijkheden behoren?
Zie ook http://www.gpgpu.org/, zij hebben een forum specifiek over dit onderwerp.
Interessant die site. Ze hebben het daar over iets van een 404 not found methode ;)

Waarschijnlijk moet ik nog even wachten (op de nieuwere) om echte grote dingen met de GPU te doen. Het leek me wel interessant al die processorpower.

  • Jappo112
  • Registratie: Juni 2003
  • Laatst online: 23:16
QkE schreef op 19 februari 2004 @ 21:34:

Interessant die site. Ze hebben het daar over iets van een 404 not found methode ;)
Achter de URL stond een comma, bij deze verbeterd...

http://www.gpgpu.org/

[ Voor 32% gewijzigd door Jappo112 op 19-02-2004 21:42 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:54

.oisyn

Moderator Devschuur®

Demotivational Speaker

QkE schreef op 19 februari 2004 @ 21:34:

Zouden fractals dan tot de mogelijkheden behoren?
fractals als in de mandelbrot en julia set enzo? Op zich wel, de extended 2.0 pixelshaders ondersteunen simpele loops en conditionele code

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

(URL verbeterd, de 404 methode was eigenlijk een geheime nieuwe ontwikkeling waar ik per ongeluk naar gelinkt had)

Ja, fractals behoren zeker tot de mogelijkheden. Voor het realtime genereren van 3D textures bijvoorbeeld. Ook realtime raytracing en volume rendering is (op heel beperkte schaal) mogelijk.
Voor deze algoritmes heb je wel vaak meerdere passes nodig, om branches en iteraties te simuleren.
Het blijft een stuk complexer dan het zelfde op CPU nivo implementeren.

Maar dat betekent niet dat je hoeft te wachten tot pixel shaders 3.0 oid totdat je er werkelijk wat mee kan doen, want tegen die tijd zal pixel shaders 4.0 wel weer om de hoek staan, waar je weer nog meer mee kunt. Je zult altijd rekening moeten blijven houden met de beperkingen van de hardware, en hier creatief omheen moeten werken. Dit maakt het ergens juist ook weer interessant. Verder zal de performance gain ten opzichte van een CPU steeds lager worden naarmate GPUs meer een tweede CPU worden, is mijn vermoeden.

[ Voor 47% gewijzigd door Verwijderd op 20-02-2004 14:27 ]

Pagina: 1