Интеграция CUDA с Theano

Я работаю с Theano , тестом глубокого обучения, на недавно установленной машине Ubuntu Mate 16.04. Theano может использовать ускорение GPU для ускорения вычислений. У меня есть видеокарта NVIDIA K2200M, которая поддерживает CUDA и правильно установлена, как показывает команда nvidia-smi:

+------------------------------------------------------+                       
| NVIDIA-SMI 361.42     Driver Version: 361.42         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K2200M       Off  | 0000:01:00.0     Off |                  N/A |
| N/A   31C    P8    N/A /  N/A |    212MiB /  2047MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      1090    G   /usr/lib/xorg/Xorg                             200MiB |
|    0      7931    G   /usr/lib/firefox/firefox                         1MiB |
+-----------------------------------------------------------------------------+

Немного предыстории: нужно установить Theano так, чтобы несколько переменные должны быть определены, такие как $CUDA_ROOT, и они относятся к /usr/local/cuda, но установка nvidia-cuda-* из официального репозитория Ubuntu Mate не создает эти папки. Тем не менее, Theano предлагает код на python, который может помочь определить, выполняются ли вычисления с использованием процессора или графического процессора, и удивительно, что Theano находит установку CUDA.

Здесь возникает проблема: CUDA распознается системой, но CUDA не может найти мой графический процессор, и я получаю ошибку WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available (error: cuda unavailable).

Я пишу в askubuntu.com, а не разработчикам Theano, потому что, обнаружив эту проблему, я удалил nvidia-cuda-* и установил CUDA из официального пакета, предоставленного NVIDIA, следуя этому руководству, так что вышеупомянутый /usr/local/cuda был создан, и снова код Theano распознал установку CUDA, но все равно не смог найти мой графический процессор. Вот почему я думаю, что это может быть проблема Ubuntu, а не ошибочная реализация на стороне Theano.

1
задан 24 April 2016 в 22:02

2 ответа

Я отчасти выяснил, что это не была проблема Ubuntu, а Theano один, когда я установил CUDA снова из источника, я упомянул в OP, и мне удалось правильно выполнить демонстрационные данные из пакета CUDA, обеспеченного NVIDIA, исключив (по моему неопытному мнению) проблему интеграции между NVIDIA-cuda-toolkit и драйверами NVIDIA.

Для тех (в будущем) наличие той же проблемы как я, проблема, кажется, находится в theano.sandbox.cuda модуль, когда __init__.py попытки скомпилировать cuda_ndarray.cu в строках 168-175 (я верю, так как я изменил файл просто немного), то, когда тот файл вызывает функцию compiler.compile_str(...), который является файлом, которому я верю, было создано группой разработчиков Theano. Выполнения NVCC правильно, но существуют проблемы, компилирующие cuda_ndarray.

, Таким образом, я отмечу этот вопрос, как отвечено, как только askubuntu позволяет мне.

0
ответ дан 25 April 2016 в 08:02

При использовании 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 тестовый код GPU имеет ошибку:

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

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

sudo ldconfig /usr/local/cuda-7.5/lib64
0
ответ дан 25 April 2016 в 08:02
  • 1
    can' t находят 51-android.rules внутри rules.d, и при этом я не могу создать тот. – monu Kumar 18 September 2017 в 08:23

Другие вопросы по тегам:

Похожие вопросы: