News Nvidia kündigt „CUDA x86“ an

MichaG

Redakteur
Teammitglied
Registriert
Juli 2010
Beiträge
12.919
Nach wie vor setzt Nvidia beim GPU-Computing auf die hauseigene Lösung CUDA, während AMD die freie Plattform Open CL bevorzugt. Nun will Nvidia CUDA-Anwendungen auch auf x86-basierten Systemen ermöglichen und kündigt die Entwicklung von „CUDA x86“ in Kooperation mit PGI (The Portland Group) an.

Zur News: Nvidia kündigt „CUDA x86“ an
 
MichaG schrieb:
Somit sollen CUDA-Programme in Zukunft praktisch auf jedem PC oder Server beschleunigt werden.

Naja, sie sollen lauffähig gemacht werden ;-) Wenn die Programme "geschrieben" wären würden sie sowieso laufen ;)
 
Kommisch, dachte das nVidia gar keine x86 Lizenz haben? Oder habe ich da etwas verschlafen?
Und würde es den nicht schneller laufen wenn dies schon vorab als x86 entwickelt wird, anstatt über einen Compiler laufen zu lassen? Natürlich ist meiner Meinung hier auf den Server Markt bezogen ;)
 
Also zusammenfassend gesagt:
Dank CUDA x86 nutzen wir die CPU um Code auszuführen, den wir aus Leistungsgründen auf die GPU ausgelagert haben, um ursprünglich die CPU für andere Dinge nutzen zu können ... klingt logisch!
Vermutlich hat man sich bei NVIDIA gefragt, was sich mit der überschüssigen CPU-Leistung sinnvolles anstellen ließe...

@Damien White: So sehe ich es auch
 
genau, und im Zuge dessen hast Du Dir Gedanken ueber Parallelitaet gemacht, die vorher in dem Code nicht sichtbar war, und wenn alles gutgeht laeuft der CUDA Code auf der CPU schneller als der Original nicht-Cuda Code, weil es naemlich multithreaded und vektorisiert ist.
 
Statt das freie Open CL zu unterstützen versucht man lieber seine eigenen Lösungen mit aller Gewalt durchzubekommen. :rolleyes:
So kann dann jeder die CUDA programme nutzen, allerdings wirklich schnell wohl nur mit nv GPU. Mit OpenCL wärs auch gegangen, nur halt in gut :freak:
 
Naja vielleicht in Zukunft interessant, wenn es die erst 32 Core CPUs gibt und es langsam unübersichtlich wird. Im Moment muss ich mich aber schwer durchringen wieder ordinären C Code zum programmieren von CPUs zu verwenden. Bei 4 oder 8 Cores kann man das Multithreading noch ganz gut per Hand organisieren, dann aber lieber in C++ und vernünftigen (echten) Threads. Naja bin mal gespannt wie das läuft, ich kann mich noch stark an den x86 Debugger von CUDA erinnern, schnell war auf jeden Fall was anderes....

Ausserdem frage ich mich wie sich das überhaupt performant darstellen soll, wenn ich überlege, auf der Grafikkarte mit Hardwarethreadmanager und 100.000 Threads habe ich quasi kein Threadmanagementoverhead. Und wie mache ich das bei der CPU? 8 Threads statt 1000? Oder 1000 Threads und ein Core der nur synchst und verteilt? Weder das eine noch das andere kann ernsthaft sinnvoll sein um echte CUDA Anwendungen (also die, die auf ner GPU laufen sollen) performant auszuführen.

Wir sind gespannt...

@MD5003
Schon mal in OpenCL programmiert? Also CUDA war in meinen Tests deutlich (Faktor 100) schneller als OpenCL. Open ist nur dann gut, wenn auch schnell genug.
 
Interessant wärs, wenn fündige Leute PhysX Code ordentlich auf CPU und dann auf ATI Karten portieren würden.
Leistungstechnisch sollte das keine Probleme darstellen, wird aber wohl nicht passieren.

Naja Havok gibts ja auch noch :)
 
havok, bzw. havokfx, dass auch auf Grafikkarten laufen soll und unteranderem von nvidia mit progammiert wurde, liegt nun bei intel :D
 
Von S/A gibts einen interessanten Artikel darüber.

"IT LOOKS LIKE some people are finally starting to catch on to what we have been saying for almost four years now, Nvidia is building an x86 chip. The story is long, complex, and it is SemiAccurate's opinion that the CPU will never make it to market for technical and legal reasons.

First off, what is this mystery chip? That is the easy part, it is Tegra 5, code named T50. As you might recall, Tegra 3 just taped out, and since the chips are on a yearly cadence, Tegra 5 should tape out in mid to late 2012 with products following in 2013. We have previously covered it here, here, here, here, and here."

"That said, lets assume that Tegra 5, code named T50, will be on time. How is an ARM core related to x86? That is easy, Nvidia is going to use Transmeta-esque code morphing firmware to make the CPU run x86 code. Firmware x86 has two associated problems, one technical, one legal."

"On the technical side, the problem is simple, speed. "

"Everyone contacted by SemiAccurate for the past several years has stated unequivocally that Nvidia does not have the legal right to make an x86 CPU. The problem is not the instruction set behind the chips, aka x86, but the underlying patents."

Naja, wir werden sehen. Technisch seh ich das schon als relativ sinnfrei an, wenn der Code quasi emuliert werden *sollTE*.

Von der legalen Seite her seh ich nicht so das Problem, weil NVIDIA technisch gesehen ja gar keine CPU baut und außerdem seit der Entscheidung der FTC seitens INTEL einige Freiheiten für NVIDIA dazu gekommen sind.

Aber bis 2013 fließt noch jede Menge Wasser den Rhein runter.

Bis dahin haben wir schon die 3. Fusion Generation, ob dann noch jemand Tegra gebrauchen kann? Naja, Konkurrenz belebt das Geschäft--->Gut
 
Mögliche Antwort liefert heise: NVIDIAs GPUs halten Einzug in Crays Superrechner


Immerhin sollen die GPUs in diesen Supercomputern optimal mit den AMD CPUs zusammenarbeiten, ansonsten lohnt sich der Aufwand nicht und dafür braucht es Code der sowohl auf CPU als auch GPU ideal läuft. Befor sich da jemand anderes mit OpenCL dran setzt macht das lieber nV selber. Man stärkt seine Produkte damit, ansonsten kommt AMD mit OpenCL und sagt " Hey warum wollt ihr überhaupt nV verbauen? Bei unsere Implementierung läuft doch CPU und GPU viel besser, also kauft doch auch unser GPUs".
 
Was mir nicht ganz klar ist, wie wollen sie das umsetzen. GPUs können keinen x86 binärcode ausführen, cpus keinen gpu-binärcode...

und cuda ist im gegensatz zu opencl nicht JIT.

entweder nvidia verwendet auch JIT compiler, oder aber die dateien werden doppelt so groß.

Oder wie?
 
*grübel grübel grübel* parallele anwendungen und effizienz... da war doch was ... ach DARUM berechnet man parallele berechnungen lieber auf USA-GPUs (nene nicht united states ;) unified shader architecture ...)
full-ack@1668mib !

mir ist der sinn der sache n bissl schleierhaft... okay, wenn ich diese angesprochenen "teils sehr zahlreichen" cpu-kerne in meinem laptop anschaue, muss ich schon sagen: wow - das bringt mir, und keinem privatanwender irgendetwas...

ABER jawoll server haben ja meist ein paar mehr kerne, ... aber moment, ... wenn es nach nvidia geht, sollten in den servern doch teslas stecken und das ganze tohuwabohu hier überflüssig sein oder?

meiiiine güte, entweder steh ich gerade voll auf dem schlauch und die aktion von nvidia war in wirklichkeit extrem strategisch durchdacht und hat einen tieferen sinn,

oooder irgendwas läuft bei nvidia derzeit schief....
oder natürlich, ich habe etwas übersehen^^ soll auch mal vorkommen :-D
 
NVIDIA baut keine x86 "Prozessoren" oder sonstwas, sondern die CUDA Bibliothek wird (software-seitig) für multicore-CPUs umgesetzt (was eigentlich schon existiert, aber mehr so als Debug-Modus). Halt das eher für blöd, die sollten alle gemeinsam bei OpenCL anpacken (also mehr als jetzt).

Irgendwie komisch, man optimiert zig Stunden lang Code für NVIDIA Grafikkarten (Texture Memory, Coalesced Access und Pipapo), damit am Ende das ganze aufm CPU berechnet wird im dümmsten Fall.

Gruß
 
Zuletzt bearbeitet:
Ich glaube einige verkennen hier in den Anwendungsfall.
Das Problem an CUDA ist momentan einfach noch, dass ich für einen Algorithmus eine optimierte CUDA und eine optimierte Non-Cuda Version schreiben muss, ich habe also mehr als den doppelten Aufwand damit PCs mit Nvidia-Grafikkarten eine bessere Leistung haben.
Sollte nun nvidia aber ihr cuda x86 veröffentlichen, musss ich nur noch eine Version schreiben, die CUDA-Version, ich spare mir also viel Aufwand und setze somit also auch viel eher auf CUDA weil ich mit minimalem Mehraufwand für eine ganze Zielgruppe große Leistung herausholen kann.
 
@ ice-breaker

Tja und Cuda @ CPU wird genau gleich langsam laufen wie PysX @ CPU damit jeder auch richtig schön sieht wie wunderbar schnell die NV-GPUs sind.
 
Zurück
Oben