В Интернете есть множество сообщений о настройке вашего графического процессора. Я пытался следовать за многими из них, чтобы настроить мою машину, но почему-то не смог. В этом процессе так много переменных, которые охватывают версию драйвера nvidia, версию набора инструментов cuda, версию CUDnn, версию python, версию tenorflow и т. Д. Список можно продолжить. Также неплохо здесь проверить, поддерживает ли ваш графический процессор интеграцию CUDA.

Я предполагаю следующее:

  1. На машине нет предыдущих драйверов nvidia. Если есть, я рекомендую сначала удалить их, иначе следование моим инструкциям может сработать, а может и не сработать.
  2. Python уже установлен на машине. Я рекомендую использовать anaconda, поскольку он упрощает отслеживание версий библиотек и виртуальных сред.

Вот что я сделал:

1. Установка драйверов NVIDIA через репозитории ubuntu

Откройте терминал и выполните следующие команды.

$ sudo add-apt-repository ppa:graphics-drivers/ppa 
$ sudo apt update 
$ sudo apt install nvidia-390 
$ sudo reboot 
$ nvidia-smi

Если все пойдет по плану, вы сможете увидеть аналогичный результат на экране.

2. Установите набор инструментов CUDA (9.0).

Перейдите сюда и скачайте инструментарий для linux, x86_64, ubuntu, 17.04, deb.

После завершения загрузки откройте терминал в каталоге базового установщика и выполните следующие команды:

$ sudo dpkg -i cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
$ sudo apt-get update 
$ sudo apt-get install cuda 

Также загрузите и установите некоторые исправления (необязательно), которые являются некоторыми улучшениями в cuBLAS.

3. Обновите переменную PATH.

Добавьте эти две строки в файл .bashrc, расположенный в домашнем каталоге.

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}$
export LD_LIBRARY_PATH=/usr/local/cuda- 9.0/lib64${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}}

Не забудьте указать источник файла .bashrc после внесения в него изменений.

4. Установите CUDNN 7.0.5.

Перейдите сюда и выберите CUDNN 7.0.5 (5 декабря 2017 г.) для CUDA 9.0. Вам необходимо создать учетную запись здесь, если у вас ее еще нет. Загрузите tar-файл и перейдите туда, где он находится, через терминал. Затем введите следующие команды.

$ tar -xzvf cuda-9.0-linux-x64-v7.tgz
$ sudo cp cuda/include/cudnn.h /ur/local/cuda/include
$ sudo cp cuda cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* 

5. Установите Tensorflow GPU.

Я предполагаю, что в вашей системе уже установлена ​​анаконда. К сожалению, последняя версия python 3.7 имеет некоторые проблемы совместимости с интеграцией cuda. Чтобы обойти это, я создаю новую среду Python 3.6.

$ conda create -n tfgpu python=3.6 
$ conda activate tfgpu 

Чтобы выйти из этой среды, просто введите conda deactivate.

Теперь пришла последняя часть установки версии графического процессора tensorflow.

$ conda install tensorflow-gpu==1.12 cudatoolkit==9.0 cudnn==7.1.2 h5py

Установите все зависимости, которые поставляются с этой установкой. Если все пойдет хорошо, по сути, мы закончили! Пора проверить установку.

$ python
>>> import tensorflow as tf 
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
2019-04-24 21:57:54.300645: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2019-04-24 21:57:54.516014: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:964] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-04-24 21:57:54.516685: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties: 
name: Quadro P1000 major: 6 minor: 1 memoryClockRate(GHz): 1.5185
pciBusID: 0000:01:00.0
totalMemory: 3.94GiB freeMemory: 2.67GiB
2019-04-24 21:57:54.516704: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2019-04-24 21:57:56.372624: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-04-24 21:57:56.372706: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0 
2019-04-24 21:57:56.372732: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N 
2019-04-24 21:57:56.373124: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 2370 MB memory) -> physical GPU (device: 0, name: Quadro P1000, pci bus id: 0000:01:00.0, compute capability: 6.1)
Device mapping:
/job:localhost/replica:0/task:0/device:XLA_CPU:0 -> device: XLA_CPU device
/job:localhost/replica:0/task:0/device:XLA_GPU:0 -> device: XLA_GPU device
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Quadro P1000, pci bus id: 0000:01:00.0, compute capability: 6.1
2019-04-24 21:57:56.376584: I tensorflow/core/common_runtime/direct_session.cc:307] Device mapping:
/job:localhost/replica:0/task:0/device:XLA_CPU:0 -> device: XLA_CPU device
/job:localhost/replica:0/task:0/device:XLA_GPU:0 -> device: XLA_GPU device
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Quadro P1000, pci bus id: 0000:01:00.0, compute capability: 6.1

6. Установите PyTorch с поддержкой графического процессора.

Поскольку мы уже проделали тяжелую работу, установив совместимые версии cuda toolkit, CUDNN и python, установка PyTorch превращается в однострочную задачу.

$ conda install pytorch torchvision cuda90 -c pytorch
$ python 
>>> import torch 
>>> torch.cuda.get_device_name(0)
'Quadro P1000'
>>> torch.cuda.is_available()
True
>>> torch.cuda.device_count()
1
>>>