OpenCL не отображает графический процессор Nvidia - PullRequest
0 голосов
/ 21 января 2019

Надеюсь, это не дубликат, я осмотрелся, но поправьте меня, если я ошибаюсь.

Я недавно установил pyopencl через Anaconda, и он без проблем работает на моем процессоре Intel.,Однако, когда я звоню:

for platform in get_platforms():
    print(platform.name)

ctx = create_some_context()

for dev in ctx.devices:
    print(dev.name)

Все, что я получаю, это:

Portable Computing Language
Choose platform:
[0] <pyopencl.Platform 'Portable Computing Language' at 0x7f0ff2205020>
>> 0
Choice [0]:0
Set the environment variable PYOPENCL_CTX='0' to avoid being asked again.
pthread-Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

У меня есть Nvidia GeForce GTX 1050 Ti, и версия драйвера 390.87 с CUDA 9.1, котораядолжно быть совместимо с примечаниями к выпуску Nvidia.Я также использую Linux Mint 19.1 (если это уместно), и я немного новичок, когда дело доходит до этого, поскольку я имею опыт работы по физике, а не по информатике.

Я где-то читал (яне могу вспомнить где), что у меня должен быть файл nvidia.icd, но все, что присутствует, это файл pocl.icd в / home // anaconda3 / etc / OpenCL / vendors, и я не уверен, как / где получить nvidia.icd файл.

Заранее благодарен за любую помощь, и дайте мне знать, если вам нужна дополнительная информация!

Редактировать: добавлен результат get_platforms()

Изменить 2: мне удалось найти файл nvidia.icd в моем каталоге /etc/OpenCL/vendors.Я скопировал это в каталог Anaconda, /home/<user>/anaconda3/etc/OpenCL/vendors и pyopencl теперь распознают Nvidia CUDA как платформу, а мой GPU - как устройство.

К сожалению, он все еще загружает задачи вПроцессор, но есть хороший шанс, что из-за моего кода, и я еще не понял, как создать контекст на GPU.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Возможно, мое предложение относится только к ноутбукам (Intel CPU + Nvidia GPU), и это не ваш случай.У меня была эта проблема, когда я использовал tenoflow время назад.

В случае, если карта Nvidia не появляется на доступных устройствах (ответ @apemanzilla), проверьте, включен ли Performance Mode вnvidia-settings Простые профили .И наоборот, Режим энергосбережения включает только встроенный графический процессор Intel.

Дополнительные сведения о «Prime stuff» :-) в этот ответ

0 голосов
/ 21 января 2019

Ваша система имеет несколько платформ и устройств OpenCL, и create_some_context просто выберет одну.Если вы хотите использовать определенное устройство, вам нужно перечислить доступные платформы и устройства, используя get_platforms() и Platform.get_devices().

...