Nvidia bringt ersten öffentlichen OpenCL-Treiber
Wenngleich Nvidia in den letzten Jahren in Sachen GPU-Computing stark auf ihre hauseigene Lösung „CUDA“ gesetzt hat und damit auch an einigen Stellen Erfolge feiern konnte, verlangt der Markt zunehmend nach Hersteller-übergreifenden Lösungen, wenn es um die Berechnung von normalen Aufgaben auf der Grafikkarte geht.
Ein Ansatz dafür ist unter anderem die freien OpenCL-API, welche prinzipiell von jedem Hersteller verwendet werden kann. Im Dezember 2008 erreichte die Programmierschnittstelle erstmals die Version 1.0. Bereits im April hatte Nvidia im Rahmen ihres „OpenCL Early Access Program“ einen ersten OpenCL-fähigen Treiber an eine Auswahl von Entwicklern verteilt. Knapp ein halbes Jahr später hat Nvidia nun einen ersten öffentlichen Treiber mit OpenCL-Unterstützung sowie zahlreiche Hilfsmittel zur Erstellung und Optimierung von OpenCL-Applikationen zum freien Download ins Netz gestellt. Unterstützt werden dabei alle Grafikkarten mit einem Chip der G80-Generation oder neuer – einschließlich aller mobilen (M-Serie) und professionellen Serien (Quadro) sowie der „Super-Computing“-Lösung „Tesla“.
Neben den Treibern für Windows-, Linux- und MacOS-Plattformen bietet Nvidia zudem einen OpenCL Visual Profiler an, der eine grafische Analyse von OpenCL-Anwendungen ermöglichen soll, um etwaige Engpässe in der Hard- oder Software aufzuzeigen. Zudem stellt Nvidia eine ganze Reihe an Code-Beispielen und Best-Practices zur Verfügung, sodass auch Neueinsteiger schnell einen realen Überblick über die Funktionen und Möglichkeiten erhalten. Dazu gehört unter anderem auch die Unterstützung von mehreren GPUs. Sowohl die Treiber, als auch die Code-Beispiele sind kompatibel zum CUDA Toolkit in der Version 2.3. Auch wenn der Vormarsch der freien GPU-Computing-Lösung kaum noch aufzuhalten ist und Nvidias hauseigenes CUDA-Programm langfristig womöglich zum Scheitern verurteilt ist, so sind die gesammelten Erfahrungen aus den letzten Jahren in diesem Bereich sicherlich nicht vergebens gewesen.