的OpenCL / CPU.测试OpenCL框架是否可用
发布时间:2020-12-14 13:11:02 所属栏目:百科 来源:网络整理
导读:我正在研究混合OpenCL应用程序,该应用程序必须在运行时决定是否使用GPU实现. 是否存在跨平台(即用于intel,nvidia和ati)的方式,无论运行应用程序的计算机是否具有opencl框架支持,而不会崩溃应用程序?一开始我只为Windows平台开发. #include CL/cl.h#include
我正在研究混合OpenCL应用程序,该应用程序必须在运行时决定是否使用GPU实现.
是否存在跨平台(即用于intel,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)... 如果我尝试在上面描述的情况下启动它. 注意: 先感谢您. 解决方法
OpenCL.dll对于所有实现都是一样的,所以不要手动加载库@beonmies提出(这是更好但更复杂),你可以随身携带一个.它只提供访问已安装平台的界面.
要检查是否安装了任何平台,您应该使用 int main() { std::cout << "Start cross paltform testing" << std::endl; int num_platforms; cl_platform_id *platform; clGetPlatformIDs(0,NULL,&num_platforms); std::cout << "End cross paltform testing: " << num_platforms << " found" << std::endl; // Get platform IDs (not necessary right now,for future use) platform = new cl_platform_id[num_platforms]; clGetPlatformIDs(num_platforms,NULL); // ........ delete platform; return 0; } 因为即使没有安装OpenCL平台,您的代码也会说一切正常 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |