我希望能够在NVIDia上以GPU模式运行我的软件,在ATI或Intel上以CPU(软件)模式运行。我怎样才能做到这一点?
就像PhysX一样。
目前我在ATI卡片机上收到错误,指出未找到nvcuda.dll。
请不要建议OpenCL。 This问题与我的问题类似。但OpenCL的答案对我来说是不可接受的。
我使用的是Windows 7 + Visual Studio 2008
答案 0 :(得分:8)
将此转换为答案:
有一个名为GPU Ocelot的软件可以确定在运行时运行gpu代码的硬件:http://code.google.com/p/gpuocelot/
通过Ocelot运行所有通话, 应该。
从主页:
Ocelot是异构的模块化动态编译框架 系统,为CUDA程序提供各种后端目标 PTX虚拟指令集的分析模块。 目前是Ocelot 允许CUDA程序在NVIDIA GPU,AMD GPU和 x86-CPU全速而无需重新编译。
答案 1 :(得分:1)
现在有计划在非NVidia硬件上运行CUDA,例如Otoy:http://venturebeat.com/2016/03/09/otoy-breakthrough-lets-game-developers-run-the-best-graphics-software-across-platforms/
本质上,它将CUDA调用转换为其他后端(Metal,Vilkan,DirectX,OpenGL),以允许为CUDA编写的应用程序在一系列平台上运行。我们不知道是否可以简单地将他们的nvcuda.dll放在正确的位置,从而立即让您的应用程序正常工作,或者如果开发人员在部署软件之前必须更改某些内容。
到目前为止还没有公开发布。