Обязательно ли устанавливать CUDA перед использованием пакета conda tenorflow-gpu? - PullRequest
0 голосов
/ 01 мая 2020

Когда я устанавливаю tenorflow-gpu через Conda; это дает мне следующий вывод:

conda install tensorflow-gpu
Collecting package metadata (current_repodata.json): done
Solving environment: done


## Package Plan ##

  environment location: /home/psychotechnopath/anaconda3/envs/DeepLearning3.6

  added / updated specs:
    - tensorflow-gpu


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _tflow_select-2.1.0        |              gpu           2 KB
    cudatoolkit-10.1.243       |       h6bb024c_0       347.4 MB
    cudnn-7.6.5                |       cuda10.1_0       179.9 MB
    cupti-10.1.168             |                0         1.4 MB
    tensorflow-2.1.0           |gpu_py36h2e5cdaa_0           4 KB
    tensorflow-base-2.1.0      |gpu_py36h6c5654b_0       155.9 MB
    tensorflow-gpu-2.1.0       |       h0d30ee6_0           3 KB
    ------------------------------------------------------------
                                           Total:       684.7 MB

The following NEW packages will be INSTALLED:

  cudatoolkit        pkgs/main/linux-64::cudatoolkit-10.1.243-h6bb024c_0
  cudnn              pkgs/main/linux-64::cudnn-7.6.5-cuda10.1_0
  cupti              pkgs/main/linux-64::cupti-10.1.168-0
  tensorflow-gpu     pkgs/main/linux-64::tensorflow-gpu-2.1.0-h0d30ee6_0

Я вижу, что установка tennsflow-gpu автоматически запускает установку cudatoolkit и cudnn. Означает ли это, что мне больше не нужно устанавливать CUDA и CUDNN вручную, чтобы иметь возможность использовать tenorflow-gpu? Где находится эта conda установка CUDA?

Сначала я установил CUDA и CuDNN старым способом (например, следуя этим инструкциям по установке: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)

И затем Я заметил, что тензор-gpu также устанавливал cuda и cudnn

У меня теперь установлены две версии CUDA / CuDNN и как это проверить?

1 Ответ

1 голос
/ 01 мая 2020

У меня теперь установлены две версии CUDA и как мне это проверить?

Нет.

conda перераспределяет минимальные минимальные распространяемые компоненты библиотеки, необходимые для поддержки GPU ускоренные пакеты, которые они предлагают. Название пакета cudatoolkit является полным неправильным. Ничего подобного. Несмотря на то, что теперь он значительно расширен по объему от того, что было раньше (буквально 5 файлов - я думаю, что в какой-то момент они, вероятно, получили лицензионное соглашение от NVIDIA, потому что часть этого не была / не была официальной » свободно распространяемый (список AFAIK), он по-прежнему представляет собой всего лишь несколько библиотек.

Вы можете проверить это сами:

cat /opt/miniconda3/conda-meta/cudatoolkit-10.1.168-0.json 
{
  "build": "0",
  "build_number": 0,
  "channel": "https://repo.anaconda.com/pkgs/main/linux-64",
  "constrains": [],
  "depends": [],
  "extracted_package_dir": "/opt/miniconda3/pkgs/cudatoolkit-10.1.168-0",
  "features": "",
  "files": [
    "lib/cudatoolkit_config.yaml",
    "lib/libcublas.so",
    "lib/libcublas.so.10",
    "lib/libcublas.so.10.2.0.168",
    "lib/libcublasLt.so",
    "lib/libcublasLt.so.10",
    "lib/libcublasLt.so.10.2.0.168",
    "lib/libcudart.so",
    "lib/libcudart.so.10.1",
    "lib/libcudart.so.10.1.168",
    "lib/libcufft.so",
    "lib/libcufft.so.10",
    "lib/libcufft.so.10.1.168",
    "lib/libcufftw.so",
    "lib/libcufftw.so.10",
    "lib/libcufftw.so.10.1.168",
    "lib/libcurand.so",
    "lib/libcurand.so.10",
    "lib/libcurand.so.10.1.168",
    "lib/libcusolver.so",
    "lib/libcusolver.so.10",
    "lib/libcusolver.so.10.1.168",
    "lib/libcusparse.so",
    "lib/libcusparse.so.10",
    "lib/libcusparse.so.10.1.168",
    "lib/libdevice.10.bc",
    "lib/libnppc.so",
    "lib/libnppc.so.10",
    "lib/libnppc.so.10.1.168",
    "lib/libnppial.so",
    "lib/libnppial.so.10",
    "lib/libnppial.so.10.1.168",
    "lib/libnppicc.so",
    "lib/libnppicc.so.10",
    "lib/libnppicc.so.10.1.168",
    "lib/libnppicom.so",
    "lib/libnppicom.so.10",
    "lib/libnppicom.so.10.1.168",
    "lib/libnppidei.so",
    "lib/libnppidei.so.10",
    "lib/libnppidei.so.10.1.168",
    "lib/libnppif.so",
    "lib/libnppif.so.10",
    "lib/libnppif.so.10.1.168",
    "lib/libnppig.so",
    "lib/libnppig.so.10",
    "lib/libnppig.so.10.1.168",
    "lib/libnppim.so",
    "lib/libnppim.so.10",
    "lib/libnppim.so.10.1.168",
    "lib/libnppist.so",
    "lib/libnppist.so.10",
    "lib/libnppist.so.10.1.168",
    "lib/libnppisu.so",
    "lib/libnppisu.so.10",
    "lib/libnppisu.so.10.1.168",
    "lib/libnppitc.so",
    "lib/libnppitc.so.10",
    "lib/libnppitc.so.10.1.168",
    "lib/libnpps.so",
    "lib/libnpps.so.10",
    "lib/libnpps.so.10.1.168",
    "lib/libnvToolsExt.so",
    "lib/libnvToolsExt.so.1",
    "lib/libnvToolsExt.so.1.0.0",
    "lib/libnvblas.so",
    "lib/libnvblas.so.10",
    "lib/libnvblas.so.10.2.0.168",
    "lib/libnvgraph.so",
    "lib/libnvgraph.so.10",
    "lib/libnvgraph.so.10.1.168",
    "lib/libnvjpeg.so",
    "lib/libnvjpeg.so.10",
    "lib/libnvjpeg.so.10.1.168",
    "lib/libnvrtc-builtins.so",
    "lib/libnvrtc-builtins.so.10.1",
    "lib/libnvrtc-builtins.so.10.1.168",
    "lib/libnvrtc.so",
    "lib/libnvrtc.so.10.1",
    "lib/libnvrtc.so.10.1.168",
    "lib/libnvvm.so",
    "lib/libnvvm.so.3",
    "lib/libnvvm.so.3.3.0"
  ]

  .....

то есть то, что вы получаете (имея в виду большинство эти "файлы" являются просто символическими ссылками)

  • среда выполнения CUBLAS
  • библиотека времени выполнения CUDA
  • среда выполнения CUFFT
  • среда выполнения CU и
  • CUsparse rutime
  • CUsolver runtime
  • runtime АЭС
  • nvblas runtime
  • NVTX runtime
  • NVgraph runtime
  • NVjpeg runtime
  • NVRTC / NVVM runtime

Пакет CUDNN, который устанавливает conda, является распространяемым двоичным дистрибутивом, который идентичен дистрибутиву NVIDIA - это ровно два файла, заголовок и библиотека.

Вам все равно потребуется поддерживаемая установка драйвера NVIDIA, чтобы тензорный поток, который устанавливает conda, работал.

...