Эксклюзивный режим вычислений с OpenCL + NVidia - PullRequest
11 голосов
/ 23 апреля 2010

У меня вопрос к эксклюзивному режиму вычислений с NVidia + OpenCL.

Я могу настроить эксклюзивный режим вычислений (стр. 74 из руководства по программированию cuda 3.0) с помощью nvidia-smi на nvidia-gpu. это означает, что только одна программа может вычислить на GPU.

CUDA графики выполнения, чем приложение автоматически.

но у меня проблема с opencl-программами в этом случае: если одно приложение работает на графическом процессоре с установленным монопольным режимом вычислений и вторые вызовы opencl-программы clGetDeviceInfo(..., CL_DEVICE_AVAILABLE, ...) с тем же графическим процессором - result == CL_TRUE. После этого, если opencl-app пытается создать контекст на этом устройстве, происходит сбой запущенного приложения (обоих).

Как узнать доступный графический процессор с OpenCL?

Спасибо.

Ответы [ 2 ]

1 голос
/ 07 июня 2010

clGetDeviceIds возвращает количество устройств и их идентификаторы устройств. Затем вы можете проверить, доступно ли каждое устройство или нет. Хотя я не уверен, что это решит проблему.

0 голосов
/ 26 июля 2011

У меня была похожая проблема, когда я хотел найти лучшее устройство OpenCL в списке.Я не мог найти решение, поэтому я написал его сам.Он попытается создать контекст на устройстве.Если это невозможно, он попробует следующий.

Он также поддерживает несколько платформ OpenCL.Вы можете выбрать между nvidia (только gpu), amd (gpu & cpu), intel (cpu) и apple (gpu & cpu).

Вы можете найти его на github: https://github.com/nbigaouette/oclutils/

Я все еще ищу лучший механизм блокировки.

...