Только что начал изучать OpenCL и настроить проект Visual Studio с использованием VS2015. Так или иначе, код может найти только одну платформу (я думаю, это должен быть процессор) и не может найти устройство GPU. Кто-то может помочь? Подробная информация выглядит следующим образом:OpenCL не может найти устройство GPU: NVIDIA GPU (Quadro K4000) + Visual Studio 2015
- 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-битной системы)Установщик создал t wo "
CUDA_PATH
" и "CUDA_PATH_V7_5
". Оба они указывают на указанное место.В Visual Studio, проект создан как
"Свойства проекта" -> "C/C++" -> "Additional Include Directories" -> "
$(CUDA_PATH)\include
"" Свойства проекта "->" Linker "->" Дополнительные каталоги библиотек "->"
$(CUDA_PATH)\lib\Win32
"" Свойства проекта "->" Linker "->" ввода "->" Дополнительные зависимости "->"
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>
. В чем проблема? Спасибо за помощь.