【发布时间】:2016-02-26 05:09:02
【问题描述】:
刚开始学习 OpenCL 并使用 VS2015 设置 Visual Studio 项目。不知何故,代码只能找到1个平台(我猜应该是CPU),找不到GPU设备。有人可以帮忙吗?详细信息如下:
- GPU:Nvidia Quadro K4000
-
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>。会有什么问题?感谢您的帮助。
【问题讨论】: