GKE - Невозможно заставить cuda работать с pytorch - PullRequest
1 голос
/ 08 ноября 2019

Я настроил узел kubernetes с nvidia tesla k80 и следовал этому руководству , чтобы попытаться запустить образ докера pytorch с работающими драйверами nvidia и cuda. ​​

Мои драйверы nvidia ивсе драйверы cuda доступны внутри моего модуля в /usr/local:

$> ls /usr/local
bin  cuda  cuda-10.0  etc  games  include  lib  man  nvidia  sbin  share  src

И мой графический процессор также распознается моим образом nvidia/cuda:10.0-runtime-ubuntu18.04:

$> /usr/local/nvidia/bin/nvidia-smi
Fri Nov  8 16:24:35 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.79       Driver Version: 410.79       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla K80           Off  | 00000000:00:04.0 Off |                    0 |
| N/A   73C    P8    35W / 149W |      0MiB / 11441MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Но после установки Pytorch 1.3. 0 Я не могу заставить Pytorch распознавать мою установку cuda даже с LD_LIBRARY_PATH, установленным на /usr/local/nvidia/lib64:/usr/local/cuda/lib64:

$> python3 -c "import torch; print(torch.cuda.is_available())"
False

$> python3
Python 3.6.8 (default, Oct  7 2019, 12:59:55)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print ('\t\ttorch.cuda.current_device()    =', torch.cuda.current_device())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/torch/cuda/__init__.py", line 386, in current_device
    _lazy_init()
  File "/usr/local/lib/python3.6/dist-packages/torch/cuda/__init__.py", line 192, in _lazy_init
    _check_driver()
  File "/usr/local/lib/python3.6/dist-packages/torch/cuda/__init__.py", line 111, in _check_driver
    of the CUDA driver.""".format(str(torch._C._cuda_getDriverVersion())))
AssertionError:
The NVIDIA driver on your system is too old (found version 10000).
Please update your GPU driver by downloading and installing a new
version from the URL: http://www.nvidia.com/Download/index.aspx
Alternatively, go to: https://pytorch.org to install
a PyTorch version that has been compiled with your version
of the CUDA driver.

Вышеприведенная ошибка странная, потому что моя версия cuda для моего изображения - 10.0 и Google GKEупоминает, что:

Последняя поддерживаемая версия CUDA: 10.0

Кроме того, это демоны GKE, которые автоматически устанавливают драйверы NVIDIA

После добавления графического процессораузлы в вашем кластере, вам необходимо установить драйверы устройств NVIDIA на узлы.

Google предоставляет DaemonSet, который автоматически устанавливает драйверы для вас. Обратитесь к разделу ниже для получения инструкций по установке для контейнерно-оптимизированных ОС (COS) и узлов Ubuntu.

Чтобы развернуть установку DaemonSet, выполните следующую команду: kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml

Я перепробовал все, что мог придумать, но безуспешно ...

1 Ответ

0 голосов
/ 13 ноября 2019

Я решил свою проблему, понизив версию Pytorch, скомпилировав образы докера из pytorch/pytorch:1.2-cuda10.0-cudnn7-devel.

. Я до сих пор не знаю, почему раньше он не работал так, как должно было быть иначе, а потом предположил, чтоpytorch 1.3.0 не совместимо с cuda 10.0.

...