2010-02-23 4 views
6

Ich habe vor kurzem angefangen, zu lernen, wie man openCL benutzt, um einen Teil meines Codes zu beschleunigen. Bis jetzt ist der Geschwindigkeitsgewinn beeindruckend. In einem Fall lief der Code bis zu 50x schneller als auf der CPU. Ich frage mich jedoch, ob ich diesen Code in einer Produktionsumgebung verwenden kann. Der Grund dafür ist, dass beim ersten Versuch, den Beispielcode auszuführen, nichts funktioniert hat. Ich konnte es zum Laufen bringen, indem ich den Treiber auf der Nvidia openCL SDK Downloadseite herunterlade (ich habe eine GeForce GTX260). Es gab mir während der Installation ein Blau, aber danach konnte ich das Beispielprogramm ausführen und meinen eigenen Code erstellen.Kann ich openCL in einer Anwendung verwenden, die ich an Nichtentwicklungsmaschinen verteile?

Hat die Tatsache, dass es "out of the box" für mich nicht funktioniert bedeutet, dass die Mainstream-Treiber es noch nicht unterstützt, trotz der Tatsache, dass es speziell geschrieben wird, dass es auf der Treiber-Download-Seite tut? Was ist mit ATI-Unterstützung? Muss jeder den speziellen Treiber herunterladen, der mir bei der Installation einen blauen Bildschirm gab?

Kurz gesagt, ist openCL bereit für den Produktionscode?

Wenn jemand mir einige Details geben kann, würde ich gerne wissen. Ist jemand in der Lage gewesen, ein einfaches Programm auf verschiedenen Geräten auszuführen, ohne etwas mit SDK zu installieren?

+2

Ich weiß nicht, wie produktionsreife openCL ist, aber sicher sein und Ihre Anwendung so zu entwerfen, dass es openCL erkennen und traditionelle CPU-Methoden verwenden kann, wenn nicht verfügbar, und der Benutzer kann leicht reguläre CPU-Berechnungen erzwingen. –

+1

Ich weiß, dass du bereits das "gehe zu Khronos Forum für die Antwort" gutgeschrieben hast, aber wenn du das tust, wirst du keine Leute bekommen, die darauf hinweisen, was MS macht. Ich habe genau das gleiche Dilemma ... Ich habe einen GPU-Code, der für etwas, das ich tue, notwendig ist, aber ich habe keine Ahnung, wie man ein tatsächliches wiederverwendbares Werkzeug an die Kunden liefert. Wenn Sie GPU-Code ausführen, den Sie auf Kundenboxen bereitstellen möchten, haben Sie zwei Möglichkeiten: 1) Verwenden Sie OpenCL auf Snow Leopard auf einem Mac oder 2) DirectCompute und Windows 7 + DirectX 11 –

Antwort

3

Sie können eine genaue Antwort auf die OpenCL-Foren auf den Khronos Group Message Boards finden. Die OpenCL-Arbeitsgruppe lebt regelmäßig dort.

1

Hat jemand in der Lage ist, ohne die Installation etwas SDK Zusammenhang ein einfaches Programm auf einer Reihe von anderem Gerät laufen zu lassen?

Nop. Auf ATIs GPUs müssen die Endanwender beispielsweise ATI Stream SDK installieren, um OpenCL-Code auszuführen (ein aktueller Grafiktreiber reicht nicht aus).

1

Sie können DirectCompute (Microsofts Version der GPU-Programmierung) ausprobieren oder Ihre OpenCL-Arbeit auf einem Snow Leopard Mac ausführen. Das sind die zwei Wege (die ich kenne), dass Sie eine GPU-Programmierlösung an einen anderen Benutzer ohne Treiber oder andere Installationsaufwand liefern können.

Verwandte Themen