OpenCL: Verschiedene Geräte ansprechen
-
Hallo zusammen,
Ich arbeite mich gerade in OpenCL ein und steh noch relativ weit am Anfang. Dabei ist mir gerade eine Frage aufgekommen, auf welche ich bisher keine Antwort fand. Vielleicht könnt ihr mir da weiterhelfen.
Wenn ich ein Programm mit OpenCL kompilieren möchte, brauch ich ja ein OpenCL SDK. Das bekomme ich von Intel, AMD, Nvidia oder sonst wem. Wenn ich nun z.B. gegen das SDK von Nvidia linke und das Programm auf einem Computer ausführe, welcher eine AMD Graphikkarte besitzt, funktioniert dies dann trotzdem?
Oder wenn ich das Nvidia SDK brauche, erkennt dann diese OpenCL DLL von Nvidia auch die CPU als mögliches Device?
Kann ich mein Programm jeweils nur gegen eine OpenCL DLL eines einzigen Device linken? Oder hat die DLL nichts mit den zur Verfügung stehenden Devices zu tun?Vielen Dank im Voraus.
Grüssli
-
Ok, ich denke, dass ich es selbst gefunden habe. OpenCL hat eine ICD (Installable Client Driver) Spezifikation wie OpenGL. Der folgende Thread aus dem Forum von Khronos könnte hilfreich sein:
http://www.khronos.org/message_boards/viewtopic.php?f=28&t=2562Zudem hier ein paar Infos zum ICD von OpenCL:
http://developer.amd.com/support/KnowledgeBase/Lists/KnowledgeBase/DispForm.aspx?ID=71
http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txtDann werde ich dies mal ausprobieren ...
Grüssli