AMD: Herausforderungen mit OpenCL (Teil 2)

AMDVor einem knappen halben Jahr hatten wir über die Probleme und Herausforderungen berichtet, denen sich AMD mit OpenCL zu stellen hatte. Heute ist es Zeit, einen erneuten Blick auf die Situation zu werfen, um den Verlauf der Entwicklungen genauer darstellen zu können. Es geht dabei um AMDs OpenCL-Unterstützung, die ein zentraler Aspekt von AMDs Fusion-Strategie ist, um den GPU-Part der Fusion-CPUs für allgemeine Berechnungen nutzen zu können.

Im September 2009 hatte AMD mit seiner Open Physics-Initiative begonnen und wollte damit einen offenen, GPU-beschleunigten Physik-Standard mit Hilfe der Physik-API Bullet etablieren. Dabei sollte primär OpenCL genutzt werden, um die Berechnungen auf die Pixelbeschleuniger auszulagern, wichtig war dabei von Anfang an die offene Unterstützung auch der Konkurrenz aus dem Hause Nvidia. Sehr schnell gab man dann bei Bullet bekannt, dass man auch für die von AMD beworbene Portierung der Bullet-Physik-Bibliothek auf die GPU Nvidias OpenCL-SDK nutze, da AMDs eigene Treiber damals noch nicht weit genug gediehen waren. Lediglich AMDs CPU-Treiber für OpenCL waren fertig, die GPU-Treiber warteten dagegen noch auf die Zertifizierung durch die Khronos-Gruppe. Inzwischen hat AMD hier stark aufgeholt und die OpenCL-Treiber offiziell in seine Catalyst-Software-Suite eingebaut. Auch das Stream-SDK unterstützt seit der Version 2.0 die Entwicklung von OpenCL-Software für CPUs und GPUs.

Gestern konnte AMD auch endlich die Früchte der Portierung von Bullet auf OpenCL ankündigen. Teile von Bullet wurden dabei in die Physik-Bibliothek "Digital Molecular Matter 2" - kurz DMM2 - der Firma Pixelux Entertainment integriert und ermöglichen dadurch eine GPU-beschleunigte Physik-Brechnung. Eine Entwicklungsumgebung von DMM2 soll es für Windows sogar kostenlos geben, während für die Cross-Platform-Lizenz Gebühren anfallen werden. Auch Bullet selbst soll nun bald in der Version 3.0 fertig sein und damit Grafikkarten zur Berechnung von Physikeffekten nutzen können. Ein besonders interessantes Feature dürfte dabei die Unterstützung von "Smoothed Particle Hydordynamics" sein, das es ermöglicht, Flüssigkeiten und Gase unabhängig von einer fest umgrenzten Domain auf Partikelbasis zu berechnen. Daneben soll aber auch die Beschleunigung von Kleidungs- und Stoffsimulationen mittels Grafikkarte möglich sein. AMD will bald die ersten Demos zeigen.
Gestern hat Richard Huddy von AMD übrigens in einem Interview geäußert, PhysX werde hauptsächlich deshalb von Studios genutzt, weil sie von Nvidia dafür bezahlt würden, es einzusetzen, nicht weil es die Studios selbst wollten. Einzig Epic, der Entwickler der Unreal-Engine, habe PhysX aus freien Stücken implementiert.

Inzwischen gibt es auch andere, freie Programme, die auf OpenCL zur Beschleunigung der Berechnungen setzen. Einen besonderen Blick verdient hierbei die OpenCL-Anpassung der Open Source-Renderengine Luxrender, die ebenfalls als OpenSource-Projekt entwickelt wird.

Luxrender OpenCL

Der Autor nutzt einen Core i7 860 und eine Radeon HD 5870 und die bisher erzielten Ergebnisse sprechen für sich. Auf der CPU alleine schafft sein System 57.000 Samples/s, während es dagegen unter Zuhilfenahme der Radeon HD 5870 202.000 Samples/s sind. OpenCL sorgt hier also für die vierfache Geschwindigkeit. Inzwischen hat der Autor aus Begeisterung über den enormen Geschwindigkeitsvorteil noch eine HD 5850 in seinen Rechner eingebaut. Bei der Entwicklung soll eine freie OpenCL-Raytracing-Bibliothek namens LuxRays entstehen, die dann auch für andere Raytracing-Programme zur Verfügung steht. Derzeit ist das Projekt allerdings noch heftig in der Entwicklung und es zeigen sich immer wieder Grenzen und Beschränkungen, denen das junge OpenCL noch unterworfen ist. Deshalb arbeitet die Khronos-Gruppe auch schon eifrig an Version 1.1 von OpenCL und fragt dabei ganz gezielt bei Entwicklern nach, wo Verbesserungsbedarf besteht.
Wer das Ganze einmal selbst ausprobieren will, sollte sich im Forum bei Luxrender anmelden, damit er die Entwicklung live mit verfolgen und sich immer die neuesten Versionen herunterladen kann.

AMD musste Anfang des Jahres allerdings eingestehen, dass die GPUs der Radeon HD 5000-Reihe eine deutlich bessere Unterstützung des offenen GPGPU-Standards erhalten würden, weil die älteren Modelle der HD 4000-Serie schlicht vor der Festlegung der Spezifikationen von OpenCL fertig entwickelt gewesen seien und damit keine Anpassungen mehr möglich waren. Erst die HD 5000-Reihe wurde also speziell für OpenCL optimiert und erzielt daher bei gleicher Shaderzahl - RV770 und Juniper - deutlich bessere Werte.

Ein großer Vorteil für die Verbreitung von OpenCL dürfte die Verspätung von Nvidias Fermi-Architektur und die damit verbundene, starke Marktdurchdringung von AMDs Radeon HD 5000-Reihe sein. Denn je mehr Nutzer eine ATI-Grafikkarte im System haben, desto mehr Interesse dürfte OpenCL auch bei den Entwicklern finden. AMD muss nun allerdings noch einiges an PR-Arbeit leisten, damit zum Start der Fusion-CPUs in knapp einem Jahr möglichst viele OpenCL-Programme zur Verfügung stehen.


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.

4 Kommentare

4.) isigrim 10.03.2010 - 20:36 Uhr
@Dampfkanes
Tatsächlich wäre der Satz umgekehrt leichter zu verstehen: Je weniger Leute eine nvidia-Karte haben, desto weniger Interesse haben die Entwickler an CUDA. Der Satz den ich geschrieben habe ist quasi nur die Umkehrung davon. Wenn mehr Leute eine ATI-Karte haben, die kein CUDA unterstützen, müssen sich die Entwickler zwangsläufig verstärkt OpenCL zuwenden um große Kundenkreise via GPGPU zu erschließen. Bisher war CUDA einfach für viele Projekte attraktiver, da es deutlich weiter entwickelt ist, als OpenCL. Die gute Akzeptanz der Radeon HD 5000er Karten dürfte das etwas abbremsen.

@Exey
Danke für das Lob!

@Daedalus
Ich wäre gerne in der Lage mit OpenCL zu programmieren und habe auch mal kurz angefangen, aber leider fehlt mir die zeit mich da einzuarbeiten. Der Titel ist vor allem eine Anspielung auf den ersten Teil, der ganz ursprünglich hieß: "AMD und ie Probleme mit OpenCL", dann aber nach überzeugender Kritik geändert wurde in "AMD und die Herausforderungen mit OpenCL". Herausforderung damals waren vorallem ordentliche Treiber, jetzt ist es inzwischen mehr eine PR-Herausforderung.
3.) Dampfkanes 10.03.2010 - 18:17 Uhr
der Sinn dieses Satzes will sich mir nicht so recht erschliessen: "Denn je mehr Nutzer eine ATI-Grafikkarte im System haben, desto mehr Interesse dürfte OpenCL auch bei den Entwicklern finden."

Da OpenCL sowohl auf nVidia- oder ATI-Grakas läuft, ist es doch keine Sache, die darauf angewiesen ist, dass es mehr Grafikkarten des einen oder anderen Herstellers in Kundenhand gibt.
Letztendlich ist es aber in der Tat zu begrüßen, dass ATI anscheinend Fortschritte bei den Treibern hinsichtlich OpenCL macht. So lange es hier nämlich nur eine brauchbare Umsetzung eines Herstellers gibt/gab, war/wäre OpenCL quasi genauso wie Cuda oder Stream "hersteller-spezifisch".
2.) Daedalus 10.03.2010 - 09:00 Uhr
Ich finde den Artikel zwar nicht schlecht geschrieben, den Titel aber verwirrend. Der Titel suggeriert, dass der Autor OpenCL selbst nutzen wollte / will, also programmiert. Das ist dann mal ne Herausforderung ;)
1.) Exey 09.03.2010 - 09:49 Uhr
ich muss Hardware-infos einfach ein Lob aussprechen! Eure Berichte und News sind sehr gut!

Sie sind interessant, nicht zu lang aber ausführlich genung und immer leicht verständlich.

Inzwischen komme ich jeden Tag mehrfach auf die Seite um Berichte und Kommentare zu lesen.

Macht weiter so.

Exey