Home / Nachrichten / OpenCL ist da - auch für Linux

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Neuer Standard für Grafikchip-Programmierung

OpenCL ist da - auch für Linux

29.09.2009 Mit Spannung erwartet, hat Nvidia nun die ersten OpenCL-fähigen Treiber vorgestellt. Und nicht nur das: Linux-User bekommen dieses mal direkt bei Veröffentlichung dasselbe Paket wie Windows-User, was dem plattformunabhängigen Konzept von OpenCL Rechnung trägt.

Der von Apple vorangetriebene, plattform- und herstellerunabhängige Standard zur Programmierung von Grafikchips für alles außerhalb des Grafikbereichs, OpenCL, ist nach der ersten Veröffentlichung in MacOS X 10.6 nun auch für Windows und Linux verfügbar, wie Phoronix berichtet. Nvidia hat als erster OpenCL-fähige Treiber vorgestellt, die Veröffentlichung von ATIs OpenCL-Treibern sollte auch nicht mehr lange auf sich warten lassen. Voraussetzung ist eine CUDA-fähige Nivida-GPU ab der Geforce 8000er-Serie. Nvidia bietet neben dem OpenCL-fähigen Linux-Treiber in Version 190.29 auch für alle Plattformen ein OpenCL-SDK, Beispielcode und einen OpenCL Visual Profiler, welcher beim Optimieren der eigenen OpenCL-Programme helfen soll, zum Download an.

OpenCL wurde zwar entscheidend von Apple vorangetrieben, verantwortlich dafür zeichnet allerdings die Khronos Group, deren Server wohl dem momentanen Ansturm durch die Nvidia-Veröffentlichung nicht standhält und derzeit nicht erreichbar ist. Neben Apple, AMD/ATI und Nvidia gehören der Khronos Group noch 30 andere Firmen an, unter anderem IBM, Intel, ARM, Freescale, Texas Instruments, STM, S3, 3DLABS, QNX, Qualcomm, Nokia, Samsung und Toshiba sowie auch einige bekannte Spiele-Hersteller wie Activision Blizzard und Electronic Arts.

Nun gibt es endlich einen Standard, auf den Programmierer sich verlassen können, so dass ihr Code auf allen Plattformen und Grafikchips läuft. Dies sollte der Nutzung von Grafikchips als Anwendungsbeschleuniger starken Auftrieb bescheren. Bisher konnten Programmierer hierfür entweder auf proprietäre Techniken wie Nvidias CUDA oder ATIs Stream setzen oder aber mittels OpenGL- oder DirectX-Shadern (GPGPU) grafikchipunabhängig programmieren. Da GPU-Shader aber primär für Grafik entworfen wurden war die Realisierung von normalen Rechenaufgaben per Shader sehr mühsam. Das Ergebnis war - je nach Algorithmus und Implementierung - oft nicht so leistungsfähig, wie man erwarten könnte und nutzte das theoretische Rechenpotential der Grafikchips oft nicht aus. OpenCL soll dies nun ändern: Es soll leicht zu programmieren sein und den Programmierer von mühsamen Aufgaben wie der händischen Optimierung des Codes auf die Eigenheiten der Grafikchips entlasten. Eine kurze technische Vorstellung was OpenCL ist, kann und wie es funktioniert findet sich auf Apples Homepage.

Da nur wenige Programmierer und Softwarefirmen willens waren, mühsam Code zu schreiben, der nur auf den Grafikchips eines Herstellers läuft (Der Markt für alle Grafikchips inklusive Chipsatzgrafik verteilt sich momentan zu 49,7% auf Intel, 17,1% auf AMD/ATI und zu 31,1% auf Nvidia mit 2.1% sonstigen Herstellern) ist die Einführung von OpenCL, was dieses Manko behebt, stark zu begrüßen. Nicht nur auf Grafikchips beliebiger Hersteller läuft OpenCL (Intel hat ebenfalls schon OpenCL-Unterstützung für ihren kommenden Grafikchip Larabee angekündigt), auch für normale CPUs, DSPs und den in den schnellsten Supercomputern und der Playstation 3 verbauten Cell-Prozessor soll es OpenCL-Implementierungen geben, so dass schlussendlich auf fast jeder Hardware OpenCL-Code lauffähig ist.

Die Rechenpower moderner Grafikchips eignet sich inzwischen für sehr viele rechenintensive Aufgaben, unter anderem für Video- und Audio-Encoding, Videoeffekte, Raytracing, Kryptographie, Physiksimulation, Flüssigkeits-Simulation, 2D-Grafik-Filterberechnung, Soundsynthese oder Audio-Effektberechnung.

Für Linux ist OpenCL eine tolle Sache, ebenso wie OpenGL für Grafik und OpenAL für Sound: Code ist einfach zwischen den Welten portierbar und bedarf keiner Anpassungen. Microsoft hat die Entwicklung etwas verschlafen, ihre proprietäre Alternative zu OpenCL, DirectX Compute Shader genannt, ist erst Ende Juli mit DirectX 11 im Service Pack 2 für das nur mäßig populäre Windows Vista eingeführt worden, die Aufmerksamkeit der Entwicklergemeinde gilt allerdings deutlich eher OpenCL.

Einem Freund empfehlen    Druckansicht Bookmark and Share

Kommentare
AMD/ATI ist schon da
Frank Störzer, Dienstag, 29. September 2009 13:08:15
Ein/Ausklappen

AMD/ATI hat für seine Grafikkarten bereits eine Beta auf den Weg gebracht. Man muss sich nur als Entwickler registrieren, was aber an sich kein Problem darstellen sollte, da man sich, wenn man Stream früher schon genutzt hatte, sich eh schon registriert hatte.

Eine Meldung auf Heise gab es bereits Anfang August bezüglich des OpenCL SDKs:

http://www.heise.de/ix/AMD-...r-OpenCL--/news/meldung/143083

Gruß

Frank Störzer


Bewertung: 84 Punkte bei 5 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: AMD/ATI ist schon da
Daniel Kottmair, Dienstag, 29. September 2009 13:11:04
Ein/Ausklappen

Betas für Entwickler gab's auch von Nvidia schon lange, siehe Phoronix-Meldung. Aber das hier ist der erste public release von OpenCL für alle Nicht-MacOSler! ;-)


Bewertung: 152 Punkte bei 5 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: AMD/ATI ist schon da
Frank Störzer, Dienstag, 29. September 2009 13:58:08
Ein/Ausklappen

Die Veröffentlichung von Nvidia ist nicht ohne Angabe von persönlichen Daten herunterladbar. Im Gegensatz zu Nvidia muss man nicht einem speziellen erlauchten Kreis angehören, um an die Beta von AMD/ATI zu kommen, dies war vor der Veröffentlichung dieses Nvidia SDK aber der Fall. Beide Unternehmen führen ihre SDKs in ihren Developer-Seiten, was für mich ergibt, dass dies zwar ein "public release" von Seiten Nvidias ist, aber auch nur als BETA. Wenn es wirklich für die breite Masse wäre, wäre es bei den normalen Treibern und ohne Registrierung bzw. Angabe persönlicher Daten zugänglich.

Aber es ist von Nvidia und mit großem Tamtam auf den Markt gekommen, daher ist es mehr als die Veröffentlichung von AMD/ATI. Ich habe nichts gegen Grafikakrten oder Chipsätzen von Nvidia, auch wenn der Satz davor dies vielleicht impliziert. Ich beobachte nur das Verhalten von Nvidias und sehe eine ums überleben kämpfende Firma, welche keine wirklich guten Produkte abseits vom Chipsatz ION hat. In einigem Mögen sie besser sein als ihre Konkurrenz, in manchem anderen eher schlechter. Wenn man sich die Entwicklung der Treiber von AMD/ATI ansieht und teilweise liest, welche Probleme Nvidia mit aktuelleren Treibern in manchen Kombinationen hat, kehrt sich hier gerade das allgemeine Bild um. Die Lizenzpolitik, welche Nvidia betreibt ist auch nicht unbedingt förderlich für ihr überleben. Nvidia überlebt aktuell nur durch ihren Ruf und durch ein geschicktes Marketing. So wie auch diese Ankündigung nur ein Baustein im Marketingkonzept ist.

Wenn überhaupt, ist das erste öffentlich zugängliche OpenCL SDK das von Apple im Snow Leopard. Es ist egal, welches OS oder welche Hardware als Basis genommen wird. Wenn man einen SPARC-Rechner hat mit Solaris, interessieren die SDKs von AMD/ATI, Apple und Nvidia überhaupt nicht und aus Sicht dieser Person ist das erste öffentlich zugängliche OpenCL SDK noch nicht zu haben. Marketing regiert die Welt und so lange dies so ist, interessiert eine Zeitlinie nur den Historiker.
Gruß

Frank Störzer


Bewertung: 125 Punkte bei 7 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: AMD/ATI ist schon da
Daniel Kottmair, Dienstag, 29. September 2009 14:49:38
Ein/Ausklappen

Meiner Meinung nach schenken sich die beiden Firmen nix. Okay, ATI hilft *etwas* beim RadeonHD-Projekt mit, was löblich ist, aber auf der anderen Seite stellen sie die Unterstützung für gar nicht mal so alte GPUs in ihrem eigenen Treiber einfach so ein, was zu Recht sehr viele Leute verärgert hat. Im Testlabor steht gerade ein nagelneues Gigabyte-Board mit ATI785 Chipsatzgrafik - welche nach der Installation des ATI-Treiber rechts unten am Screen als "unsupported Hardware" gewatermarkt wird. Wie gesagt: Ein nagelneues Board!

Außerdem ist die Treiberqualität und die Performance von Nvidia unter Linux einfach besser. Der UGNX-SpecViewperf-Subtest stützt immer noch auf ATI-Karten ab, mit Nvidia kein Problem! Bei ATI habe ich auch immer wieder den Eindruck, dass sich die GPU mit so etwas simplem wie Fullscreen-Video-Replay abkämpft und es gerade noch so flüssig hinkriegt, mit Nvidia geht das völlig stressfrei!
Und VDPAU war auch ne nette Sache von Nvidia - wobei das eben hoffentlich bald genauso durch OpenCL abgelöst wird wie CUDA-Zeug! ;-)


Bewertung: 111 Punkte bei 5 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: AMD/ATI ist schon da
Frank Störzer, Dienstag, 29. September 2009 15:48:42
Ein/Ausklappen

Da hast du auch wieder Recht, wobei das mit dem nicht mehr unterstützen machen beide. Nvidia durch unregelmäßig erscheinende Legacy-Treiber, AMD/ATI durch die OSS-Treiber, unter Windows gibt es hier ebenfalls unregelmäßig Legacy-Treiber.

Das VDPAU läuft hat mit dem Treiber von Nvidia zu tun, mit dem ich schon mal meine liebe Mühe hatte, mittlerweile sind die beiden Grafikarten im Legacy-Bereich und wahrscheinlich nicht mehr wirklich schmerzfrei handhabbar. Gut, die eine ist von Anfang dieses Jahrzehnts. AMD/ATI hat auch eine entsprechende lib für die UVD-Engine ihrer Karten, in wie weit diese aber funktionieren kann ich Mangels Ubuntu nicht sagen, ich nutzte Debian selber und habe hier eigentlich nur dann Probleme mit den AMD/ATI-Treibern, wenn ich selber Bockmist im System fabriziere. Wobei ich hier das ausmisten als leichter empfand, als mit den Nvidia-Treibern früher.

Das Gigabyte-Board mit dem 785G als unsuported angezeigt wurde, kann an einem fehlenden Eintrag im Treiber gelegen haben. Vielleicht war der verwendete Treiber gerade noch nicht neu genug und der, der den Chipsatz unterstüzende erst ein paar Tage später auf dem Markt. Was genau da schief gelaufen ist, ist bei beiden Herstellern möglich. Bei Nvidia musste ich früher mal einen Beta-Treiber nehmen, um den Chipsatz des Boards zu verwenden, das war 2 Monate nach Veröffentlichung des Boards, wobei dies unter Windows war. Der verfügbare konnte den Chipsatz zwar einbinden, aber mit so einer krottigen Geschwindigkeit, dass Arbeiten nicht möglich war. Zudem war das System an sich zu Instabil. Mit dem Beta-Treiber flutschte es damals (ist auch schon wieder 5 Jahre her). Linux auf dem selben Rechner war aber auch nicht besser, da gerade Komponenten von Nvidia einige Zeit brauchten, um vom Kernel nutzbar zu sein, heute mag das generell besser sein. Es sollte normal nie vorkommen, das neue Hardware vom Treiber nicht erkannt oder unterstützt wird, kommt aber regelmäßig vor.

Ich selber hatte bei Videos unter Linux mit AMD/ATI-Karten bisher keine Probleme mit Fullscreen oder mehr als ein Video. Nur aktuell mag unter KDE 4.3 das Composit nicht, ist aber für mich eher Spielerei als notwendig. Ich vermute, ich müsste nur irgendwas in der xorg.conf ändern und dann lief das wieder, aber wie gesagt, ist nur Spielerei.

Gerade was solche Benchmarks betrifft, bin ich sehr skeptisch. Wie nah sind diese an den Specs der CPU/GPU/Sprache, welche getestet werden soll. Gerade was OpenGL angeht, sagt man, dass Nvidia besser sei. Schaut man sich die Anwendungen an, halten die sich nicht an die Specs sondern an Spezialitäten, die Nvidia in ihren Karten einsetzt. Wenn diese von AMD/ATI nicht unterstützt werden, mag es vielleicht ärgerlich sein. Allerdings ist dies nicht unbedingt ein Fehler von AMD/ATI, eher ein Fehler der Softwarehersteller, nur den mit Sonderwegen gespickten Pfad zur Verfügung zu stellen. Viele der verwendeten Techniken sind in keiner OpenGL-Spec (endgültige Version) erwähnt, aber in der Vendor-Spec von Nvidia. So etwas untergräbt jeden Standard, einem Standard, den diese Firma sogar leitet (Nvidia hat eine Führungsrolle in der Khronos-Gruppe).

Gruß

Frank


Bewertung: 178 Punkte bei 7 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

2445 Hits
Wertung: 200 Punkte (15 Stimmen)

Schlecht Gut

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...