OpenCL Spezifikation in der Version 1.0 veröffentlicht

Nero24

Administrator
Teammitglied
Mitglied seit
01.07.2000
Beiträge
24.066
Renomée
10.446
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2020
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2021
Grafikkarten-Computing - also die Nutzung des Grafikkerns für allgemeine Berechnungen, nicht (nur) für grafische - ist derzeit in aller Munde und das nicht erst seit AMD seine neue <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1221724936">Fusion-Familie</a> angekündigt hat, die neben CPU-Kernen auch GPU-Kerne direkt im Prozessor enthalten wird. Der Vorteil einer GPU gegenüber einer CPU liegt in ihrem enormen Durchsatz aufgrund der zahlreichen Shader-Prozessoren. Diese theoretische Peak-Leistung für normale Berechnungen nutzbar zu machen ist momentan das Bestreben sowohl von NVIDIA, als auch von AMD.

NVIDIA ist mit dem Thema GPGPU schon recht weit. Um die sich teilweise stark voneinander unterscheidenden GPUs nicht direkt programmieren zu müssen und sich damit in eine ungewollte Architektur-Abhängigkeit zu begeben, kann Grafikkarten-Computing nur über eine API, also eine standardisierte Schnittstelle, eine Zukunft haben. Bei NVIDIA hat man sich für das Eigengewächs CUDA entschieden. CUDA setzt direkt auf den NVIDIA Grafikkarten-Treiber auf und sorgt dafür, dass die Instruktionen in möglichst kleine Häppchen zerteilt und auf die zahlreichen Shader-Prozessoren der GPUs verteilt werden.

Was CUDA für NVIDIA-GPUs ist, soll OpenCL (Open Computing Language) für alle möglichen GPUs werden, also eine frei verfügbare API für GPGPU-Computing, die nicht an die Produkte eines bestimmten Herstellers gebunden ist; ähnlich wie es OpenGL im Grafikbereich darstellt. Vor einigen Tagen nun ist die Spezifikation für OpenCL in der finalen Version 1.0 veröffentlicht worden. Das Dokument enthält Definitionen zu Datentypen und Objekten. Ferner werden Header-Dateien angeboten, die direkt in bestehende Quellcodes eingebunden werden können.

Die nächsten Monate werden zeigen wie die Hersteller auf OpenCL reagieren, denn der Hauptkonkurrent von OpenCL ist nicht CUDA, sondern das kommende DirectX 11 von Microsoft, das ebenfalls GPGPU Elemente enthalten soll. Ob der Vorteil von OpenCL, nicht auf die Windows-Plattform beschränkt zu sein, eine Relevanz bei seiner Verbreitung haben wird, muss sich zeigen. AMD hat jedoch bereits <a href="http://www.planet3dnow.de/vbulletin/showthread.php?t=352698">angekündigt OpenCL nutzen zu wollen</A>.

<b>Links zum Thema:</b><ul><li><a href="http://www.planet3dnow.de/vbulletin/showthread.php?t=352699">Pressemitteilung</a></li><li><a href="http://www.planet3dnow.de/vbulletin/showthread.php?t=352698">AMD Adopts OpenCL 1.0 Specification</A></li><li><a href="http://www.khronos.org/registry/cl/" target="_blank"> Khronos OpenCL API Registry</a></li><li><a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1228389460">AMD Stream Computing</a></li><li><a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1223972863">Rasante Aufholjagd des Distributed Computing Teams bei PS3Grid</a></li><li><a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1221724936">AMD erklärt den neuen Fusion Prozessor</a></li></ul>
 
Na, man kann nur hoffen, dass OpenCL seine Anwendung in der gewissen Breite finden wird - schliesslich soll es die Unterstuetzung bei grossen GPU Hersteller haben (Gibt es zu diesem Thema auch Auesserungen von anderen - sprich z.B. VIA S3?).

Denn wenn sich alle Hersteller sich auf DirectX 11 fokussieren, schauen alle Nichtwindows 7/Vista Nutzer in die Roehre.
Da dann anzunehmen ist, dass OpenCL nicht mehr so gut unterstuetzt werden wird.

Sprich nun muesste schnell die Killlerapplikation her fuer OpenCL - dann haben alle etwas daovn... oder?
Gibt es da schon brauchbare Kandidaten? Oder wird der Nutzen von OpenCL auf einen kleinen Kreis/Anwendungen beschraenkt bleiben?

Es gilt zu hoffen, dass sich OpenCL durchsetzt, da dann alle (neuen) GPU etwas von haben (CUDA ist ja NVidea Hardware gebunden) haben und es auch plattformuebergreifend zu Verfuegung steht (sprich z.B. Windows und Linux)...

Alles andere waere doch ein Handicap...
 
Sowohl nVidia als auch AMD werden den Standard in Rekordzeit umsetzen. AMD will im 1. Hj09 den Entwicklern schon etwas zur Verfügung stellen.
OpenCL wurde in wenigen Monaten entwickelt und verabschiedet. Für einen offenen Standard rekordverdächtig. Das zeigt wie hoch das Interesse der Hersteller ist hier Fortschritte zu machen.

Im ersten Quartal 09 gibt es noch Verbesserungen des ATI Stream SDK. Diese bringt u.a. eine bessere Unterstützung von Brook+. So soll hinzu kommen Multi-GPU-Unterstützung und ermöglicht das verschiedene Threads auf einen gemeinsamen Datenbestand zugreifen können. Gerade letzterer Punkt ist zur Zeit noch eine ziemliche Einschränkung, da Threads ohne nur schwer miteinander kommunizieren können.
 
ich denke opencl hat keine schlechten karten sich gegen MS behaupten zu können, wird es doch auch unter dx9 sprich unter xp funktionieren und man nicht von vista bzw windows7 abhängig ist.

und da die verbreitung von xp immer noch sehr sehr groß ist, spricht eben einiges für open cl.
 
ich denke opencl hat keine schlechten karten sich gegen MS behaupten zu können, wird es doch auch unter dx9 sprich unter xp funktionieren und man nicht von vista bzw windows7 abhängig ist.

und da die verbreitung von xp immer noch sehr sehr groß ist, spricht eben einiges für open cl.

Ich glaube auch das DirectX nur 2. Wahl sein wird, weil viele Hersteller nicht nur unter Windows vertreten sind, sondern bedienen auch Apple. Und Apple hat sich nun mal früh auf OpenCl festgelegt. Wenn ich als Hersteller wie Adobe schon OpenCL-Knowhow habe, wird man nicht mit DirectX anfangen.
Adobe hat sich deswegen z.B. bei der GPU-Beschleunigun von Photoshop auch für offene Standards wie OpenGL entschieden und nicht CUDA oder ähnliches.
 
... und ermöglicht das verschiedene Threads auf einen gemeinsamen Datenbestand zugreifen können. Gerade letzterer Punkt ist zur Zeit noch eine ziemliche Einschränkung, da Threads ohne nur schwer miteinander kommunizieren können.
Kann man da im Hintergrund die kleinen Caches sehen, die AMD bei den RV770 eingeführt hat, oder beschränkt sich der geschilderte Sachverhalt nur auf die Hochsprache ?

Ansonsten habe die es mit OpenCL wirklich eilig, vor 2-3 Wochen, als der Standard fertig war, aber noch nicht veröffentlicht, hieß es, dass man jetzt mindestens 30 Tage abwarten müsse in denen die Rechtsanwälte der beteiligten Firmen alles überprüfen:
http://www.planet3dnow.de/vbulletin/showthread.php?p=3786858#post3786858

Und jetzt wird doch schon vorher veröffentlicht :w_zipfel: :w_verwirrt:

Naja mir solls recht sein :)

DX sehe ich bei den Spieleherstellern vorne ... die benützen eh schon das "normale" DX, also wieso wechseln, Apple hat eh kein Grafik DX. Im Endeffekt wird das dann wohl auf Physik Berechnung rauslaufen. Alles andre, also "vernünftige" Software, sollte logischerweise aus Portabilitätsgründen OpenCL nehmen.

ciao

Alex
 
Zuletzt bearbeitet:
Dass nVidia immer versucht eigene Brötchen zu backen, kennen wir ja schon, ich hoffe aber dass OpenCL sich durchsetzen wird. Nur wenn die Chips eine gemeinsame Schnittstelle unterstützen ist kompatiblität gewährleistet.
Wobei Intels raytracing ( Larabee x86 ) auch eine sehr innovative Form der Grafikberechnung sein wird/wäre.
 
Dass nVidia immer versucht eigene Brötchen zu backen, kennen wir ja schon, ich hoffe aber dass OpenCL sich durchsetzen wird. Nur wenn die Chips eine gemeinsame Schnittstelle unterstützen ist kompatiblität gewährleistet.
Ich behaupte mal ganz dreist, dass es ohne CUDA nicht so schnell mit OpenCL gegangen wäre, da gibts schon Ähnlichkeiten ...
Abgesehen davon ist nV auch in OpenCL Gremium, die werden wohl über kurz oder Kang auch zu OpenCL umschwenken.

Bisher gabs halt nix andres, da musste nV notgedrungen eigene Brötchen backen :)

ciao

Alex
 
OpenCL wurde in wenigen Monaten entwickelt und verabschiedet. Für einen offenen Standard rekordverdächtig.
So wie ich das verstehe, hat da Apple schon vorher mehrere Monate dran gearbeitet und dann vor ca. einem halben Jahr OpenCL schon fast "fertig" der Khronos Group vorgelegt. Ich denke ebenfalls, dass sich Apple an Cuda orientiert hat. Meine mich auch zu erinnern, dass es von Nvidia mal vor mehreren Monaten eine Aussage gab, dass Apple an Cuda sehr interessiert sei.

The OpenCL working group, formed under the auspices of the Khronos Group to implement Apple's proposed Open Computing Language, has nailed down a complete specification for OpenCL in just six months.
http://arstechnica.com/journals/app...m-delivers-spec-just-in-time-for-snow-leopard


“The opportunity to effectively unlock the capabilities of new generations of programmable compute and graphics processors drove the unprecedented level of cooperation to refine the initial proposal from Apple into the ratified OpenCL 1.0 specification,” said Neil Trevett, chair of the OpenCL working group, president of the Khronos Group and vice president at NVIDIA. “As an open, cross-platform standard, OpenCL is a fundamental technology for next generation software development that will play a central role in the Khronos API ecosystem and we look forward to seeing implementations within the next year.”

“We are excited about the industry-wide support for OpenCL,” said Bertrand Serlet, Apple's senior vice president of Software Engineering. “Apple developed OpenCL so that any application in Snow Leopard, the next major version of Mac OS X, can harness an amazing amount of computing power previously available only to graphics applications.”

http://www.khronos.org/news/press/releases/the_khronos_group_releases_opencl_1.0_specification/


btw.
Laut Nvidia laufen OpenCL-Applikationen nahtlos auf Grafikkarten, die über einen CUDA-tauglichen Treiber ins System eingebunden sind. Das sind – bis auf Mobil-Grafikchips mit proprietären Treibern der Notebook-Hersteller – praktisch alle (DirectX-10-tauglichen) Nvidia-GPUs der letzten zwei Jahre.
http://www.heise.de/newsticker/Progammierschnittstelle-OpenCL-verabschiedet--/meldung/120125
 
Zuletzt bearbeitet:
So wie ich das verstehe, hat da Apple schon vorher mehrere Monate dran gearbeitet und dann vor ca. einem halben Jahr OpenCL schon fast "fertig" der Khronos Group vorgelegt. Ich denke ebenfalls, dass sich Apple an Cuda orientiert hat. Meine mich auch zu erinnern, dass es von Nvidia mal vor mehreren Monaten eine Aussage gab, dass Apple an Cuda sehr interessiert sei.

Die von solchen Gremien oft benötigte Zeit hat meist nichts mit Arbeit zu tun. Die Ursache für lange Verfahren liegt meist an dem Gezänk unter den Herstellern. Die Tatsache das es diesmal sehr schnell ging, zeigt das man kleine Meinungsverschiedenheiten zurückstellt und sich nicht mit Kleinigkeiten aufhalten will. Man hat ein sehr großes Interesse an einem Fortschritt.
 
Die von solchen Gremien oft benötigte Zeit hat meist nichts mit Arbeit zu tun. Die Ursache für lange Verfahren liegt meist an dem Gezänk unter den Herstellern. Die Tatsache das es diesmal sehr schnell ging, zeigt das man kleine Meinungsverschiedenheiten zurückstellt und sich nicht mit Kleinigkeiten aufhalten will. Man hat ein sehr großes Interesse an einem Fortschritt.

weil man endlich wieder einen neuen markt entdeckt/geschaffen hat, um neue hardware unters volk zu bringen, das sich eigentlich schon gesättigt sah

nichtsdestotrotz freue ich mich schon auf opencl unterstützung für matlab, cuda gibts dort ja schon, wenn auch extern
 
Ich behaupte mal ganz dreist, dass es ohne CUDA nicht so schnell mit OpenCL gegangen wäre, da gibts schon Ähnlichkeiten ...
Abgesehen davon ist nV auch in OpenCL Gremium, die werden wohl über kurz oder Kang auch zu OpenCL umschwenken.

Bisher gabs halt nix andres, da musste nV notgedrungen eigene Brötchen backen :)

ciao

Alex
Ich nenne sowas ohne längfristige Planung vorpreschen, denn eine unbedingte Notwendigkeit bestand nicht.
Wäre so als würde Via mal eben einen eigenen USB3 Standart definieren, weil die anderen noch ein halbes Jahr brauchen um sich zu einigen. Der doofe ist/wäre....richtig der Endverbraucher.
 
Klasse wäre es ja wenn man irgendwann eine kleine Grafikkarte im System hätte die als Physikbeschleuniger Verwendung finden könnte. Stelle mir da was in Richtung passiv gekühlte Geforce 9600 oder Radeon 4650 vor. :w_grins:

Das könnte z.B. bestimmt bei GTA4 einiges bringen wenn die Physik komplett darüber läuft. :w_kuss:
 
Zuletzt bearbeitet:
OpenCL wird IMHO den meisten Drive aus dem (Compute-)Server-Segment bekommen, denn dort ist Windows nur eine Plattform unter - naja nicht mehr vielen, aber wenigstens einigen ;) Hersteller von Compute-Software für Server wie auch Open-Source-Software für Win, Linux, BSD, OSX, Solaris & Co. werden mit Sicherheit zu 99,9% auf OpenCL umschwenken (wenn sie z.Zt. z.B. noch CUDA nutzen) bzw. z.T. erst dank OpenCL anfangen, GPGPU zu nutzen. Bin gespannt, welche Weichwaren-Kategorien so alles diese Techniken nutzen werden - Videobearbeitung natürlich, Bildbearbeitung sicher auch, Spiele sowieso - was noch? Packer wie Bzip, Gzip & Co, sowie deren kommerziele Verwandte? Crypto-Software? Wenn erst GPUs in die CPUs integriert werden, wird das Ganze richtig interessant 8)

Und ausnahmsweise freue ich mich auch mal wieder über Apples erstarkte Marktmacht (mit ihrem DRM-Generve und sklavischen Fan-Kult gehen sie mir sonst mittlerweile reichlich auf den Senkel): wer GPGPU-beschleunigte Software für OSX entwickeln will, wird ebenfalls kaum DirectX11 nutzen, was evtl. auch wieder für mehr OpenGL-Anwendungen (also auch Spiele Spiele) sorgen wird - sicher nicht zum Missfallen von Khronos ;D - und schon garnicht zu jenem von Nutzern anderer Nicht-MS-Betriebssysteme :w_grins: :w_feiern:
 
OpenCL wird IMHO den meisten Drive aus dem (Compute-)Server-Segment bekommen, denn dort ist Windows nur eine Plattform unter - naja nicht mehr vielen, aber wenigstens einigen ;) Hersteller von Compute-Software für Server wie auch Open-Source-Software für Win, Linux, BSD, OSX, Solaris & Co. werden mit Sicherheit zu 99,9% auf OpenCL umschwenken (wenn sie z.Zt. z.B. noch CUDA nutzen) bzw. z.T. erst dank OpenCL anfangen, GPGPU zu nutzen. Bin gespannt, welche Weichwaren-Kategorien so alles diese Techniken nutzen werden - Videobearbeitung natürlich, Bildbearbeitung sicher auch, Spiele sowieso - was noch? Packer wie Bzip, Gzip & Co, sowie deren kommerziele Verwandte? Crypto-Software? Wenn erst GPUs in die CPUs integriert werden, wird das Ganze richtig interessant 8)

Crypto habe ich schon ein Beispiel im SDK gesehen. Wenn Crypto geht, sollte das auch mit Packprogrammen möglich sein, weil diese sehr ähnlich arbeiten.
Die wichtigsten Impulse auf diesem Gebiet kommen zur Zeit von den Uni's, was eine gute Voraussetzung ist. Unternehmen sind da erfahrungsgemäß etwas konservativer und träger.
 
Grad mal das AMD Pressrelease gelesen, da sind ja noch ein paar brauchbare Infos drin, die es nicht in die Meldung geschafft haben:
AMD is making good progress on its OpenCL-compliant offering and plans to release a developer version of the ATI Stream SDK with support for OpenCL 1.0 for content developers in the first half of 2009. Working from early specifications of OpenCL, AMD’s engineering team has already started running code on its initial implementation.
(...)
Building on the significant enhancements of ATI Stream SDK 1.3, version 1.4 is being designed to add finer grain data type support, graphics API interoperability, multi-GPU support and thread-level data sharing to Brook+. It is also being enhanced to add improved support for the ATI Radeon™ HD 4870 X2 graphics cards and to include support for several ATI FirePro™ 3D graphics accelerators. AMD expects to release version 1.4 of the ATI Stream SDK in the first quarter of 2009.
Das 1.3er SDK aus dem (heute?) erscheinendem 8.12 Treiber soll also "significant" sein, und 1.4 gibts nächsten Frühling, OpenCL Support (in Version 1.5?) dann bis zum Sommer ... nicht schlecht, wenn sie den Zeitplan einhalten.

ciao

Alex
 
Na, man kann nur hoffen, dass OpenCL seine Anwendung in der gewissen Breite finden wird - schliesslich soll es die Unterstuetzung bei grossen GPU Hersteller haben (Gibt es zu diesem Thema auch Auesserungen von anderen - sprich z.B. VIA S3?).

Denn wenn sich alle Hersteller sich auf DirectX 11 fokussieren, schauen alle Nichtwindows 7/Vista Nutzer in die Roehre.
Da dann anzunehmen ist, dass OpenCL nicht mehr so gut unterstuetzt werden wird.

Sprich nun muesste schnell die Killlerapplikation her fuer OpenCL - dann haben alle etwas daovn... oder?
Gibt es da schon brauchbare Kandidaten? Oder wird der Nutzen von OpenCL auf einen kleinen Kreis/Anwendungen beschraenkt bleiben?

Es gilt zu hoffen, dass sich OpenCL durchsetzt, da dann alle (neuen) GPU etwas von haben (CUDA ist ja NVidea Hardware gebunden) haben und es auch plattformuebergreifend zu Verfuegung steht (sprich z.B. Windows und Linux)...

Alles andere waere doch ein Handicap...

... die Killer-Applikationen gibt es schon lange - so lange, wie es Computer gibt, die man zum HighPerformanceRechnen und nicht (nur) zum Spielen nutzt. Nur sind diese Applikationen nicht populär - wohl aber massenhaft vorhanden! Davon weiß natürlich die Kinderzimmerfraktion nichts.

Gäbe es OpenCL oder etas Vergleichbares schon länger, wären meine Modelle ganz gewiß auf Basis eines Codes, der die GPU mit- oder exklusiv nutzt. Auf einer Fachtagung in den Staaten habe ich im Herbst die ersten Ansätze der massiven GPU Nutzung für Bereiche der Mathematik und Physik kennenlernen können - wobei zur Zeit zwei Probleme (noch) im Fokus stehen. Da wäre die bekannte API-Schwäche, denn man wird Code bzw. DGL-Lösungsverfahren in C oder Fortran implementieren und nicht in CUDA, obwohl es CFFT und CUFT bereits gibt - allerdings für die Windowsplattform. Und das führt uns schn zum wichtigsten Punkt: das Betriebssystem. In meinem Kreise nutzt NIEMAND Windows, um ernsthaft Numbercrunching zu betreiben. Entweder wird Linux oder ein *BSD UNIX eingesetzt und hier zeigen sich immer noch Schwächen der nVidia Treiber, gerade auf 64Bit Systemen. Bei CUDA ist man ja gezwungen, einen nVidia Treiber einzusetzen. Die unter UNIX bekannte Leichtgängigkeit bei Austausch wissenschaftlicher Modelle fehlt. Von ATI ist derzeit noch viel weniger zu erwarten als von nVidia, obschon AMD/ATI bekanntgegeben hat, daß man die eigenen Ansätze verwirft und sich auf OpenCL/OpenGL konzentriert. Inwieweit die ATI-OpenSource Treiber gediehen sind und zwingend für den Einsatz eines unabhängigen APIs sein werden, ist leider noch nicht ganz klar.

Ein weiteres Problem ist der irrsinnige Fokus auf Single Precision Calculations. Man rechnet meist mit Double Precision, viele Probleme lassen sich dummerweise nicht so weit normieren, daß man mit SP auskommt, nicht in der Astronomie und Astrophysik. Daß GPGPU Rechnen mit DP immerhin noch fünf bis zu 10 Mal schneller ist als eine CPU-Rechnung weiß auch kaum jemand, und die 80 bittige erweiterte Genauigkeit, die man derzeit mit Pestilenzium-Abkömmlingen nutzen kann (oder 82bittig, wenn es ein Titanium2 sein darf) ist streckenweise überlebensnotwendig.

Bei aller Kritik freue ich mich aber, daß es nun vorwärts geht. Ich hoffe, daß AMD sich nicht lumpen läßt und seine Vorsprünge gegenüber nVidia auf dem OpenSource Sektor weiter ausbauen kann und wird.
 
... Davon weiß natürlich die Kinderzimmerfraktion nichts.

Ich fordere dich hiermit auf solche und ähnliche,dümmliche Polemik die man in jedem zweiten deiner Posting lesen kann in Zukunft zu unterlassen! Kinder sind etwas wundervolles! Hinzu kommt, das so etwas keiner lesen will, es ist weder lustig, noch wirft es ein gutes Bild auf dich selbst. Zeugt übrigens auch nicht gerade von Charakterstärke sich selbst immer im besten Licht erscheinen lassen zu wollen, auf Kosten anderer.
Wenn du nur halbwegs die Person bist, die du suggerierst zu sein, hättest du solche dümmlichen Zwischenbemerkungen gar nicht nötig...

Aber anscheinend musst du dich ja irgendwie profilieren, die Gründe hierzu müsstest du selbst am besten kennen..

Grüße!
 
Zuletzt bearbeitet:
Laß ihn doch, wenn er sich partout mit solchem Gefasel blamieren will.
 
Laß ihn doch, wenn er sich partout mit solchem Gefasel blamieren will.

Hast ja recht, aber wenn man mal ein Kind verloren hat, sieht man das vielleicht nicht mehr so lustig. Ansonsten lese ich Drohnes Beiträge ganz gerne..Wenn es nicht so wäre, könnte man ja auch die Ignoreliste bemühen...
Sie bieten teils einen gewissen Unterhaltungswert und Informationsgehalt. Nur nervt dann doch teilweise dieser verächtliche Unterton bei manchen Zwischenbemerkungen

Sry, für offtopic

Grüße!
 
Mein Beileid!

Es ist aber durchaus so, daß "Kind sein" oder "Kindlich sein" für einen Erwachsenen mal durchaus in Ordnung oder auch sehr schön sein kann, in anderen Situationen aber auch wieder sehr unangebracht, in sofern kann man dann solch einen Begriff durchaus als Schimpfwort benutzen. Das bedeutet nicht automatisch, daß man keine Kinder mag.

Was mich an Drohnes obiger Formulierung stört, ist lediglich, daß er sich - ob begründet oder nicht - als großen Zampano hinstellt und den Rest der Poster als armselige kleine Scheißer, wenn ich das mal so übersetzen darf - sowas finde ich einfach arm *noahnung*

Sofern sein "schnipp schnapp" bedeutet, daß er (einen von?) uns beide(n) auf die Ignore--Liste gestzt hat, ist das noch deutlich ärmer.
 
bitte kommt zum thema zurück
 
Zurück
Oben Unten