Использование Theano с графическим процессором в Ubuntu 14.04 на AWS g2

Мне не удается заставить Theano использовать графический процессор на моем компьютере.

Когда я запускаю: /usr/local/lib/python2.7/dist-packages/theano/misc$ THEANO_FLAGS = floatX = float32, device = gpu python check_blas.py ПРЕДУПРЕЖДЕНИЕ (theano.sandbox.cuda): CUDA установлен, но графический процессор устройства недоступен (ошибка: невозможно получить количество доступных графических процессоров: устройство с поддержкой CUDA не обнаружено)

Я также проверил, установлен ли драйвер NVIDIA с помощью: lspci -vnn | grep -i VGA -A 12

с результатом: Используемый драйвер ядра: nvidia

Однако, когда я запускаю: nvidia-smi, результат: NVIDIA: не удалось открыть файл устройства / dev / nvidiactl (такого файла или каталога нет). NVIDIA-SMI не удалось, потому что не удалось связаться с драйвером NVIDIA. Убедитесь, что последняя версия драйвера NVIDIA установлена ​​и работает.

и / dev / nvidiaactl не существует. В чем дело?

ОБНОВЛЕНИЕ: / nvidia-smi работает с результатом:

+------------------------------------------------------+
| NVIDIA-SMI 4.304...   Driver Version: 304.116        |
|-------------------------------+----------------------+----------------------+
| GPU  Name                     | Bus-Id        Disp.  | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap| Memory-Usage         | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K520                | 0000:00:03.0     N/A |                  N/A |
| N/A   39C  N/A     N/A /  N/A |   0%   10MB / 4095MB |     N/A      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+

и после компиляции NVIDIA_CUDA-6.0_Samples, а затем запуска deviceQuery, я получаю результат:

cudaGetDeviceCount вернул 35 -> версии драйвера CUDA недостаточно для версии среды выполнения CUDA Результат = FAIL


person user3822367    schedule 09.07.2014    source источник
comment
вы используете nvidia-smi как пользователь root? Если нет, попробуйте запустить его как root. Если вы запускаете его как root, ваш драйвер установлен неправильно. Попробуйте переустановить драйвер. Кстати, Ubuntu 14.04 официально не поддерживается ни одной версией CUDA до 6.0.   -  person Robert Crovella    schedule 10.07.2014
comment
Спасибо! Я не запускал его как root. Это сработало. Попробую на более старой версии убунту   -  person user3822367    schedule 10.07.2014
comment
Как вы устанавливали драйверы Nvidia?   -  person Alex Rothberg    schedule 23.07.2014


Ответы (5)


Графические процессоры CUDA в системе Linux нельзя использовать до тех пор, пока не будут правильно установлены определенные «файлы устройств».

Об этом есть примечание в документация.

Как правило, эти файлы устройств могут быть созданы несколькими способами:

  1. Если X-сервер запущен.
  2. Если активность графического процессора инициирована от имени пользователя root (например, запуск nvidia-smi или любого приложения CUDA).
  3. С помощью сценариев запуска (пример см. В документации по ссылке выше).

Если ни один из этих шагов не будет выполнен, графические процессоры не будут работать для пользователей без полномочий root. Обратите внимание, что файлы не сохраняются при повторной загрузке и должны восстанавливаться при каждом цикле загрузки одним из трех вышеуказанных методов. Если вы используете метод 2 и перезагрузитесь, графические процессоры будут недоступны, пока вы снова не воспользуетесь методом 2.

Я предлагаю полностью прочитать руководство по началу работы с Linux (ссылка выше), если у вас возникли проблемы с настройкой системы Linux для использования CUDA GPU.

person Robert Crovella    schedule 09.07.2014
comment
Итак, я создал новый экземпляр AWS g2 с ubuntu13.10 и попробовал его снова, запустив nvidia-smi от имени root, и скомпилировал образцы, и когда я запускаю deviceQuery, я получаю сообщение об ошибке: cudaGetDeviceCount вернул 35 - ›Версия драйвера CUDA недостаточна для CUDA версия среды выполнения Результат = FAIL - person user3822367; 10.07.2014
comment
Это, конечно, совсем другая проблема. SO Q + A не предназначены для чатов. Почему вы не читаете документацию, на которую я ссылаюсь? Он указывает, что необходимо как для правильной установки CUDA, так и конкретные команды для проверки каждого шага на этом пути. Во-первых, какая версия драйвера сообщается, когда вы запускаете nvidia-smi -a от имени пользователя root, и какая версия набора инструментов CUDA установлена? - person Robert Crovella; 10.07.2014
comment
Спасибо за эту документацию, я действительно нашел ее раньше и попытался выполнить шаги, но некоторые из шагов перед установкой у меня не сработали. Версия драйвера: 304.116, CUDA: 6.0 - person user3822367; 10.07.2014
comment
CUDA 6 не будет работать с 304.116. Вам необходимо установить драйвер типа 331.62 или новее. Если вы действительно устанавливаете инструментарий CUDA (например, используете метод установки runfile, описанный в документации) на этой платформе, вместо того, чтобы пытаться загрузить его из AMI или репозиториев, вы получите соответствующий драйвер. Лучше всего установить последнюю версию драйвера для графических процессоров на этой платформе, я думаю, это GRID K520, что-то вроде этот. Если вы не используете GRID K520 или 64-битный Linux, выберите подходящий драйвер. - person Robert Crovella; 10.07.2014
comment
Итак, я попытался установить драйвер 340.42 с веб-сайта и непосредственно из набора инструментов CUDA, и оба они вышли из строя с ошибкой ядра. Единственный способ заставить его работать - это выполнить следующие шаги: binarytides .com / install-nvidia-drivers-ubuntu-14-04, но nvidia-current было 304, и когда я попробовал 331, 334 и 340, он отказался соединяться с моим GRID K520. - person user3822367; 10.07.2014
comment
в чем была ошибка ядра? что-то насчет отсутствия заголовков ядра или исходников? - person Robert Crovella; 10.07.2014

Если вы используете CUDA 7.5, обязательно следуйте официальной инструкции: CUDA 7.5 не поддерживает версию g ++ по умолчанию. Установите поддерживаемую версию и сделайте ее по умолчанию.

sudo apt-get install g++-4.9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc

sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++

Если в тестовом коде графического процессора есть ошибка:

ОШИБКА (theano.sandbox.cuda): не удалось скомпилировать cuda_ndarray.cu: libcublas.so.7.5: невозможно открыть файл общих объектов: нет такого файла или каталога ПРЕДУПРЕЖДЕНИЕ (theano.sandbox.cuda): CUDA установлен, но графический процессор устройства недоступен (ошибка: cuda недоступен)

Просто используйте команду ldconfig для связывания общего объекта cuda 7.5:

sudo ldconfig /usr/local/cuda-7.5/lib64
person maroon912    schedule 05.08.2016
comment
ОТ: Большое спасибо, этот трюк с ldconfig - помог мне решить проблему после 2 часов бесполезной отладки - person AddingColor; 09.08.2016

Я потратил много часов, пытаясь заставить AWS G2 работать на ubuntu, но потерпел неудачу, получив точную ошибку, как и вы. В настоящее время я без проблем запускаю Theano с графическим процессором с помощью этого redhat AMI. Чтобы установить Theano на Redhat, выполните процедуру Установка Theano в CentOS в документации Theano.

person Corei13    schedule 23.07.2014

Была та же проблема и переустановил Cuda, и в конце он говорит, что мне нужно обновить PATH, чтобы включить /usr/local/cuda7.0/bin и LD_LIBRARY_PATH, чтобы включить /usr/local/cuda7.0/lib64. PATH (добавьте LD_LIBRARY_PATH в тот же файл) можно найти в / etc / environment. Потом теано нашел ГПУ. Основная ошибка с моей стороны ...

person Jesse Burström    schedule 26.04.2015

я получил

-> CUDA driver version is insufficient for CUDA runtime version

и моя проблема связана с выбранным режимом графического процессора. Другими словами, проблема может быть связана с выбранным режимом графического процессора (режим производительности / энергосбережения), когда вы выбираете (с помощью утилиты nvidia-settings в конфигурациях «PRIME Profiles») встроенный графический процессор Intel и выполняете сценарий deviceQuery ... вы получите эту ошибку:

Но эта ошибка вводит в заблуждение, выбрав обратно NVIDIA (режим производительности) с помощью утилиты nvidia-settings, проблема исчезнет.

Это не проблема версии.

С Уважением

P.s: Выбор доступен, когда установлен Prime-related-штуки. Дополнительные сведения: https://askubuntu.com/questions/858030/nvidia-prime-in-nvidia-x-server-settings-in-16-04-1

person Fabiano Tarlao    schedule 13.04.2018