刚开始学习OpenCL并使用VS2015设置Visual Studio项目。不知何故,代码只能找到1个平台(我猜它应该是CPU),并且找不到GPU设备。有人可以帮忙吗?详细信息如下:
CUDA安装
CUDA位于:“
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
”OpenCL相关文件位于"
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include\CL
"和"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\Win32
" (假设是32位系统)安装程序创建了两个环境变量“
CUDA_PATH
”和“CUDA_PATH_V7_5
”。他们都指向上述位置。
在Visual Studio中,项目设置为
" 项目属性" - > "的 C / C ++ " - > " 其他包含目录" - > "
$(CUDA_PATH)\include
"" 项目属性" - > "的链接器" - > " 其他图书馆目录" - > "
$(CUDA_PATH)\lib\Win32
"" 项目属性" - > "的链接器" - > "的输入" - > " 其他相关性" - > "
OpenCL.lib
"
代码非常简单:
#include "stdafx.h"
#include <iostream>
#include <CL/cl.h>
using namespace std;
int main()
{
cl_int err;
cl_uint numPlatforms;
err = clGetPlatformIDs(0, NULL, &numPlatforms);
if (CL_SUCCESS == err)
cout << "Detected OpenCL platforms: " << numPlatforms << endl;
else
cout << "Error calling clGetPlatformIDs. Error code:" << err << endl;
cl_device_id device = NULL;
err = clGetDeviceIDs(NULL, CL_DEVICE_TYPE_GPU, 1, &device, NULL);
if (err == CL_SUCCESS)
cout << device << endl;
return 0;
}
代码编译并运行,但它不能是GPU设备。具体而言,变量device
的返回值为device = 0x00000000 <NULL>
。会出现什么问题?谢谢你的帮助。