Ошибка -1001 в clGetPlatformIDs Звоните! - PullRequest
16 голосов
/ 10 февраля 2011

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

. / OclDeviceQuery

Я вижу:

OpenCL SW Info:

Ошибка -1001 в clGetPlatformIDsЗвоните !!!

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

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

Ответы [ 10 ]

8 голосов
/ 05 января 2015

В моем случае я решил эту проблему, установив пакет 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.

5 голосов
/ 12 февраля 2011

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

2 голосов
/ 22 сентября 2015

Запустите вашу программу от имени пользователя root. В случае успеха: у вас проблемы с расширением cl_khr_icd для загрузки драйвера поставщика. Если вы не используете X11, вы должны создать файлы устройства вручную или с помощью (загрузочного) скрипта: ОШИБКА: clGetPlatformIDs -1001 при запуске кода OpenCL (Linux)

2 голосов
/ 19 мая 2012

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

# sudo usermod -aG video your-user-name
1 голос
/ 02 декабря 2013

Не знаю, решали ли вы когда-нибудь эту проблему, но у меня была такая же проблема, и я решил ее в этом посте: ОШИБКА: clGetPlatformIDs -1001 при запуске кода OpenCL (Linux)

Надеюсь, это поможет!

1 голос
/ 23 января 2012

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

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

0 голосов
/ 14 июля 2015

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

0 голосов
/ 24 марта 2015

Я только что столкнулся с этой проблемой в 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
0 голосов
/ 09 февраля 2014

Я решил это в 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
0 голосов
/ 28 февраля 2011

Вы должны получить количество платформ, выделить память для платформ, снова получить эти платформы, а затем создать контекст для этой платформы.Вот хороший пример: http://developer.amd.com/support/KnowledgeBase/Lists/KnowledgeBase/DispForm.aspx?ID=71

...