2011-02-10 4 views
14

Я пытаюсь начать работу с OpenCL. У меня две графические карты NVidia, я установил «драйвер разработчика», а также SDK с веб-сайта NVidia. Я собирал демки, но когда я бегуОшибка -1001 в clGetPlatformIDs Call!

./oclDeviceQuery

Я вижу:

OpenCL SW Info:

Ошибка -1001 в clGetPlatformIDs Позвони !!!

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

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

ответ

5

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

+5

Не могли бы вы рассказать мне больше о том, чего точно не хватает? У меня есть файл /etc/OpenCL/vendors/nvidia.icd, который ссылается на библиотеку libcuda.so. Сама библиотека существует и находится на LD_LIBRARY_PATH. – tnorgd

1

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

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

2

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

# sudo usermod -aG video your-user-name 
+3

Это не поможет! По крайней мере, не для меня, и у меня такая же проблема. – einpoklum

0

я решил его в Ubuntu 13.10 Дерзкий для Intel OpenCL по созданной ссылке:

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

В моем случае я решил его установкой NVidia-Modprobe пакет, доступный в убунту (утопично/мультивселенной). А сам (v346) драйвер был установлен с
https://launchpad.net/~mamarley/+archive/ubuntu/nvidia

В частности, я установил NVIDIA-OpenCL-ИКД-346, NVIDIA-libopencl1-346, NVIDIA-346-УВМ, NVIDIA-346 и libcuda1-346. Не уверены, нужны ли они для OpenCL.

+0

В моем случае проблема с nvidia-modprobe. Теперь он работает даже со старым драйвером (331). Благодаря! – avtomaton

+1

Сделал это для меня на Ubuntu 15.10, точную настройку можно найти по адресу: http://stackoverflow.com/a/33483311/895245 –

0

Я просто столкнулся с этой проблемой на 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 
-1

Это может произойти из-за запросов clGetPlatformIDs от нескольких потоков одновременно

2

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

Смежные вопросы