我正在开发一个混合 OpenCL 应用程序,它必须在运行时决定是否使用 GPU 实现。
是否有跨平台(即英特尔、nvidia 和 ati)的方式来确定运行应用程序的计算机是否支持 opencl 框架,而不会导致应用程序崩溃?一开始我只是为Windows平台开发。
#include <CL/cl.h>
#include <iostream>
int main()
{
std::cout << "Start cross paltform testing" << std::endl;
cl_platform_id platform[1];
clGetPlatformIDs(1, platform, 0);
std::cout << "End cross paltform testing" << std::endl;
return 0;
}
目前我收到错误:
The application was unable to start correctly (0xc000007b)...
如果我尝试在上述情况下启动它。
注意:实际上,至少对于 nvidia 来说应该是可能的。在这种情况下,我已经从 nvidia GPU SDK 测试了 oclDeviceQuery,它可以正常工作。只需将 Windows/System 文件夹中的“opencl.dll”复制到应用程序文件夹中即可。我不知道为什么我的应用程序在相同的情况下崩溃。
先感谢您。