FAQ: GPU Features im Detail
Was steckt hinter PhysX, CUDA und OpenCL? Eine moderne Grafikkarte kann viel mehr als nur die Bildschirmanzeige steuern. Dank moderner Techniken wie CUDA und OpenCL kann Sie den Hauptprozessor entlasten und Berechnungen dramatisch beschleunigen. Wir erklären die Techniken.
Grafikkarte rechnet mit
Die Anforderungen moderner Software an Computer und Notebooks wachsen zunehmend. In Windeseile sollen beispielsweise riesige Videodateien von einem Format ins andere wechseln oder unkomprimierte Musik zu kleinen MP3-Dateien schrumpfen. Ein PC-Spiel soll möglichst realistisch wirken und bei jeder Aktion ein flüssiges Bild mit großer Detailgenauigkeit ohne Verzögerungen bieten. Auch in den Forschungszentren von Universitäten und Firmen verlangen aufwendige Simulationen Höchstleistungen von Prozessor und Co. Nicht selten sind jedoch selbst neueste Prozessoren, die auf zahlreiche Rechenkerne zugreifen können, so stark ausgelastet, dass es zu lästigen Wartezeiten kommen kann. Mögliche Folge sind auch sichtbare Einschnitte bei der Darstellungsqualität, damit der Computer dennoch einen flüssigen Bewegungsablauf gewährleisten kann. Für ein PC-Spiel bedeutet das: Zahlreiche Details wie Spiegelbilder, Reflexionen oder Rauchentwicklung, die ein Bild und Bewegungsabläufe erst realistisch erscheinen lassen, müssen verschwinden oder stark vereinfacht auf den Monitor gelangen. Teilweise sinkt auch die Bildwiederholrate, sodass die Bewegungen nicht mehr flüssig erscheinen.
Um das zu vermeiden und den Prozessor bei seiner Arbeit zu unterstützen, bietet es sich an, einen Teil der Rechenaufgaben auf den Grafikprozessor zu übertragen. Dieser ist für viele Berechnungen sogar deutlich besser geeignet und wartet häufig ungenutzt oder unterbeschäftigt auf Arbeitsaufträge. Zudem ist ein Grafikprozessor auf die parallele Berechnung tausender Operationen spezialisiert und erledigt diese daher besonders schnell. Damit die Aufteilung der Rechenoperationen reibungslos funktioniert, ist ein Koordinator nötig. Er splittet die Aufgaben auf, verteilt sie und sorgt dafür, dass es ein stimmiges Ergebnis gibt. Die Techniken, die dafür infrage kommen, sind CUDA mit dem integrierten Physik-Motor PhysX und OpenCL.
CUDA steht für Compute Unified Device Architecture und ist eine von Nvidia entwickelte Technik. Sie erlaubt, parallele Rechenaufgaben, die für den Hauptprozessor vorgesehen sind, auf den Grafikprozessor auszulagern. Die Folge ist ein doppelter Geschwindigkeitsgewinn. Einerseits hat der Hauptprozessor Zeit für andere Aufgaben. Andererseits kann ein Grafikprozessor parallele Aufgaben deutlich schneller abarbeiten als der Prozessor. Voraussetzung jedoch: Die Software muss für CUDA optimiert sein. Andernfalls findet keine Arbeitsteilung statt.
Die Geschwindigkeitssteigerung durch den Einsatz von CUDA kann mit optimierter Software immens sein. Je nach Anwendung laufen Berechnungen etwa zwischen 10- und 200-mal schneller ab. Wartezeiten bei wissenschaftlichen Simulationen lassen sich beispielsweise durch die Hilfe von CUDA mitunter von 20 Minuten auf 30 Sekunden reduzieren. Berechnungen, die ohne CUDA 30 bis 40 Sekunden Wartezeit nach sich ziehen, laufen mit der Technik teilweise in Echtzeit ab.
CUDA war anfänglich nur für wissenschaftliche Software entwickelt, die hohe Anforderungen an computergestützte Visualisierungen und Simulationen hat, kommt aber zunehmend auch in privaten Umgebungen zum Einsatz; dort hauptsächlich in PC-Spielen. Eines der ersten Programme, das wissenschaftliche Forschung unterstützt und auch auf Privat-PCs zum Einsatz kommt, ist das von der Universität Berkeley betriebene SETI@Home-Projekt, das sich mit der Suche nach außerirdischen Lebensformen im Weltraum befasst.
Mindestvoraussetzung zur Nutzung von CUDA ist eine Nvidia-Grafikkarte der Serie Geforce 8. Auch zahlreiche Quadro-Grafikkarten und solche der Tesla-Reihe unterstützen CUDA. Ebenso unterstützen Notebookversionen der jeweiligen Grafikchips die Technik. Eine komplette Liste der unterstützen Geforce-Grafikkarten finden Sie bei Nvidia. Kompatible Spiele und weitere Software, die von CUDA profiziert, finden Sie hier.
PhysX
Durch die Integration von PhysX in die CUDA-Technologie fand die Technik auch den Weg auf Privat-PCs. PhysX ist eine von Nvidia entwickelte Physik-Engine, die ebenfalls den Hauptprozessor entlasten und Berechnungen beschleunigen soll. Eine Physik-Engine berechnet die Bewegung physikalischer Objekte, also Körper, Kleidung aber auch Haut, Haare und Ähnliches und ermöglicht eine realitätsnahe Darstellung. Besonders aufwendig ist die Berechnung von flüssigen und gasförmigen Stoffen wie Wasser, Öl, Lava, Rauch, Wasserdampf, respektive Nebel und auch Feuer, die ebenfalls zu den physikalischen Aktionen zählen.
PhysX leitet einen Teil derart aufwendiger Rechenaufgaben vom Hauptprozessor auf den Grafikprozessor um. Die Folge sind verkürzte Rechenzeit, schnellere Programmabläufe und bei Computerspielen eine höhere Bildwiederholrate und/oder auch eine höhere Darstellungsqualität. Die zusätzliche Rechenkraft ermöglicht mitunter auch, zusätzliche grafische Effekte darstellen zu können. Sind Haupt- und Grafikprozessor ein besonders leistungsfähiges Team, führt der Einsatz von PhysX zu höchsten Bildraten bei gleichzeitig besonders realistischer Darstellung.
PhysX funktioniert nur mit Grafikprozessoren von Nvidia. Alle modernen Grafikkarten der Geforce-Serie unterstützen die Technik, wenn sie mindestens 32 Grafikeinheiten besitzen und über 256 Megabyte Speicher verfügen. Bessere Ergebnisse lassen sich jedoch mit 512 Megabyte Speicher erzielen. Inzwischen läuft die PhysX-Engine auch auf den Spielkonsolen Nintendo Wii, Sony Playstation und Microsoft Xbox 360. Eine komplette Liste aller Nvidia-Grafikprozessoren, die PhysX unterstützen, finden Sie hier.
Sind zwei oder mehr Grafikkarten im PC installiert, ist es möglich, eine der Karten komplett für die Physik-Engine abzustellen. Besonders praktisch: Dabei muss es sich nicht um identische Grafikprozessoren handeln. Die PhysX-Engine ist Bestandteil von Nvidias CUDA-Technologie.
Ein beachtlicher Teil moderner PC-Spiele unterstützt PhysX, so auch das populäre Borderlands2 und Deep Black Reloaded. Eine komplette Liste aller Spiele, die Physx unterstützen, finden Sie auf der Webseite PhysXInfo.com.
OpenCL
OpenCL steht für Open Computing Language. Es ist eine alternative Technik zu CUDA, die auch AMD-Grafikprozessoren und Intel-Grafikchips ermöglicht, dem Hauptprozessor Arbeit abzunehmen und damit Berechnungen zu beschleunigen. OpenCL ist von Apple entwickelt und später gemeinsam mit AMD, IBM, Intel und Nvidia weiterentwickelt worden. Die Khronos Group - ein Industriekonsortium, das Multimedia-Standards verwaltet - hat OpenCL standardisiert und kümmert sich um die Weiterentwicklung. OpenCL ist ein offener Standard, den jeder ohne Lizenzzahlungen nutzen kann. Er ist relativ jung und erschien erstmals 2009 mit Apples Betriebssystem 10.6 (Snow Leopard) auf dem Markt.
Wie auch CUDA teilt OpenCL rechenintensive Arbeitsschritte auf und leitet sämtliche Operationen, die parallel abgearbeitet werden können, an den Grafikprozessor weiter. Per OpenCL ist es möglich, direkt auf Elemente der Programmierschnittstellen OpenGL und DirectX zuzugreifen und diese mithilfe des Grafikprozessors beschleunigt abzuarbeiten.
Die Liste der unterstützenden Grafikchips ist relativ lang. Eine Übersicht finden Sie hier. Leider ist jedoch die Programmliste, die OpenCL unterstützt, bisher sehr viel kürzer. Zu den populärsten Vertretern zählen die Videosoftware Total Media Theatre 5.2 von ArcSoft, vReveal von MotionDSP (ebenfalls Videobearbeitung), zahlreiche Grafikprogramme von Adobe, inklusive Photoshop, Premiere und auch Flash. Weiterhin profitieren auch das freie Bildbearbeitungsprogramm Gimp, einige Filter des VLC-Mediaplayers sowie das Kompressionsprogramm Winzip von der OpenCL-Beschleunigung. Eine wissenschaftliche Freeware, die OpenCL unterstützt, ist die Mathematik-Software ViennaCL.
9 Kommentare
Fragen, Anregungen, zusätzliche Informationen zu diesem Artikel? - Uns interessiert Deine Meinung (auch ohne Anmeldung möglich)!Gesamtes Thema im Forum lesen / Antworten
| #9 Re: FAQ: GPU Features im Detail | John John, 12:05 26.12 |
übrigends ist der Bitcoin-Miner in OpenCL *wesentlich* schneller und "ertragreicher" als die CUDA-Implementierung, sowohl hashes pro Sekunde als auch hashes pro Watthttps://en.bitcoin.it/wiki/Mining_hardware_comparison... | |
| » Gesamten Kommentar lesen | |
| #8 Re: FAQ: GPU Features im Detail | gmp, 00:51 22.12 |
Vegas Pro 12 unterstützt OpenCL wie viele andere Programme, die keine Erwähnung fanden. ... | |
| » Gesamten Kommentar lesen | |
| #7 Re: FAQ: GPU Features im Detail | Peter Reelfs, 10:44 21.12 |
Hallo,wie schon von Klaus Hinum klargestellt, ist dieser Artikel weder im Auftrag noch in Zusammenarbeit mit Nvidia entstanden. Ich bin selber kein Spieler und und habe mich bei der Auswahl der Spieletitel auf Aussagen aus dem Web verlassen. Dabei ist mir leider ein Fehler unterlaufen, sodass ich Spiele die Unterstützung von PhysX bescheinigt habe, die diese gar nicht haben. Ich habe den Artikel geändert und auch die Verlinkung aktualisiert. Er sollte in Kürze in aktualisierter Version online sein. Ich bitte für das Versehen um Entschuldigung und bedanke mich für die Hinweise.Peter Reelfs... | |
| » Gesamten Kommentar lesen | |
| #6 Re: FAQ: GPU Features im Detail | Klaus Hinum, 08:29 21.12 |
Falls wir ein Advertorial schalten, ist dies _immer_ eindeutig gekennzeichnet. Die Geschwindigkeitsaussagen bei CUDA sollen nur das Potential verdeutlichen, gelten aber natürlich genauso für OpenCL. Einige Benchmarks zu OpenCL findet man z.B. in unserem Trinity Artikel.http://www.notebookcheck.com/Trinity-im-Test-AMD-A10-4600M-APU.74604.0.html... | |
| » Gesamten Kommentar lesen | |
| #5 Re: FAQ: GPU Features im Detail | Snafu Erolga, 12:17 20.12 |
muss da nicht irgendwo "Werbeanzeige" stehen? :>... | |
| » Gesamten Kommentar lesen | |
| #4 Re: FAQ: GPU Features im Detail | Crysis Fan, 00:07 20.12 |
Also am Artikel habe ich ansich nichts zu mekern. Was mich aber stört ist das Crysis 1-3 nunmal kein PhysX oder Havok nutzt. Crysis oder besser gesagt die Cryengine 1-3 nutzt das nicht und hat es nicht nötig. Also auf Nvidias Homepage steht nichts und wenn was steht ist es falsch.Ausserdem schreibt man es Crysis nicht Crisis. Ausserdem wäre auch wichtig zu wissen, das PhysX nunmal keine Zukunft hat, da es Nvidia Only ist, alles was nur einem Hersteller gehört und nicht allen hat auf kurz oder lang keine Zukunft. Opensource ist die zukunft.AMD hat ja nichts verpasst bei PhysX die Spiele die es nutzen sind meist nur auf High End Karten nutzbar unter PhysX, aber Havok (Intel un co) kann man besser nutzen und ist performanter dank CPU Optimierung. Ich habe eine 9600M GT, 9800M GTS und eine GTX 560M zuhause, aber bei jedem laufen PhysX Spiele niecht rund damals und Heute nicht. Es ist nunmal unwichtig und schlecht ausgelegt das war es früher und heute.Also anders gesagt, AMD hat DX11.1 GPUs und Nvidia nicht sowas ist auch kaum der Rede wert^^... | |
| » Gesamten Kommentar lesen | |
| #3 Re: FAQ: GPU Features im Detail | Lame, 22:53 19.12 |
Artikel sponsored by: NVIDIA >:(... | |
| » Gesamten Kommentar lesen | |
| #2 Re: FAQ: GPU Features im Detail | X220, 19:40 19.12 |
[quote author=Redaktion link=topic=38896.msg199632#msg199632 date=1355925542]Total Media Theat[color=red]er[/color] 5.2[/quote]Der Name des Programms lautet [b]Total Media Theat[color=red]re[/color] 5.2[/b]... | |
| » Gesamten Kommentar lesen | |
| #1 Re: FAQ: GPU Features im Detail | godfather, 19:33 19.12 |
Nett geschriebener Artikel... und eine wunderbare Werbung für Nvidia. Gerade der Part der CUDA mit der Geschwindigkeit so sehr anpreist passt wunderbar auch auf OpenCL. Mag sein, dass es verbreiteter ist (Wobei gerade das Beispiel Seti@Home sowohl als CUDA als auch OpenCL Release existiert. Ich habe zwar selber auch eine Nvidia Grafikkarte, aber verpackt doch die Werbung für unseren Grafikkartenhersteller etwas weniger offensichtlich, oder kennzeichnet sie vernünftig als Werbung.Wie gesagt nett geschriebener Werbeartikel verschleiert als Technologie FAQ.... | |
| » Gesamten Kommentar lesen | |











