Nsight показывает, что «GPU 0 (GeForce 940MX)» недоступен для OpenCL - PullRequest
0 голосов
/ 22 октября 2018

Я выполнил анализ производительности Nsight в своем приложении OpenCL + OpenGL, и в результатах я вижу это:

enter image description here

Вот как я запускаю OpenCL:

std::vector<cl::Platform> all_platforms;
cl::Platform::get(&all_platforms);

auto default_platform = all_platforms[1];
cout << "Using platform: " << default_platform.getInfo<CL_PLATFORM_NAME>() << std::endl;

std::vector<cl::Device> devices;
default_platform.getDevices(CL_DEVICE_TYPE_GPU, &devices);
for (unsigned d = 0; d < devices.size(); ++d) {
    if (checkExtnAvailability(devices[d], CL_GL_SHARING_EXT)) {
        device = devices[d];
        break;
    }
}
cout << "Using device: " << device.getInfo<CL_DEVICE_NAME>() << std::endl;
cl_context_properties props[] =
{
    CL_GL_CONTEXT_KHR,   (cl_context_properties)wglGetCurrentContext(),
    CL_WGL_HDC_KHR,     (cl_context_properties)wglGetCurrentDC(),
    CL_CONTEXT_PLATFORM, (cl_context_properties)default_platform(),
    0
};
context = cl::Context(device, props);

Я получаю этот вывод:

Using platform: NVIDIA CUDA
Using device: GeForce 940MX

Кроме того, я печатаю информацию GL следующим образом:

cout << "GL info: " << glGetString(GL_VENDOR) << "; " << glGetString(GL_VERSION) << endl;

и получаю:

GL info: NVIDIA Corporation; 3.2.0 NVIDIA 411.63

Есть идеи, что сломано?Мой драйвер GeForce является точной рекомендованной версией для Nsight.

Примечание. У меня установлен CUDA Toolkit 10.0.

...