我正在研究混合OpenCL应用程序,它必须在运行时决定是否使用GPU实现。OpenCL/CPU。测试OpenCL框架是否可用
是否有跨平台(即英特尔,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”复制到应用程序文件夹中即可。我不知道为什么我的应用程序在相同的情况下崩溃。
预先感谢您。
如果你只靶向窗户里没有的OpenCL平台,你不能尝试在入口处手动加载OpenCL dll。如果你得到一个未发现的错误,处理它并回复给你CPU代码路径。 – talonmies