News Microsoft macht C++ „GPU-kompatibel“

Killermandarine schrieb:
Oder kann mir jemand ein GPGPU-Programm nennen (ausser einen Videoencoder)?
Hiermal ein par Tesla Anwendungen: http://www.nvidia.de/page/tesla_computing_solutions.html
Gerade im Bereich der Medizinischen Bildgebung ist es nicht mehr wegzudenken, da erst mit modernen Grafikkarten interaktive 3D-Aufnahmen in Echtzeit ermöglicht werden.
Und Geld drucken kann man damit natürlich auch (Bitcoins).
 
Krautmaster schrieb:
CUDA hatte und hat nach wie vor seine Daseinsberechtigung, schlicht weil es auch wenig / keine Alternativen gab.

Alternativen gibt es schon locker 10 Jahre um auf den GPUs zu Rechnen. Zum Beispiel http://en.wikipedia.org/wiki/BrookGPU

Apocaliptica schrieb:
Boinc, folding at home, seti?

Und nun Programme die auch einen Offensichtlichen nutzen für einen haben? Über die Resultate kann man nämlich streiten.
Ergänzung ()

Dr.Duschlampe schrieb:
Hmm. widersprichst du dir gerade nicht selber? DirectCompute ist ein Bestandteil der DirectX-API also ist es letztendlich nicht irrelevant, da es z.B. für Unix-Systeme kein DirectX gibt.

Wenn ich das Richtig verstanden habe ist das unabhängig von DC. Es geht nur um eine C++ Erweiterung.
 
Kasmopaya schrieb:
Endlich pusht Microsoft den Bereich so gut es geht. Apple dicht dahinter, die wissen auch wie man eine GPU im Alltag verwendet.

Apple hat ursprüngich OpenCL entwickelt. Die sind in diesem Bereich Lichtjahre vor MS...

Kasmopaya schrieb:
Gewinner sind AMD und NV, Intel wie üblich auf dem Bereich auf dem absteigenden Ast. Die klammern sich krampfhaft an X86.

Wieso Gewinner?

nvidia = CUDA
AMD = OpenCL

die beiden haben schon längst ihre jeweiligen Programmierplattformen.

Die Entwicklung von OpenCL ist mittlerweile von Apple an das Khronos Konsortium übergeben worden. Apple, AMD, nvidia und Intel sind unter anderem dort Vollmitglieder.
OpenCL und CUDA sind auch zu DX kompatibel -> kein Bedarf für das Redmondsche Zeug.


Dieses DirectCompute von MS, ist nur wieder ein Versuch der Redmonder, hechelnd einen bereits abgefahrenen Zug einholen zu wollen... ;)
 
Kasmopaya schrieb:
nvidia = CUDA
AMD = OpenCL

Naja AMD hat eher mit Stream angefangen. Sie wollen jetzt halt nur mehr auf OpenCL und DirectCompute setzten.


Kasmopaya schrieb:
Dieses DirectCompute von MS, ist nur wieder ein Versuch der Redmonder, hechelnd einen bereits abgefahrenen Zug einholen zu wollen... ;)

Naja die Khronos Group schießt sich zu gerne selber ins Knie. MS hat das inzwischen schon wieder gut aufgeholt.
Wenn jemand das DX SDK nutzt warum sollte man dann mit OpenCL anfangen wenn man etwas auf die GPU auslagern möchte? Es ist da deutlich einfacher sich aus dem SDK zu bedienen oder in Zukunft bei dieser Erweiterung.
 
nille02 schrieb:
Naja AMD hat eher mit Stream angefangen. Sie wollen jetzt halt nur mehr auf OpenCL und DirectCompute setzten.

AMD setzt nur auf OpenCL. MS versucht sein DirectCompute da hineinzuzwengen (es ist zwar eine AMD Veranstaltung, aber von DirectCompute geplappert haben nur die Redmonder - der Rest interessiert sich anscheinden schlichtweg nicht dafür).

Zu sehr ist CUDA und OpenCL bereits etabliert - DirectCompute hingegen verwendet niemand, obwohl schon 1 1/2 Jahre auf dem Markt.
Zum Vergleich: CUDA gibts schon seit 5 Jahren. OpenCL auch schon länger.

Und schaut man auf die AMD Stream Site, DirectCompute, oder überhaupt DirectX - es wird mit keinen Wort erwähnt. Dafür OpenCL in jeden 2. Satz (vorsicht übertreibung. ;) )

http://www.amd.com/us/products/technologies/stream-technology/Pages/stream-technology.aspx
 
QDOS schrieb:
Joa ist schon recht spezifisch, aber immer noch verständlich.
Auf der X-Achse sind die verschiedenen Speicherarchitekturen aufgetragen (NUMA = http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access)
Die Y-Achse zeigt Prozessortypen, würde mal schätzen, dass IoO = "In of Order" und OoO = "Out of Order", zu ISA fällt mir auf die schnelle nur der alte Steckplatz ein, denke aber nicht, dass es der ist^^
ISA = Integrated System Architecture, vermute ich jedenfalls. Das sollen wohl zwei unterschiedliche Embedded-Architekturen sein.
Die Achsen sind soweit klar und dass das kein Graph ist sondern eine Tabelle auch, nur was zur Hölle machen diese ganzen Punkte da? Teilweise sind sie benannt, teilweise nicht und bei den meisten Namen weiß man nicht, zu welchem Punkt sie gehören. Dann gibts da einen Mix aus gestrichelten, doppelt gestrichelten, gepunkteten, durchgezogenen und und "bauchigen" Linien mit und ohne Pfeile, die manche Punkte verbinden und andere wieder nicht.

Und mir fällt jetzt erst auf, dass dort im Hintergrund PFLANZEN zu sehen sind? Habe ich vorhin noch nicht gesehen, vor lauter Punkten und Linien.
 
kittikat schrieb:
Zum Vergleich: CUDA gibts schon seit 5 Jahren. OpenCL auch schon länger.

OpenCL gibt es nicht mal 3 Jahre ( Dezember 2008 ).

AMD muss auch keine Werbung für Microsoft machen jedoch für ihre OpenCL Implementierung.
 
Dieses DirectCompute von MS, ist nur wieder ein Versuch der Redmonder, hechelnd einen bereits abgefahrenen Zug einholen zu wollen...
Gerade gegenüber AMD hat Microsoft einen erheblichen finanziellen Vorteil, den man nicht unterschätzen sollte. Ab und zu setzt man dann einfach seinen Willen durch.

Und im großen und ganzen ist es eher von Vorteil für NV und AMD. Hauptziel ist mehr GPUs verkaufen, deshalb wird man es auch unterstützen was Microsoft so vom Stapel lässt.

PS: Wäre echt mal eine starke Leistung wenn ihr so zitieren würdet wie ich, einfach copy/paste und dann Quoten und nicht mit den Namen, da ihr es anscheinend nicht schafft, die richten Namen bei den Quotes anzugeben...
 
Zuletzt bearbeitet:
Kasmopaya schrieb:
Dieses DirectCompute von MS, ist nur wieder ein Versuch der Redmonder, hechelnd einen bereits abgefahrenen Zug einholen zu wollen... ;)

Hier geht's ja nicht um DirectCompute, das glaub wirklich - schon wegen seiner
Integration DirectX einigermaßen schräg ist - sondern um eine Spracherweiterung für C++.

Und Herb Sutter ( http://de.wikipedia.org/wiki/Herb_Sutter ) steht ziemlich ausser
Verdacht, seine Zeit mit "Nachhecheln" in einem "MeToo"-Projekt zu verplempern.
 
Hmm. widersprichst du dir gerade nicht selber? DirectCompute ist ein Bestandteil der DirectX-API also ist es letztendlich nicht irrelevant, da es z.B. für Unix-Systeme kein DirectX gibt
Nö das ist kein Widerspruch, da die C++ Erweiterung auf allen Grafikkarten mit DX11(und damit DirectCompute API) läuft( siehe News)
Der einzige Zusammenhang der DC API und der C++ Erweiterung ist, dass bei allen DC fähigen Karten auch diese Erweiterun läuft.
Es geht dabei nur um die benötigten Fähigkeiten der HW

CUDA gibts seit 5 Jahre - ist bei wissenschaftlichen Anwendungen Standard und hat dort ein Quasi-Monopol. Der Rest läuft mit OpenCL. CUDA ist auch kompatibel zu OpenCL und umgekehrt, ebenfalls werden unterschiedliche Grafik/Render APIs unterstützt.
CUDA ist proprietärer Mist der nur auf nVidia Karten läuft.
Dagegen ist selbst die DirectCompute API offener...
Zudem ist CUDA NICHT kompatibel zu OpenCL. nVidia hat die OpenCL Unterstützung (angeblich) über CUDA realisiert. Das ist aber keine Kompatibilität.

Zumal es von den Grafikkartenherstellern unterstützt werden müsste und die haben, wie gesagt, alle ihre eigenen Standards (Die noch dazu auf mehreren Architekturen und Betriebssystemen laufen.)
Jede DX 11 Karte kann auch DirectCompute.

Mit der AMP Erweiterung kann man das DC Zeugs zwar auch auf anderen Plattformen zum Laufen bringen - aber warum sollte man sich so umständlich verrenken?
Nimmt man gleich eine Sprache wie CUDA (C oder C++) oder OpenCL C und schüttelt nur den Kopf über DirectCompute...
Echt wer wäre schon so blöd und nimmt die AMP Erweiterung wenn er damit direkt mehrere Plattformen unabhängig von dem Hardwarehersteller.
Da nimmt man doch viel lieber CUDA was dann nur auf nVidia Karten und nur auf Plattformen mit CUDA Unterstützung läuft!

Wenn ich das Richtig verstanden habe ist das unabhängig von DC. Es geht nur um eine C++ Erweiterung.
Exakt. AMP braucht bestimmte Hardware und alle Karten die DX 11(also auch DC) können damit verwendet werden.
 
Mike Lowrey schrieb:
CUDA ist proprietärer Mist der nur auf nVidia Karten läuft.
Dagegen ist selbst die DirectCompute API offener...
Zudem ist CUDA NICHT kompatibel zu OpenCL. nVidia hat die OpenCL Unterstützung (angeblich) über CUDA realisiert. Das ist aber keine Kompatibilität.

OpenCL wird auf nvidia GPUs über einen CUDA Filter ausgeführt - deshalb werden auch viele ältere GPU Modelle unterstützt (alle die auch CUDA unterstützen). Bei AMD beginnt der GPU Support erst ab der HD48xx Reihe.

Mike Lowrey schrieb:
Jede DX 11 Karte kann auch DirectCompute.

Es wird auch DX10 unterstützt. Ändert aber nix an der Tatsache das man bis dato an Windows gebunden ist.
Bei Entwicklung und bei den Anwendungen.

90% derartiger Anwendungen basieren auf CUDA, der Rest verwendet OpenCL. DC verwendet, ähm.. niemand.

Mike Lowrey schrieb:
Echt wer wäre schon so blöd und nimmt die AMP Erweiterung wenn er damit direkt mehrere Plattformen unabhängig von dem Hardwarehersteller.
Da nimmt man doch viel lieber CUDA was dann nur auf nVidia Karten und nur auf Plattformen mit CUDA Unterstützung läuft!

Eigentlich nimmt man da OpenCL. ;)

In OpenCL ist auch direkt ein Support für x86 CPUs per SSE3 implementiert und von IBM gibts eine Erweiterung für die PPC Architektur. Bei GPUs wird so ziemlich alles unterstützt, was da so am Markt herumschwirrt.

Wenn man nvidia HW hat, wird man zu 99% CUDA verwenden (Support aus einer Hand), teilweise extremer Performance Vorteil (aufgrund der Optimierung).

Also man hat schon 2 etablierte Plattformen, es ist schlichtweg kein Platz für DC.

nvidia setzt weiterhin voll aufs hauseigene CUDA, zusätztlich wird - auch wenn du das nicht glaubst - OpenCL unterstützt (nvidia ist neben Apple, AMD, IBM und Intel (plus ein Haufen anderer IT Unternehmen (ausnahme, ein berühmtes Softwarehaus aus Redmond - die spielen lieber mit sich alleine und wollen keine Freunde) einer der Hauptverantwortlichen für die OpenCL Spezifikation u. Weiterentwicklung bei Khronos.
 
riDDi schrieb:
ISA = Integrated System Architecture, vermute ich jedenfalls. Das sollen wohl zwei unterschiedliche Embedded-Architekturen sein.
Ich schätze, ISA steht für "Instruction Set Architecture". Hier z.B. für die R700er von AMD: R700 ISA

riDDi schrieb:
Die Achsen sind soweit klar und dass das kein Graph ist sondern eine Tabelle auch, nur was zur Hölle machen diese ganzen Punkte da?
Meine Glaskugel meint, dass die einzelnen Punkte für CPUs und GPUs stehen. Die mit Linien verbundenen Punkte stehen dann wohl für Komplettgeräte (wie z.B. die oben links erwähnte X-Box bzw. den PC). Ganz rechts dann die Cloud-Dienste, die viele CPUs und GPUs bündeln.

riDDi schrieb:
Und mir fällt jetzt erst auf, dass dort im Hintergrund PFLANZEN zu sehen sind?
Die hat wohl der Autor der Grafik geraucht. Anders kann ich mir das auch nicht zusammenreimen. :)
 
Ich hab es immer gesagt, warum eine CPU nehmen wenn eine GPU mindestens 10x schneller ist ich nutze Cuda jetzt schon seit der 8800er Generation und habe immer wieder gesehen das da sehr viel Potenzial drin steckt NV mit iher Fermi ist einfach nur Top und AMD will wie heute in den News zu lesen war auch in dem bereich auch aktiver werden. Also ich find es richtig gut.
 
nille02 schrieb:
Und nun Programme die auch einen Offensichtlichen nutzen für einen haben? Über die Resultate kann man nämlich streiten.

Ich meine mich an etwas zu errinern was dir eine Lehre sein könnte.

Archimedes hatte mal etwas neues gefunden und hat es hocherfreut einem Matrosen erzählt der gerade daneben stand. Dieser hat sich das ganze angehört und nach dem Sinn gefragt?

Da dachte sich Archimedes: "Jede noch so kleine Erkenntnis ist wichtig. Der gemeine Mann der es nicht schätzt hat hat nur nicht genügend Bildung alles überschauen und darüber urteilen zu können."

Ich bezweifle nämlich ganz stark dass du auch nur ansatzweise den Sinn und die Ergebnisse geschweige denn den Nutzen dieser Programme einschätzen kannst.
 
G-Power schrieb:
Ich hab es immer gesagt, warum eine CPU nehmen wenn eine GPU mindestens 10x schneller ist
Unsinnige Verallgemeinerung. Schließlich muss etwas massig parallelisierbar sein, um GPUs effektiv auszunutzen und das trifft nur auf wenige und spezielle Aufgabe zu. Auch das vielgenannte Videoencoding ist nicht wirklich ein Paradebeispiel für GPGPU. Da wurde nur viel Marketing drum veranstaltet und die Computermagazine haben sich davon einwickeln lassen. Videoencoding ist schließlich ein inhärent serieller Prozess. Da lässt sich einiges parallelisieren, aber um wirklich vorzeigbare Geschwindigkeitvorteile gegenüber CPUs zu erzielen, hat man einfach die Qualität derart runtergeschraubt, dass das Ergebnis schon fast nicht mehr zu gebrauchen ist.
 
0x4A6F686E schrieb:
Ich schätze, ISA steht für "Instruction Set Architecture". Hier z.B. für die R700er von AMD: R700 ISA
ISA als Akronym ist etwas überladen. Ergibt jedenfalls Sinn. Im Gegensatz zur Grafik. Die hab ich auch nach dem 10. Betrachten noch nicht verstanden. Vermutlich entwerfen die ihre Betriebssysteme auch so, das erklärt zumindest ME und Vista.
 
C++ ist näher an der Hardware als OpenCL, sowohl näher an der NV Hardware, und, so wie es nun aussieht, ebenfalls näher an der zukünftigen AMD Hardware. OpenCL wird vor der Ausführung doch ohnehin wieder zurückgewandelt in Cuda bzw. Stream Befehle. Zudem muss man OpenCL ja auch erst mal erlernen um damit zu programmieren, was sich bei C++ für viele erübrigt. Von daher hat sich OpenCL und wohl auch Direct Cumpute mit der Ankündigung von C++ für GPGPU in meinen Augen so gut wie erledigt.

Eine praktische Anwendung findet sich in 3dsMax 2012. Das neue Nitrious Interface ist GPGPU unterstützt und zeigt gewisse Metall- und Körperschatteneffekte sowie Lichter und Schatten im normalen Arbeitsfenster. Notfalls werden die Effekte von der CPU "emuliert". Auch das finale Rendering und oder die RT Vorschauen vieler Renderer machen inzwischen von CUDA gebrauch. Neue Visualisierungsprogramme greifen dagegen durch die Bank auf die GPU zurück, wohl vor Allem um sich von den bisherigen Produkten abzusetzen.

Ein bekanntes Beispiel aus der 2d Welt ist die Adobe CS5 Suit, in der sich die GPU gemächlich aber stetig als Beschleuniger etabliert. Allem voran bei den Videoprogrammen wie Premiere und seit der CS5.5 auch in After Effects. Eine Verachtfachung der Performance oder mehr ist dabei keine Seltenheit. Das ist schon beeindruckend.

Davon ab würde mich brennend interessieren, inwiefern eine On-Die Grafik à la Llano oder Trinity bei GPGPU Anwendungen ihre kurzen Wege zur CPU als Vorteil ausspielen kann. Kaum Latenzen, da keine PCI Bus im Weg, direkte Anbindung an den Arbeitsspeicher und so.
 
Zurück
Oben