Ошибка -1001 в clGetPlatformIDs Call!

Я пытаюсь начать работу с OpenCL. У меня две графические карты NVidia, я установил "драйвер разработчика", а также SDK с веб-сайта NVidia. Я собрал демо, но когда я запустил

./oclDeviceQuery

Я вижу:

OpenCL SW Info:

Ошибка -1001 в вызове clGetPlatformIDs!!!

Как я могу это исправить? Означает ли это, что мои карты nvidia не могут быть обнаружены? Я запускаю Ubuntu 10.10, а сервер X работает правильно с драйвером nvidia.

Я уверен, что проблема не связана с правами доступа к файлам, так как она не работает с sudo.

Ответы

Ответ 1

В моем случае я решил это, установив пакет nvidia-modprobe, доступный в ubuntu (utopic/multiverse). И сам драйвер (v346) был установлен из https://launchpad.net/~mamarley/+archive/ubuntu/nvidia

Конкретно, я установил nvidia-opencl-icd-346, nvidia-libopencl1-346, nvidia-346-uvm, nvidia-346 и libcuda1-346. Не уверен, что все они необходимы для OpenCL.

Ответ 2

Это результат не установки части ICD в среде Nvidia openCL. Профиль ICD проинструктирует ваше приложение о различных реализациях openCL, установленных в системе, поскольку могут сосуществовать несколько реализаций от разных поставщиков. Если ваше приложение не находит информацию ICD, оно дает ошибку -1001.

Ответ 3

Такая же проблема для меня в системе Linux. Решение состоит в том, чтобы добавить пользователя в группу видео:

# sudo usermod -aG video your-user-name

Ответ 4

Запустите программу как пользователь root. В случае успеха: у вас возникнут проблемы с расширением cl_khr_icd- для загрузки драйвера поставщика. Если вы не используете X11, вам необходимо создать файлы устройства вручную или (boot -) script: ERROR: clGetPlatformID -1001 при запуске кода OpenCL (Linux)

Ответ 5

Поскольку я просто потратил пару часов на это, я думал, что поделюсь: Я получил ошибку, потому что был подключен к машине на удаленный рабочий стол (mstsc). На самой машине все работало нормально.

Мне сказали, что он должен работать с TeamViewer, кстати.

Ответ 7

Я решил это в Ubuntu 13.10 saucy для intel opencl по созданной ссылке:

sudo ln -s /opt/intel/opencl-1.2-3.2.1.16712/etc/intel64.icd /etc/OpenCL/vendors/nvidia.icd

Ответ 8

Я только столкнулся с этой проблемой на ubuntu 14.04, и я не мог найти ЛЮБОЙ рабочий ответ в любом месте в сети, включая этот поток (хотя это было первым, что появилось в Google). То, что в конечном итоге работало для меня, было удалить ВСЕ предыдущее программное обеспечение nvidia, а затем переустановить его с помощью файла .run, предоставленного на веб-сайте nvidia. По какой-то причине установка компонентов с помощью apt-get кажется неудачной.

1) Загрузите файл CUDA.run: https://developer.nvidia.com/cuda-downloads

2) Очистите все предыдущие пакеты nvidia

sudo apt-get purge nvidia-*

3) Установите все компоненты файла запуска (вам, вероятно, придется остановить X или перезапустить в режиме восстановления, чтобы запустить это)

sudo sh cuda_X.X.XX_linux.run

Ответ 9

Это может быть связано с запросом clGetPlatformID несколькими потоками одновременно