OpenCL: Wat te verwachten?

Pagina: 1
Acties:

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
Een hele tijd geleden is al aangekondigd dat één van de belangrijkste features van het opkomende Mac OS X Snow Leopard het unlocken van de GPU wordt m.b.v. OpenCL, oftewel Open Computing Language.

MacWorld heeft al een uitgebreid artikel geschreven over wat OpenCL nu precies is en wat de potentie van het aanspreken van de GPU belooft te zijn. Waar ze een beetje aan voorbij gaan, is wat we nu zometeen concreet aan performance gains kunnen verwachten.

Wat zal OpenCL in staat zijn te accelereren, en wat zullen developers ook concreet gaan gebruiken? Apple heeft net een nieuwe reeks MacBooks en Pro's gelanceerd en zeker gezien het feit dat de nieuwe MacBook Pro een extra rappe videokaart aan boord heeft, denk ik dat de antwoorden op deze vragen best wel van invloed kunnen zijn op de keuzes van veel Tweakers :)

Edit:

Nog wat interessant leesvoer:
General-purpose computing on graphics processing units op Wikipedia, waar wat meer wordt uitgelegd over wat OpenCL zou moeten kunnen beloven.
Vandaag op Tweakers.net: 'Windows 7 krijgt gpu-versnelling', Microsoft is er ook mee bezig zo te zien.

[ Voor 17% gewijzigd door dawuss op 27-10-2008 19:22 . Reden: extra leesvoer ]

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • Daedalus
  • Registratie: Mei 2002
  • Niet online

Daedalus

Moderator Apple Talk

Keep tryin'

Waar GPU's heel goed in zijn, is het parallel uitvoeren van één instructie, terwijl een CPU heel erg goed is in het snel uitvoeren van verschillende instructies achter elkaar. Berekeningen die dus te paralleliseren zijn (matrix/vector berekeningen, lineaire algebra), zouden op deze manier een gigantische speedup kunnen krijgen.

Aan de andere kant: niet alles is te paralleliseren. In dat geval schiet je waarschijnlijk weinig op met iets als OpenCL. Daar komt nog bij dat GPU's gemaakt zijn om er snel veel data in te kunnen stoppen, maar data terug krijgen is een stuk trager.

Dus ja, het is een interessante ontwikkeling om te zien dat het makkelijker wordt om een GPU in te zetten voor iets anders als games, maar zitten zeker nog wat beperkingen aan. Vooralsnog is dit alleen interessant voor de mensen die grote berekeningen moeten doen, en in de nabije toekomst voormensen die veelvuldig gebruik maken van de filters van Photoshop of Final Cut Pro. Voor de gemiddelde computergebruiker is het minder interessant.

“You know what I've noticed Hobbes? Things don't bug you if you don't think about them. So from now on, I simply won't think about anything I don't like, and I'll be happy all the time!” | 宇多田ヒカル \o/


  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
Daedalus schreef op maandag 27 oktober 2008 @ 19:49:
Waar GPU's heel goed in zijn, is het parallel uitvoeren van één instructie, terwijl een CPU heel erg goed is in het snel uitvoeren van verschillende instructies achter elkaar. Berekeningen die dus te paralleliseren zijn (matrix/vector berekeningen, lineaire algebra), zouden op deze manier een gigantische speedup kunnen krijgen.
Dat klinkt wel redelijk accuraat :) Wat ik vooral begrijp (vooral van Wikipedia) is dit soort technieken vooral geschikt zijn voor "stream processing". Voor dingen als het comprimeren/decomprimeren van een zipje zou je dus zo'n kernel kunnen schrijven die dat heel goed kan, maar wat me veel interessanter lijkt is om te kijken wat je hiermee voor video kunt doen.

Een ander punt waar ik benieuwd naar ben is energieverbruik. Zal OpenCL daar positieve of negatieve gevolgen voor hebben? In principe kun je taken offloaden naar de GPU die je CPU dus vervolgens niet meer hoeft te doen. Weegt het feit dat de CPU in dat geval terug kan throttlen op tegen de extra load op de GPU?

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • burne
  • Registratie: Maart 2000
  • Niet online

burne

Mine! Waah!

Daedalus schreef op maandag 27 oktober 2008 @ 19:49:
Voor de gemiddelde computergebruiker is het minder interessant.
Totdat je een .jpeg op gaat slaan waarbij het plaatje in individuele blokken door een DCT gehaald moet worden. Dan is 64 cores op je GPU botweg 64 keer sneller opslaan, en ditto met een AVI. Leuk als je je fotoalbum edit of even een vakantievideo monteert.

I don't like facts. They have a liberal bias.


  • Daedalus
  • Registratie: Mei 2002
  • Niet online

Daedalus

Moderator Apple Talk

Keep tryin'

burne schreef op maandag 27 oktober 2008 @ 20:15:
[...]

Totdat je een .jpeg op gaat slaan waarbij het plaatje in individuele blokken door een DCT gehaald moet worden. Dan is 64 cores op je GPU botweg 64 keer sneller opslaan, en ditto met een AVI. Leuk als je je fotoalbum edit of even een vakantievideo monteert.
Misschien dat het niet zo handig als ik 'de gemiddelde gebruiker' gebruik, aangezien dat natuurlijk voor ieder weer anders ligt :+ Wat ik bedoelde met 'de gemiddelde gebruiker' is de gebruiker die voornamelijk met office applicaties, e-mail en surfen bezig is.

Als je het inderdaad hebt over de gemiddelde Apple thuisgebruiker die zit te spelen met iPhoto of iMovie, dan kan daar inderdaad nog wel veel gewonnen worden.
dawuss schreef op maandag 27 oktober 2008 @ 20:01:
[...]
Dat klinkt wel redelijk accuraat :) Wat ik vooral begrijp (vooral van Wikipedia) is dit soort technieken vooral geschikt zijn voor "stream processing". Voor dingen als het comprimeren/decomprimeren van een zipje zou je dus zo'n kernel kunnen schrijven die dat heel goed kan, maar wat me veel interessanter lijkt is om te kijken wat je hiermee voor video kunt doen.
Er zit in Final Cut Pro een component met de naam RT Extreme, wat een deel van taken naar de GPU kan verplaatsen en zo de real-time rendering van effecten versnellen. Daarnaast kan Motion ook al gebruik maken van de GPU voor real-time rendering.

Wellicht dat OpenCL in de eerste instantie hier geen verbetering gaat brengen (de plugins zullen waarschijnlijk eerst moeten worden herschreven), maar optimalisaties in OpenCL zorgt er wel direct voor dat software die dit gebruikt er ook op vooruit gaat. We hebben dat al gezien door het gebruik van LLVM voor de OpenGL stack in Leopard, wat een versnelling van de softwarerender heeft gebracht.
Een ander punt waar ik benieuwd naar ben is energieverbruik. Zal OpenCL daar positieve of negatieve gevolgen voor hebben? In principe kun je taken offloaden naar de GPU die je CPU dus vervolgens niet meer hoeft te doen. Weegt het feit dat de CPU in dat geval terug kan throttlen op tegen de extra load op de GPU?
Als je taken naar de GPU kunt verplaatsen, ben je waarschijnlijk een stuk sneller klaar. Aan de andere kant verbruikt de GPU nu wel veel meer energie dan als alle taken op CPU zouden worden uitgevoerd. Dus ja, je zal wel veel meer watt per uur verstoken. Aan de andere kant ben je waarschijnlijk een stuk sneller klaar, dus het is nog de vraag of die totale energie die je hebt verstookt uiteindelijk minder is dan als je dezelfde taak alleen op de CPU zou uitvoeren. Ik heb geen idee hoe energie-efficiënt GPU's eigenlijk zijn.

“You know what I've noticed Hobbes? Things don't bug you if you don't think about them. So from now on, I simply won't think about anything I don't like, and I'll be happy all the time!” | 宇多田ヒカル \o/


  • terracide
  • Registratie: April 2001
  • Laatst online: 05-02 07:49
Ik heb gehoord dat veel major audio applicaties in hun nieuwe updates dit OpenCL gaan ondersteunen. Dat wordt wel heel vet want CPU is echt iets wat er snel aangaat met audio bewerking. Zeker realtime dingen zoals VST instrumenten met effecten die kunnen heel veel baat hebben met OpenCL. Je kan zometeen gewoon je GPU als DSP gebruiken, daar is ie zeer geschikt voor schijnt. Ik hoop dat dit platform een goed alternatief wordt voor kaarten als UAD of Powercore. Misschien dat deze laatste kaarten gewoon wel OpenCL ernaast supporten (bedenk dit zelf, ik weenie of dit echt kan.. )
Ik denk dat er een mooie tijd aankomt voor de muziekmakelarij.

  • froggie
  • Registratie: November 2001
  • Laatst online: 20-11-2024

froggie

Kwaaak

Ik volg de ontwikkelingen op dit gebied met veel intresse. De lastigheid in het geheel zit hem in het feit dat moderne GPU's volgens het SIMD model werken waar hedendaagse CPU's volgens het MIMD model werken. Het probleem wat je wil oplossen moet zich dus wel laten vertalen naar dat model, met andere woorden; pas wanneer je een grote hoeveelheid data hebt waar je parallel dezelfde bewerkingen op kunt uitvoeren mapt dit probleem echt goed naar een GPU. Neemt natuurlijk niet weg dat je helemaal geen MIMD dingen kunt doen, maar het echt volledig benutten van alle stream processors in bijvoorbeeld de G80 is lastig.

Desondanks ben ik benieuwd naar de mogelijkheden :)
Pagina: 1