News Nvidia CUDA für alle – auch AMD und Intel

Ein Versuch, damit Cuda langfristig nicht wegstirbt, da OpenCL vorallem im Smartphonebereich viel zu verbreitet ist.

Aber gegen eine Apple-Technologie/Idee/Initiative hat ein Konkurrenz-Produkt heute jeder seine Probleme.
 
cuda kann sich nicht gegen open cl durchsetzten, daher müssen sie ihn jetzt frei machen. Entwicklung in einen Unfreien Standart zu bringen der sich nicht durchsetzt ist relativ sinnfrei. Zudem AMD jetzt auch noch in dieses segment vorücken.

edit: verdamt jemand war schneller. :(
 
Naja Der Compiler wurde nicht OpenSource sondern es wurde nur der Quell Text zugänglich gemacht. AMD wird entsprechend auch keine CUDA Unterstützung ausliefern. Vielleicht wird man es nachinstallieren können aber von Haus aus sicher nicht.
 
Mit der Veröffentlichung der CUDA-Technik wolle Nvidia auf lange Sicht eine Tür zum Exascale-Computing mit GPU-Rechenkraft auf Supercomputern aufstoßen.
... Was für den Laien bedeutet?
Welche Vorteile hat nVidia dadurch, dass die CUDA freigeben?
Man hätte es ja nebenbei in einem Satz erwähnen können...
 
Suxxess schrieb:
Könnte AMD damit einen Treiber herausbringen der CUDA unterstützt und damit Performance in bestehenden Spielen gewinnen?
Theoretisch ja. Praktisch aber eher nicht, zumindest z.Z., denn CUDA profitiert von sehr guter Skalierbarkeit. Aktuell wird diese in Spielen nicht genutzt. So müsste man also Ressourcen dafür opfern, hätte aber keine Mehrleistung.
 
PhysX für alle (ohne lästige Tricksereien) wäre mir lieber gewesen, selbst wenn man dafür eine kleine Nvidia in den Rechner einbauen müßte. Aber um PhysX gehts hier ja grad nicht :cool_alt:
 
Adam Gontier schrieb:
... Was für den Laien bedeutet?
Welche Vorteile hat nVidia dadurch, dass die CUDA freigeben?
Man hätte es ja nebenbei in einem Satz erwähnen können...

Hallo.
Mit Intel ist ein weiterer GPGPU Konkurrent in den ring gestiegen und Intel hat ein bereits sehr gutes OpenCL SDK. Das heist allerdings, daß auch Intel auf OpenCL als plattformübergreifende Sprache zur Multiprozessor-/Multikernprogrammierung setzt. Tage vor nVidias Schritt hatte bereits AMD die Spezifikationen zur IL (Intermediate Language) deren OpenCL Implementierung offengelegt. Das hat für CUDA und damit nVidia auf lange Sicht Nachteile.

Die im CUDA Jargon IR, Intermediäre Repräsentation, also die Metasprache, mit der die Semantik und Logik eines Programmes erstmal architekturunabhangig abstrahiert (beschrieben) wird, erlaubt es dem nachgeschalteten Assembler/Codegenerator für eine spezifische Zielarchitektur, zum Beispiel Intel x86, CELL, ARM oder einer AMD oder nVidia GPU, aus diesem Abstractum über einen Compiler, der den IL oder IR "versteht", ein binäres Programm zu erzeugen, das auf der GPU ausgeführt werden kann.

Schau Dir einmal die geniale Architektur des LLVM Frameworks an. LLVM ist in der Terminologie des Compilers "nur" der Optimierer, der mittels abstrakter, intermediärer Repräsentation eines Programmes auch zur Laufzeit kompilieren kann - und zwar selektiv für verschiedene Plattformen, CPU oder GPU. Apple macht sich diese Technik bereits zunutze.

nVidias nvcc, der Compiler, setzt auf LLVM. Durch die Offenlegung der abstrakten Repräsentation, kann nun ein modular an den LLVM Kern angedockter Codegenerator aus CUDA binären Code für eine GPU erzeugen. Im Grunde muß die CUDA IR/IL nur in LLVM IL übersetzt werden und ob nun AMD oder Intel oder nVidia, der Treiber für die Zielarchitektur macht dann aus dem LLVM IL den binären Code. Und der kann dann auf der Plattform nativ ausgeführt werden.

Ich denke, daß in Zukunft OpenCL die Sprache der Wahl werden wird, da aber OpenCL und CUDA sehr stark verwandt sind, hat nVidia natürlich einen gewissen Vorteil. Im Grunde ist nVidias Schritt ein Schritt in die richtige Richtung.
Die BSD UNIXe setzen in Zukunft auf ein LLVM Compilerbackend, um den GPLv3 GNU GCC loszuwerden. LLVM und CLANG als Frontend für C/C++ werden bereits in FreeBSD erfolgreich als Systemcompiler in Version 10.0 eingesetzt. LLVM erlaubt es, das Frontend auszutauschen und ich denke, daß es jetzt relativ schnell sowohl OpenCL als auch CUDA Frontends für LLVM geben wird. Mit dem Codegenerator des nVidia CUDA Compilers kann dann aus dem LLVM Metacode auf jeder Platform, BSD, Linux oder was auch immer (theoretisch) ein auf der GPU lauffähiges Programm erzeugt werden. Damit wäre CUDA/OpenCL nicht mehr exklusiv für LinSux und Windoof verfügbar.

Ich bin gespannt wie sich die Sache entwickeln wird. reichlich Zündstoff gibt es wohl demnächst mit AMDs neuen GCN Architekturen, die der nVidia CUDA GPU verdächtig ähnlich sind.
Ergänzung ()

Kollo schrieb:
PhysX für alle (ohne lästige Tricksereien) wäre mir lieber gewesen, selbst wenn man dafür eine kleine Nvidia in den Rechner einbauen müßte. Aber um PhysX gehts hier ja grad nicht :cool_alt:

Eben, deshalb ist Dein Beitrag völlig sinnlos.
 
@doesntmatter

Collatz Conjecture, MilkyWay@Home, PrimeGrid und POEM als erstes Projekt was unter Linux OpenCL AMD Grakas unterstützt.
Langsam aber sicher gewinnt OpenCL an Macht.

AMD´s HD7xxx Grakas ähneln den CUDA Cores sehr und könnten eventuell mit einem Patch die CUDA Software unterstützten.
 
Haben sie wohl gemacht, weil sie sich sonst selbst mit CUDA ins Abseits schießen.
OpenCL läuft auf AMD, NV und Intel Prozessoren und CUDA nur auf NV.

Wird aber wohl nicht viel bringen. Hab schon beides Programmiert und da gibts keine riesen Unterschiede, somit wird sich das durchsetzten was auf mehr Plattformen unterstützt wird.

Wenn OpenCL jetzt noch so ne schöne Engine bekommen würde, wie es OptiX für CUDA gibt wärs natürlich perfekt. Da spiel ich gerade ein wenig mit rum und es macht richtig Spaß.

Gruß, Kami
 
doesntmatter schrieb:
Nenne mir bitte DC-Projekte, die sowohl ATI/AMD- wie CUDA-Applikationen für diesselben Rechenvorgänge bereithalten.

Dann kann man von Vergleichbarkeit sprechen. Bin mal gespannt.

z.B. Milkyway@home
 
Folding@home nicht auch oder werden da unterschiedliche Dinge berechnet? Clients gibs auch jeden Fall für beide Karten.
 
Ameisenmann schrieb:
z.B. Milkyway@home

O.k., ein Projekt. "Genügend" ist das nicht.

"(...) in den Schatten stellt" - damit meintest du die Punkte-Wertung (von Seiten des BOINC-Projektes) oder tatsächlich die Leistungsunterschiede in Hardware / GFLOPS ?

Dass MW sehr "großzügig" Punkte verteilt, scheint sich nicht geändert zu haben.

Meines Wissens beruht der Vorteil von ATI/AMD-Karten bei MW auf der (ausschließlichen) Nutzung des Features ´double precision´, die bei Nvidia-Karten in der Tat :( schlechtere Leistungsergebnisse hat, weil in Hardware schlechter unterstützt. Eine Entscheidung von Nvidia, die ´double precision´ nicht für den consumer market, sondern für deren professionelle Karten bewirbt.

Mein Fazit: es gibt 1 (ein) Projekt, in dem ATI/AMD durch ein hardwarespezifisches Feature, auf welches per zunächst Optimierung (Entwickler "Gipsel") und später per (teilweiser) Übernahme von Optimierungscode in den offiziellen Applikationscode ein Berechnungsvorteil in Form von Leistungssteigerung gepaart mit großzügiger Punktewertung von Workunits ein überragender Punktevorteil gg. Nvidia-Karten herauskommt. Dieser Umstand reicht immerhin aus, dass man mit einer geeigneten ATI/AMD-Karte jeden CPU-Cruncher in den Schatten stellt, wenn man einzig auf die Punkte schaut, die man im Projekt MW holen kann.

Offene Frage:
Ist das ein singuläres Phänomen oder der neue Trend in der DC-Welt ?

Mit Offenlegung des CUDA Compilercodes erwarte ich eine Zuwendung von Seiten der externen Entwickler, mehr auch nicht.
 
Euphoria schrieb:
Man erinnere sich daran, dass PhysX damals auf jeder CPU recht gut lief, wirkt auf einen teilweise sogar so, dass PhysX künstlich ausgebremst wird. (~gleiche Frameraten unabhängig von CPU/GPU, außer mit nvidia Karten)

Es gab bis zum PhysX 3.0 SDK nur X87 Code, was aber nicht auf NVIDIAs Mist gewachsen ist.
Denn Ageia war von 2002 bis 2008, sechs Jahre lang dafür verantwortlich.

Mittlerweile unterstützt PhysX, SSE und mehrere CPU Kerne.
Code zu optimieren passiert nicht über Nacht.

aylano schrieb:
Ein Versuch, damit Cuda langfristig nicht wegstirbt, da OpenCL vorallem im Smartphonebereich viel zu verbreitet ist.

Aber gegen eine Apple-Technologie/Idee/Initiative hat ein Konkurrenz-Produkt heute jeder seine Probleme.

OpenCL ist in der Applewelt, mangels Alternative sicher eine Größe, aber der Rest fährt mit CUDA einfach besser.
CUDA ist leichter zu proggen und man hat NVIDIA wohl schon länger dazu gedrängt, CUDA zu öffnen damit sich GPGPU endlich schneller durchsetzen kann.

Das Eigeninteresse von NVIDIA, jetzt CUDA zuöffnen dürfe hier eher mit der aktuell guten Aussicht auf Intels MIC liegen.
Die werden kommenden Tesla Produkten das Leben schwer machen, einfach weil jeder x86 DAU damit sofort klarkommt.
 
Zuletzt bearbeitet:
Wie schon gesagt, ist es in NVs Interesse, CUDA am Leben zu erhalten, da CUDA auf NV-Karten effizienter ausgeführt wird als OpenCL (letztlich bildet Nvidia OpenCL auch nur in CUDA ab, CUDA ist der direkte Weg zur Hardware). Aber wenn Entwickler auf eine Plattform beschränkt sind, dann werden sich viele nach plattformunabhängigen Lösungen wie OpenCL umsehen. NV öffnet nun den Quellcode des CUDA-Compiler, damit Dritte neue Compiler-Pfade für andere Plattformen wie z.B. AMD-GPUs erstellen können. Die Computerbase-News ist ein wenig unpräzise, vielleicht hätte man als Quelle die originale Pressemeldung von NV heranziehen sollen: http://pressroom.nvidia.com/easyir/customrel.do?easyirid=A0D622CE9F579F09&version=live&releasejsp=release_157&xhtml=true&prid=831864.
 
Zuletzt bearbeitet:
sehr feiner Zug von nvidia !
schön das so was freigegeben wird da da der groß teil der Arbeit ja auf nvidia blieb!

da sage ich doch mal danke :)
 
Amok-Sepp schrieb:
Es gab bis zum PhysX 3.0 SDK nur X87 Code, was aber nicht auf NVIDIAs Mist gewachsen ist.
Denn Ageia war von 2002 bis 2008, sechs Jahre lang dafür verantwortlich.

Mittlerweile unterstützt PhysX, SSE und mehrere CPU Kerne.
Code zu optimieren passiert nicht über Nacht.

Mag ja sein, dennoch hat sich die Performance heute kaum gebessert, man kann in keinem Spiel vollständige PhysX Effekte aktivieren, trotz SSE. Man bedenke, dass die alten Ageia Karten immernoch problemlos beschleunigen und die haben eine geringere Leistung als aktuelle CPUs/GPUs.
 
@Euphoria

PhysX ist ja keine einfache Treibergeschichte, die du mal ebend updatest. m(

Da müssen die Spieleentwickler schon auch noch selber ran und das in ihre Engine einbauen.
Zumal ... PhysX 3.0 ist im Mai erst erschienen und bis hier Spiele damit kommen, könnte/wird es noch dauern.
 
Angst vor Konkurrenz durch OpenCL?! Wenn ich aber an den Stream-Support bei AMD denke (und daran, dass Nvidia-Karten in CUDA bestimmt schon unglaublich optimiert sind) wird AMD eher auf OpenCL setzen..... Und die "Karten" von Intel sind für den Bereich sowieso eher uninteressant
 
Zuletzt bearbeitet:
Zurück
Oben