Надеюсь, это не дубликат, я огляделся, но поправьте меня, если я ошибаюсь.
Недавно я установил 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 как устройство.
К сожалению, он по-прежнему загружает задачи в ЦП, но есть большая вероятность, что это из-за моего кода, и я еще не понял, как создать контекст на графическом процессоре.