AMD und die Herausforderungen mit OpenCL

AMDVor kurzem noch hatte AMD auf einer Pressekonferrenz vollmundig angekündigt, dass man die Bullet-Physik-Bibliothek auf den offenen GPGPU-Standard OpenCL portieren werde, um somit die Leistung aktueller Grafikbeschleuniger auch für die offene Physik-Schnittstelle nutzbar zu machen.

Soweit so gut. Nun wurde allerdings bekannt, dass die Entwickler von Bullet für die Portierung nicht AMDs aktuelle Grafikbeschleuniger, nämlich die eben vorgestellte Evergreen-Generation alias Radeon 5870, als Grundlage für ihre Arbeiten verwenden, sondern offensichtlich Nvidia-Hardware bevorzugen. Nvidia sogar für einen großartigen Technologie-Partner halten. Erwin Coumans, CEO Bullets, wird wie folgt zitiert:

"ATI’s Bullet GPU acceleration via Open CL will work with any compliant drivers, we use NVIDIA Geforce cards for our development and even use code from their OpenCL SDK."

Die enge Zusammenarbeit mit Nvidia verwundert bei näherer Betrachtung nicht, denn das Team um Bullet hatte schon auf der GDC dieses Jahr verschiedene Physik-Demos auf Basis von Nvidias GPGPU-Schnittstelle CUDA vorgestellt und ist insofern schon an die Nvidia-Hardware und die dazugehörige Entwicklungsplattform gewöhnt, die seit Mai in einer Betaversion auch OpenCL unterstützt. Und da OpenCL ein offener Standard ist, werden letztlich wohl auch die AMD/ATI-Karten die GPU-beschleunigte Version von Bullet nutzen können.

Der Bericht zeigt aber, dass AMD offensichtlich deutlich mehr Schwierigkeiten mit den OpenCL-Treibern für seine Grafikkarten hat als Nvidia. Erst kürzlich wurde bekannt, dass AMDs OpenCL-GPU-Treiber zwar prinzipiell fertig seien, man aber noch auf eine Zertifizierung durch die Khronos-Group warte, die für OpenCL zuständig ist. Für die CPUs von AMD gibt es dagegen schon seit Anfang September eine OpenCL-Entwicklungsumgebung als Betaversion, die speziell die parallele Berechnung verbessern soll.
OpenCL ist für AMD wichtig, weil man die zukünftigen Kombi-Chips aus CPU und GPU (Codename Llano und Ontario) auf den eigenen Roadmaps als APU, also "Accelerated Processing Unit" bezeichnet. Das lässt sich eigentlich nur auf Basis von OpenCL gut vermarkten, da man hiermit gleichzeitig CPU- als auch GPU-Kerne ansteuern kann, je nachdem welche Architektur für bestimmte Berechnungen effizienter ist.

Hintergrund zu GPGPU: Mit der Programmierbarkeit der Shader in aktuellen Grafikkarten lassen sich diese weitgehend frei auch als Co-Prozessoren nutzen. Durch die enorme Anzahl an Rechenwerken können bestimmte Berechnungen auf modernen Pixelbeschleunigern deutlich schneller ausgeführt werden als auf den CPUs. So können Grafikkarten für Rechenoperationen, die sich gut in mehrere parallele Prozesse (so genannte Threads) aufteilen lassen, durchaus nützlich sein. Dagegen sind die CPUs immer noch deutlich schneller, wenn es um die Verarbeitung einzelner, serieller Prozesse geht, bei denen eine Parallelisierung schwierig ist.
Um die Grafikkarten überhaupt ansteuern zu können, gibt es verschiedene Schnittstellen. Nvidia hat sehr früh mit CUDA einen eigenen Standard etabliert, während AMD/ATI versucht haben, ihr ebenfalls proprietäres Stream (Brook+) dagegen zu stellen. Das Problem für Entwickler ist deshalb, dass sie zwei Standards unterstützen müssten, um sowohl Nvidia- als auch ATI-Grafikkarten für die Beschleunigung nutzen zu können. Dieser zusätzliche Aufwand schreckte bisher offensichtlich viele Programmierer ab, wobei Nvidia mit CUDA aber noch deutlich mehr Entwickler gewinnen konnte als AMD mit Stream.

Ein offener Standard, den theoretisch jede Firma nutzen kann und der auch betriebssystemübergreifend funktioniert, ist nun in Form von OpenCL greifbar. Für den offenen Standard ist die Khronos-Group zuständig, die auch die Grafikschnittstelle OpenGL betreut. OpenCL erlaubt es, die Berechnungen auf CPU- und GPU-Kerne zu verteilen, je nach dem, welche Art von Daten man verarbeiten muss.
Microsoft hat dagegen speziell für Windows die ComputeShader in DirectX 11 integriert, die ebenfalls eine freie Programmierung der GPUs von beiden Firmen erlauben, aber eben auf Windows beschränkt sind.
Zwar haben aktuelle Grafikkarten eine deutlich höhere "Roh"-Rechenleistung als CPUs, diese Leistung lässt sich aber deutlich schwerer nutzen und ein Großteil der möglichen Rechenkraft verpufft aufgrund verschiedenartiger Probleme wie die geringe Anbindung via PCI-Express oder auch die Schwierigkeit, Berechnungen zu parallelisieren.

Edit: Der Titel der News wurde nach überzeugender Kritik von "AMD und die Probleme mit OpenCL" geändert in "AMD und die Herausforderungen mit OpenCL"


Kommentar schreiben

  • Loggen Sie sich oben mit ihren Benutzerdaten ein, um Kommentare zu verfassen.
  • Falls Sie noch kein Mitglied sind, können Sie sich in unserem Forum registrieren.

12 Kommentare

12.) isigrim 27.09.2009 - 14:33 Uhr
Nachdem die Kritik am News-Titel überzeugend ist, habe ich nun Phenocores Vorschlag aufgenommen. Tatsächlich war es auch nicht so negativ gemeint, wie es hier aufgenommen wird und "Herausforderungen" trifft es wohl besser.
Danke für die Kritik!

@SirGollum:
OpenCL for Nvidia
Die Treiber wurden am 12.05.09 veröffentlicht. Naja gut, sind eher 4 Monate als ein halbes Jahr....hatte ich falsch im Kopf.
11.) SirGollum 27.09.2009 - 13:57 Uhr
@isigrim
Okay das kann ich natürlich verstehen aber du spekulierst ja auch nur mit Larabee. Keiner weiß ob Intel dann auch "Probleme" mit OpenCL hat und die GPU`s, wie du schon sagtest, als Coprozessor zu nutzen. Intel hat es ja immoment noch nicht mal geschafft eine Demonstration von Larabee zuzeigen welche an die Grafikleistung der heutigen Generation von AMD und Nvidia rankommt. Aber natürlich gebe ich dir auch recht, AMD muss sich beeilen. Der Larabee-Chip ist ja schon alleine von der Architektur schon als Co-Prozessor geeignet( viele kleine x86 kerne).

Und woher weißt du das Nvidia schon seit über einem halben Jahr mit OpenCl arbeitet, hast du da bitte mal einen Link oder so?

@Phenocore
Diese Überschrift würde ich auch besser finden, da es die Situation besser darstellt und man nicht gleich mit einem negativen "Eindruck" sich diesen Bericht durchliest.

@(th)
Da könntest du natürlich recht haben das die "Probleme" auch mit der Khronos Gruppe zutun haben, aber es ist natürlich auch nur ein "verdacht" von dir. Klar hatte die Khronos Gruppe mit OpenGL große Probleme aber das muss ja nicht zwangsläufig auch bei OpenCl so sein.
10.) (th) 27.09.2009 - 13:35 Uhr
die Überschrift ist ungefähr auf dem Niveau wie "Atis Filterqualität nur scheinbar besser"...
Oh mein Gott - Bullet hat Nvidia genutzt!
Und AMD hat anscheinend doch echte Probleme mit openCL!
Die Wahrheit ist doch eher, dass die Khronos Gruppe Probleme hat. Überhaupt läuft da doch ziemlich viel schief - siehe OpenGL 3.0...
Aber ansonsten ein interessanter Artikel :) Und natürlich die Kommentare :)
9.) Phenocore 27.09.2009 - 12:19 Uhr
isigrim:
@SirGollum
AMD hat gegenüber Intel den Vorteil, dass man leistungsfähige CPUs und leistungsfähige (heißt hier für GPGPU geeignete) GPUs aus einer Hand anbieten kann. OpenCL bietet die Möglichkeit, das zu nutzen, um so AMDs Plattform Konzept als Alleinstellungsmerkmal gerade mit OpenCL zu vermarkten. [...]
AMD sollte deshalb seinen Plattformvorteil so schnell wie möglich ausspielen und viel Energie in diesen Bereich stecken. (Auch wenn ich der Ansicht bin, dass es noch dauert, bis Intel hier etwas Vergleichbares im Bereich GPU bieten kann.) Mein Hinweis war also eher auf OpenCL und GPUs als Coprozessoren allgemein bezogen, als rein auf Physik-Engines.


Was du hier beschreibst, würde ich eher als "Herausforderung" bezeichnen, als ein "Problem". Inhaltlich gesehen kann ich dir hier komplett zustimmen, nur ist leider das Wort "Problem" zu sehr negativ behaftet, obwohl es wie das Wort "Herausforderung" eine Problemstellung als Ausgangssituation hat. "Herausforderung" unterstreicht aber, dass man mit der Lösung der Problemstellung nicht nur die Risiken beseitigen kann, sondern eben auch neue Chancen für sich erschließt.
"AMD und die Herausforderungen mit OpenCL" wäre da imho eine treffendere Überschrift.

[size=85:33uaxk03](Aber das ist jetzt hier Kritik auf hohem Niveau, ich hoffe, du lässt dich davon nicht entmutigen.)[/size:33uaxk03]
8.) isigrim 27.09.2009 - 11:48 Uhr
Ja, Treiberproblem impliziert, dass man einen Treiber hat, der nicht so funktioniert, wie er soll. "Problem mit Treiberabteilung" heißt, gar keinen oder erst sehr spät überhaupt einen Treiber zu haben. Der kann ja dann ganz gut, wenn er erstmal da ist.

Im übrigen hat AMD bekannt gegeben, dass man bis Ende des Jahres seine Stream-Entwicklungsumgebung komplett für OpenCL fit machen will, also für CPUs und GPUs. Aber dann kann eben erst die Entwicklung anfangen. Für Nvidia Karten gibt es schon seit beinahe einem halben Jahr eine Entwicklungsumgebung die OpenCL unterstützt.
7.) Duplex 27.09.2009 - 11:32 Uhr
Phenocore , ich meine , man kann kein Rückstand haben , in Sachen was einen nicht gehören DX11 ist für beide gleich , somit kann keiner der beiden einen Rückstand oder Vorsprung darauf Arbeiten

wen du sagen würdest Nvidia hat ein Rückstand in sachen Hardware zurzeit , damit wäre ich zufrieden =D

Edit:

isigrim:


@Duplex
Weniger ging es um Probleme mit dem Treiber, als um Probleme mit der Treiberabteilung. Meiner Meinung nach sollte AMD sehr viel Energie darauf verwenden im GPGPU-Bereich aufzuholen, denn Nvidia ist da tatsächlich sehr gut. AMD hat durchaus gute Produkte, die auch eine Menge Potenzial haben, aber man muss es auch ausschöpfen!



Hats einen unterschied zwischen "Treiberproblemen" und "Probleme mit der Treiberabteilung" =D ?
6.) isigrim 27.09.2009 - 10:52 Uhr
@SirGollum
AMD hat gegenüber Intel den Vorteil, dass man leistungsfähige CPUs und leistungsfähige (heißt hier für GPGPU geeignete) GPUs aus einer Hand anbieten kann. OpenCL bietet die Möglichkeit, das zu nutzen, um so AMDs Plattform Konzept als Alleinstellungsmerkmal gerade mit OpenCL zu vermarkten. Intel hat momentan im Grafikbereich nichts vergleichbares. Larabee machte jedenfalls auf mich noch keinen sonderlich überzeugenden Eindruck beim IDF. Da muss auch wahrscheinlich noch einiges an Ballast abgeworfen werden, um bei Leistung pro Watt auch nur ansatzweise mit ATI und Nvidia mithalten zu können. Aber Intel hat genug Geld und den Willen Larabee weiter zu entwickeln. Zudem können auch die Befehlssätze, wie die LRBni (LarabeeNewInstructions) zukünftig in CPUs einfließen. AMD sollte deshalb seinen Plattformvorteil so schnell wie möglich ausspielen und viel Energie in diesen Bereich stecken. (Auch wenn ich der Ansicht bin, dass es noch dauert, bis Intel hier etwas Vergleichbares im Bereich GPU bieten kann.) Mein Hinweis war also eher auf OpenCL und GPUs als Coprozessoren allgemein bezogen, als rein auf Physik-Engines.

@Duplex
Weniger ging es um Probleme mit dem Treiber, als um Probleme mit der Treiberabteilung. Meiner Meinung nach sollte AMD sehr viel Energie darauf verwenden im GPGPU-Bereich aufzuholen, denn Nvidia ist da tatsächlich sehr gut. AMD hat durchaus gute Produkte, die auch eine Menge Potenzial haben, aber man muss es auch ausschöpfen!

@Phenocore
Das mit Intel stimmt, die jetzigen GPUs sind für GPGPU nicht geeignet, aber Intel steckt eben sehr viel Geld in die Entwicklung besserer Grafikbeschleuniger. Und Intel hat eben sehr viel Geld. Die Frage ist, ob man den Mangel an KnowHow zeitnah mit viel Geld ausgleichen kann ;)
5.) Phenocore 27.09.2009 - 09:39 Uhr
@isigrim
Thx für Link und Erklärung zu Brook

Duplex:

klar Nvidia hat noch keine Graka mit DX11 das ist aber kein rückstand

Was wäre dann ein Rückstand?

Duplex:
und AMD hat nur lala produkte die niemand kennt und laut der news probleme mim treiber

Ja, AMD hat nur lala Produkte, weil OpenCL erst jetzt zertifiziert werden soll. Und es gibt überhaupt keine Quellen, die bestätigen würden, dass AMD mit dem Treiber Probleme hätte. Es sagt ja auch keiner, dass nVidia Probleme mit DX11-Treibern hätte, nur weil sie noch nix mit DX11 anbieten. Warum soll also dann AMD zwangsweise Probleme haben, wenn sie etwas später OpenCL-Treiber bringen? Die Treiber sind übrigens schon da, denn sonnst könnte man ja nix zertifizieren lassen, also von welchen Problemen sprechen wir hier gerade?

---

Dass Intel mit integrierten GPUs Martführer ist, tut überhaupt nichts zur Sache, denn deren integrierten GPUs können gar kein GPGPU. Die Treiber und Leistung der GPUs sind grad so gut, dass man Vista Aero darstellen kann und das wars im Großen und Ganzen auch schon.

AMD kommt mit OpenCL-Treibern später als nVidia. Intel hat weder Treiber noch die Hardware in Form von Larrabee vorliegen.
4.) Duplex 27.09.2009 - 09:09 Uhr
intel ist markführer in Grafikeinheiten =D


jedoch steht AMD zurzeit ohne vergleichbares da

Nvidia hat Cuda + ne menge erfahrung und GPU gar drauf angepasst
Intel hat Havok + Larrabee was wohl richtig power in sowas bieten wird dank X86


und absolut niemand ist im Rückstand in sachen Dx11

es gibt kein besseres oder schlechteres DX11
klar Nvidia hat noch keine Graka mit DX11 das ist aber kein rückstand

Dx11 wird sich bei sowas auch nicht als Monopol durchsetzen wie es mit OpenGL der fall war , den Linux , Mac ect. boomt zurzeit ebenfals , und der trend geht deutlich in sachen GPGPU
und AMD hat nur lala produkte die niemand kennt und laut der news probleme mim treiber
3.) SirGollum 27.09.2009 - 02:47 Uhr
Ich denke auch nicht das AMD Probleme mit OpenCL hat, sonder wie schon gesagt wurde viele Nvidia-Hardware haben weil Nvidia früher auf diesen "Zug" aufgesprungen ist. Wie Phenocore schon sagte wird sich das mit der DX-11 Generation ändern.

@ isigrim
warum sollte AMD in diesem Bereich Intel ausspielen? Intel hat HAvok gekauft und AMD arbeitet auch mit Havok (Intel) zusammen also was hat das mit Intel zutun? Intel hat immoment nicht mal eine Grafikkarte und darum geht es in diesem Bericht also sag mir bitte wie du das genau meinst. Weil so wie du es geschrieben hast ergibt das für mich grade keinen sinn :s
2.) isigrim 26.09.2009 - 20:58 Uhr
Brook+ ist, wie Du richtig vermutet hast, eine Anpassung von Brook der Stanford University (das eigentlich auch ein offener Standard ist) auf ATIs CAL (Compute Abstraction Layer). Hier ist ein Link mit einer PDF Präsentation dazu: AMD-Brookplus.pdf.(Allerdings schon etwas älter)
Hier ist noch eine gute Präsentation zu AMD Stream Computing (von Alexander Martens, Uni Mainz).

"Probleme" deshalb, weil AMD eigentlich, wie im Artikel erwähnt, auf OpenCL angewiesen ist, um seine Vorteile gegenüber Intel auszuspielen. Und dafür braucht AMD sehr lange für die nötige Treiberunterstützung und die Zeit spielt hier für Intel.
1.) Phenocore 26.09.2009 - 20:38 Uhr
"ATI Stream" ist an sich nicht proprietär, sondern beschreibt nur die Fähigkeit andere Aufgaben als Grafik auf der GPU zu berechnen.
Proprietär ist die Schnittstelle CAL, die AMD aber im Gegensatz zu Nvidias CUDA-API fallen gelassen hat und sich nun eben auf OpenCL konzentriert.

Brook+ sagt mir jetzt irgendwie nichts. Gibts dafür ein Link oder Erklärung vom Newsschreiber? Oder ist das ein anderer Begriff für CAL?

Ich würde auch nicht sagen, das AMD irgendwelche Schwierigkeiten mit OpenCL hätten. nVidia hat bloß mit dem G200 viel in Richtung GPGPU optimiert. AMD hat diese Optimierungen mit DX11-Grafikkarten vorgenommen. Sie sind also bloß im Rückstand, (so wie nVidia mit DX11 im Rückstand ist.)

Was man AMD vorwerfen kann, ist das sie mit Spiele- und Physik-Entwicklern nicht so eng arbeiten, wie das nVidia tut, weswegen auch vieles auf nVidia-Hardware entwickelt wird.