News Nvidia bringt ersten OpenCL-Treiber

Was mich jetzt interessieren würde, was kann man über OpenCL eigentlich alles berechnen?
 
Was mich vielmehr interessieren würde ist, warum OpenCL nun wieder über CUDA läuft. Ich hatte das so verstanden, dass mit OpenCL und den Compute Shadern in D3D11 CUDA und Stream überflüssig wären.
 
Nur NVidia machts über CUDA, ATI machts dann über denen ihre Schnittstelle.
 
dgschrei schrieb:
Was mich vielmehr interessieren würde ist, warum OpenCL nun wieder über CUDA läuft. Ich hatte das so verstanden, dass mit OpenCL und den Compute Shadern in D3D11 CUDA und Stream überflüssig wären.

Nein, das ist nicht so. OpenCL und PhysX nutzen die CUDA-Schnittstelle um Berechnungen auf der Grafikkarte auszuführen.
Der Vorteil ist nur, dass Programme jetzt auf OpenCL aufsetzen können um Berechnungen unabhängig von CUDA oder Stream auf der Grafikkarte auszuführen.
 
Zuletzt bearbeitet: (Ergänzung)
Claus1221 schrieb:
Was mich jetzt interessieren würde, was kann man über OpenCL eigentlich alles berechnen?

Man kann damit im Grunde alles berechen was sich beliebig parallelisieren lässt.

Im Grunde sehe ich das ganze als den Killer der High End Prozessoren. Alles was nicht parallelisierbar ist profitiert nicht von Mehrkern CPUs und ist in der Regel auch nicht Performance kritisch, alles was sich parallelisieren lässt wird in Zukunft über die GPUs berechnet.

Die meißten Leute die sich für Videobearbeitung interessieren geben aktuell unsummen für High-End Prozessoren wie den Core i7 940 aus, dabei ginge das über eine 100€ Grafikkarte Energieeffizienter und sogar schneller.

Wer das mal testen will und eine aktuelle Nvidia Grafikkarte hat empfehle ich mal Badaboom als Testversion zu ziehen. Da tun sich ganz andere Welten auf.


Gruss Ned
 
Ja aber ich seh den sinn irgendwie nicht die benötigen jeweils eine schnittstelle damit Cuda über Open CL läuft bzw. Ati Stream dann über OpenCL seh ich das richtig?
Ich dachte es läuft nativ heißt das hat seine eigenen Standart sowas wie DirectX jeder Hersteller benutzt die gleiche bibliothek und das wars damit Programm A oder B auf Grafikkarte X oder Y läuft ohne das der Hersteller sich mit Cuda bzw. Ati Stream beschäftigen muß damit es läuft weil zuletzt läuft das ja über diese schnittstellen richtig?
 
Könnte interessant werden. Vorallem mit den Projekten wie Fusion von AMD oder denen von Intel.

Vielleicht kann mir auch mal einer Helfen.

Hab gerade so ein mögliches Szenario im Kopf (der denkt manchmal sich Sachen aus^^)

Und Zwar: der PC der "Zukunft" sieht dann so aus: Richtung Gamer

Eine "Normale" CPU für alle nicht paralellisierbaren Berechnungen
Eine "kleine" GPU für alles OPenCL berrechnungen ähnlich wie der Einsatz als PhysiX Karte
Und eine "Normale" GPU als Grafikrechner

Richtung Multimedia:

Eine "kleine" CPU für alle nicht paralellisierbaren Berechnungen schön Stromsparend
Eine integrierte dual Core-GPU für alles OPenCL berrechnungen ähnlich wie der Einsatz als PhysiX Karte
Und eine als Grafikrechner :-) Das ist es wirklich die Integrierte Dual GPU Lösung.

Wenn dann noch viele Programme und Games mit aufsprinegn wird es ziemlich Lusitg

Ist nur die Frage ob sowas geht.
 
Was is da so schwer zu verstehen

Jeder Grafikkarten Hersteller muss seine Grafikkarte OpenCL fähig machen. Dieses fähig machen besteht bei Nvidia darin das die GPU CUDA fähig ist. Wie das bei ATI heißt hab ich keine ahnung.
 
Juhu, dann gehts wohl endlich los mit einer ganze Welle an OpenSource Programmen die GPU Computing nutzen können :-)
 
also wenn ich das jetzt richtig verstehe, wurde cuda quasi um open cl erweitert? wenns so ist, ist das sicher ein kluger schritt von nv, da sie a) durch das vorhanden sein von cuda auf den aktuellen grakas open cl sicher schneller und kostengünstiger implementieren können (sieht man ja auch daran, dass sie die ersten sind, die open cl anbieten können) und b) den softwareherstellern die vorzüge beider sdk gleichzeitig anbieten können. erinnert mich dann etwas an asp.net^^
 
Ich geb mal eine Prognose ab:

OpenCL über CUDA oder Stream kann m.E. nur eine Übergangslösung sein.
ATI und NVidia haben Monate/Jahre der Entwicklung in diese Techniken gesteckt und sie optimiert.
Ein natives OpenCL wäre momentan ein kompletter Neuanfang.
Daher wird zunächst ein "Wrapper" gebastelt.
Solche Teile gab es ja für OpenGL ebenfalls zu Genüge.
Bis zu dem Tag, an dem die OpenGL Specs besser als die DirectX Specs waren.
Und schon haben die GraKa-Anbieter eine native OpenGL-API in ihre Treiber eingebaut, die nicht auf DirectX aufsetzt.
Das gleiche wird mit PhysX und Havok passieren.
PhysX basiert momentan noch auf CUDA. Und wird irgendwann auf OpenCL umgeschrieben. Havok wird in der nächsten Version wahrscheinlich direkt auf OpenCL basieren.

Sobald dann OpenCL überall vorhanden ist, werden CUDA und Stream langsam auslaufen.

Ich hoffe, daß sowas im Physikbereich ebenfalls ablaufen wird.
Auf der einen Seite Havok (Intel u. ATI), auf der anderen Seite PhysX von NVidia.
Jetzt noch MS ins Boot, eine DirectPhsyics-API standartisieren und alle sind glücklich.
Alte Titel bekommen einen PhysX-auf-DirectPhysics-Wrapper.
 
Zitat von Themis:

Was is da so schwer zu verstehen

Jeder Grafikkarten Hersteller muss seine Grafikkarte OpenCL fähig machen. Dieses fähig machen besteht bei Nvidia darin das die GPU CUDA fähig ist. Wie das bei ATI heißt hab ich keine ahnung.


Du hast glaub ich nicht verstanden was ich meinte oder bzw. verstehe ich den sinn von OpenCL nicht vielleicht hab ich mich auch falsch ausgedrückt, was macht es für ein sinn die Schnittstellen von jeweils einen Hersteller zu nehmen und einzusetzen damit wiederum eine art Hauptschnittstelle funktioniert. Weil beide Hersteller von ihren eigenen tools wie Cuda und Ati Stream abhängig sind was an sich nicht schlimm ist. Ich kenne mich nicht aus mit Programmieren von Software aber ich gehe mal davon aus das die Hersteller von Badaboom usw. immer noch die Bibliothek von Cuda bzw. Stream benötigen damit es auf Nvida/Ati Grafikkarten läuft.
Wenn es so ist korrigiert mich wenn ich mich irre ist der einzige Vorteil das es Open Source ist keiner eine spezielle Lizenz erwerben muß oder sowas ähnliches.
 
Zuletzt bearbeitet:
Also wenn mich das nicht täuscht werden hier ein paar Sachen verdreht.
PhysX basiert nicht auf CUDA, es wird atm mittels CUDA angesteuert.

Der Grund warum der Treiber ebenfalls mit CUDA angesteuert wird ist für mich schlicht und ergreifend nur der, das es derweil noch kein DX11 gibt. Wie scho gesagt ist das eine Not-/Übergangslösung.
 
vllt bin ich ja auf dem holzweg, aber ist open cl nicht eine alternative zu dx11, ähnlich open gl? open cl sollte imho direkt auf der gpu laufen können, bei nv wird aber wohl einfach cuda erweitert, um das volle spektrum von beidem nutzen zu können. also nv benutzt quasi einen compiler, der sowohl cuda als auch open cl verarbeiten kann. dx11 wäre dann schon der dritte im bunde sozusagen. wobei cuda dann wohl über kurz oder lang auf gpu-computing beschränkt werden würde und open cl und vor allem dx11 das ganze spektrum an spielen und anwendungsprogrammen ala photo shop und co abdecken würden.
 
dgschrei schrieb:
Was mich vielmehr interessieren würde ist, warum OpenCL nun wieder über CUDA läuft. Ich hatte das so verstanden, dass mit OpenCL und den Compute Shadern in D3D11 CUDA und Stream überflüssig wären.
Für Entwickler bzw Endkunden wird es irrelevant. ATI und nVidia selbst können ihre proprietären Schnittstellen natürlich weiterhin als Backend verwenden. Aber wie Wishbringer schon sagte, ich halte das auch nur für eine Übergangslösung.

Ned Flanders schrieb:
Im Grunde sehe ich das ganze als den Killer der High End Prozessoren.
Das siehst nicht nur du so. :) Wobei man natürlich von aktuellen Prozessoren sprechen muss. Was die Zukunft bringt, gerade die Verschmelzung von CPU und GPU, muss man abwarten.

IC3M@N FX schrieb:
Ja aber ich seh den sinn irgendwie nicht die benötigen jeweils eine schnittstelle damit Cuda über Open CL läuft bzw. Ati Stream dann über OpenCL seh ich das richtig?
Nein, andersrum. OpenCL läuft über CUDA bzw Stream. Ob man CUDA bzw Stream irgendwann als Zwischenschicht weglässt, darüber kann man nur spekulieren. Momentan ist ersteres schlichtweg die einfachere Lösung.

oem111 schrieb:
Und Zwar: der PC der "Zukunft" sieht dann so aus: Richtung Gamer

Eine "Normale" CPU für alle nicht paralellisierbaren Berechnungen
Eine "kleine" GPU für alles OPenCL berrechnungen ähnlich wie der Einsatz als PhysiX Karte
Und eine "Normale" GPU als Grafikrechner

Richtung Multimedia:

Eine "kleine" CPU für alle nicht paralellisierbaren Berechnungen schön Stromsparend
Eine integrierte dual Core-GPU für alles OPenCL berrechnungen ähnlich wie der Einsatz als PhysiX Karte
Und eine als Grafikrechner :-) Das ist es wirklich die Integrierte Dual GPU Lösung.
Ja, so ungefähr könnte das laufen. CPU und GPU verschmelzen. Dabei wird die CPU weiterhin als Host fungieren und nicht parallelisierbare Aufgaben übernehmen. Was wohl auch in Zukunft den Grossteil der Software im Consumer Bereich betreffen wird. Darüber hinaus werden dann die GPU Einheiten parallele Aufgaben übernehmen, wie Transkodierung oder was auch immer. Für Spieler wird dann noch eine dedizierte GPU notwendig sein, die zusätzlich ebenfalls parallele Aufgaben übernehmen kann (Physik, KI, etc).

Lübke schrieb:
also wenn ich das jetzt richtig verstehe, wurde cuda quasi um open cl erweitert?
Nein. Wie ich oben schon schrieb, CUDA verwendet nVidia momentan lediglich als Backend. Beide Schnittstellen haben aber nichts miteinander zu tun.

IC3M@N FX schrieb:
was macht es für ein sinn die Schnittstellen von jeweils einen Hersteller zu nehmen und einzusetzen damit wiederum eine art Hauptschnittstelle funktioniert. Weil beide Hersteller von ihren eigenen tools wie Cuda und Ati Stream abhängig sind was an sich nicht schlimm ist. Ich kenne mich nicht aus mit Programmieren von Software aber ich gehe mal davon aus das die Hersteller von Badaboom usw. immer noch die Bibliothek von Cuda bzw. Stream benötigen damit es auf Nvida/Ati Grafikkarten läuft.
Damit OpenCL läuft, stellt jeder Hersteller einen Treiber zur Verfügung. Das gleiche Spiel gibt es doch auch bei DirectX oder OpenGL. Der Vorteil ist eben, dass du dich nicht von einem Hersteller abhängig machst. Oder hast du schon mal einen CUDA Treiber von ATI gesehen? Eine Anwendung, die mit OpenCL geschrieben wurde, ist es letztendlich egal, wo sie läuft. Sofern es einen OpenCL Treiber gibt, läuft sie.

Lübke schrieb:
vllt bin ich ja auf dem holzweg, aber ist open cl nicht eine alternative zu dx11, ähnlich open gl?
DirectX ist eigentlich ein Sammelsurium an diversen Schnittstellen. Dabei ist DirectX Graphics (Direct2D, Direct3D) das Pendant zu OpenGL. Die mit DirectX 11 eingeführten DirectX Compute Shader sind wiederum das Pendant zu OpenCL. Man sollte aber dabei bedenken, DirectX ist auf Windows Plattformen beschränkt. OpenGL oder OpenCL sind plattformunabhängig.

@topic
Das "der erst vor kurzer Zeit offiziell fertiggestellt wurde" könnt ihr weglassen. Die erste offizielle Spezifikation wird bald ein halbes Jahr alt. Da passt das nun wirklich nicht mehr.
 
Wishbringer schrieb:
Ich geb mal eine Prognose ab:

OpenCL über CUDA oder Stream kann m.E. nur eine Übergangslösung sein.
ATI und NVidia haben Monate/Jahre der Entwicklung in diese Techniken gesteckt und sie optimiert.
Ein natives OpenCL wäre momentan ein kompletter Neuanfang.
Daher wird zunächst ein "Wrapper" gebastelt.
Solche Teile gab es ja für OpenGL ebenfalls zu Genüge.
Bis zu dem Tag, an dem die OpenGL Specs besser als die DirectX Specs waren.
Und schon haben die GraKa-Anbieter eine native OpenGL-API in ihre Treiber eingebaut, die nicht auf DirectX aufsetzt.
Das gleiche wird mit PhysX und Havok passieren.
PhysX basiert momentan noch auf CUDA. Und wird irgendwann auf OpenCL umgeschrieben. Havok wird in der nächsten Version wahrscheinlich direkt auf OpenCL basieren.

Sobald dann OpenCL überall vorhanden ist, werden CUDA und Stream langsam auslaufen.

Ich hoffe, daß sowas im Physikbereich ebenfalls ablaufen wird.
Auf der einen Seite Havok (Intel u. ATI), auf der anderen Seite PhysX von NVidia.
Jetzt noch MS ins Boot, eine DirectPhsyics-API standartisieren und alle sind glücklich.
Alte Titel bekommen einen PhysX-auf-DirectPhysics-Wrapper.

OpenCL kann nicht ohne eine herstellerspezifische Schicht funktionieren. Ansonsten müßte OpenCL nämlich eine Technologie enthalten die Zugriff auf die Grafikchips von nVidia und ATi hat (das was jetzt CUDA und Stream machen). Das wird es aber nie geben, eben weils "Open"CL ist.
 
Ich wäre CB dankbar für einen Artikel der das ganze OpenCL, CUDA, Stream, PhysX
WirrWarr mal ein wenig erklärt damit nicht immer die selben fragen auftauchen.
 
Nur NVidia machts über CUDA, ATI machts dann über denen ihre Schnittstelle.

Danke an Claus für diesen gelungenen Satz!
 
In der News hat sich ein Fehler eingeschlichen - SDK steht für Software Development Kit, nicht Developer
 
Zurück
Oben