OpenCL无法找到GPU设备:NVIDIA GPU(Quadro K4000)+ Visual Studio 2015

时间:2015-11-23 22:40:59

标签: opencl gpu gpgpu nvidia

刚开始学习OpenCL并使用VS2015设置Visual Studio项目。不知何故,代码只能找到1个平台(我猜它应该是CPU),并且找不到GPU设备。有人可以帮忙吗?详细信息如下:

  1. GPU:Nvidia Quadro K4000
  2. 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”。他们都指向上述位置。

  3. 在Visual Studio中,项目设置为

      

    " 项目属性" - > "的 C / C ++ " - > " 其他包含目录" - > " $(CUDA_PATH)\include"

         

    " 项目属性" - > "的链接器" - > " 其他图书馆目录" - > " $(CUDA_PATH)\lib\Win32"

         

    " 项目属性" - > "的链接器" - > "的输入" - > " 其他相关性" - > " OpenCL.lib"

  4. 代码非常简单:

    #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>。会出现什么问题?谢谢你的帮助。

0 个答案:

没有答案