Die Frage ist meiner Meinung nach eine legitime Frage.
DirectX ist ein Framework (ein Bündel von Bibliotheken), das Programmierschnittstellen für Grafik, Sound und andere Peripheriegeräte bereitstellt, die hauptsächlich für Spiele entwickelt wurden. Direct3D ist, genau wie OpenGL, die Bibliothek, die für die Kommunikation mit der Grafikkarte zuständig ist. Ich nehme an, dass Ihre Frage auf Direct3D gerichtet war.
Wenn Direct3D aufgerufen wird, verwendet es die gleichen Multiprozessoren wie CUDA und noch mehr Komponenten (z. B. Rasterizer). Direct3D ist jedoch direkt mit den Grafikkartentreibern (in diesem Fall NVIDIA) verbunden. Im Grunde genommen rufen sowohl CUDA als auch Direct3D die NVIDIA-Treiber auf, allerdings auf eine etwas andere Art und Weise.
Es ist erwähnenswert, dass Pixel/Vertex Shader, die Teil von Direct3D/OpenGL sind, tatsächlich die Idee hinter CUDA ausgelöst haben. Zurück im Jahr 2007, Menschen schreiben allgemeinen Zweck wissenschaftlichen Code in Pixel-Shader.
P.S. DirectCompute ist der nächste Verwandte, den CUDA DirectX anbieten kann, und ermöglicht so eine plattformübergreifende (d. H. Nicht NVIDIA-) GPU-Entwicklung.
Die Antwort mit einem Wort ist nein. – talonmies
CUDA ist eine NVidia-Technologie. DirectX ist herstellerunabhängig. DirectCompute funktioniert auf Intel Integrated Graphics, NVidia und AMD Video Direct3D Feature Level 11.0 oder späteren Karten. Warum fragst du? –
Ich war neugierig, wie man mit nvidia-cards die volle Kontrolle/Optimierung der Spiele-Anwendungen übernimmt und dachte, ob CUDA-Programmierung der Weg war. – dave