我的操作系统是Ubuntu18.04,我已经安装了nvidia驱动程序和nvidia-docker,但是无法检测到CUDA。
$ docker run -it --gpus all nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04 /bin/bash
root@7c0be9bfaeec:/# nvcc --version
bash: nvcc: command not found此外,我无法在码头集装箱中检测到CUDNN:
root@694cefcad33a:/# cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
cat: /usr/local/cuda/include/cudnn.h: No such file or directory但是,当我运行nvidia-smi时,它就起作用了!
root@7c0be9bfaeec:/# nvidia-smi
Thu Dec 19 04:51:23 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.44 Driver Version: 440.44 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |发布于 2019-12-21 06:03:27
似乎您正在运行runtime标记的nvidia/cuda Docker映像,其中不包括开发工具nvcc和您试图访问的CUDA头。该映像只包含执行CUDA应用程序所需的运行库。我想您可以从标记latest访问开发工具。
尝试以下命令:
$ docker run -it --gpus all nvidia/cuda:latest bashETA:头文件可能安装在不同的位置。我建议您不必担心CUDNN_MAJOR值。如果你真的需要它,试着:
sudo apt update
sudo apt install mlocate
sudo updatedb
sudo locate cudnn.h如果您找到一个结果(例如/a/b/cudnn.h),那么用这个位置代替您注释的cat命令。如下所示:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #This is the old command
cat /a/b/cudnn.h | grep CUDNN_MAJOR -A 2 #This is the new command, with the file you found此外,您还展示了一个无用使用cat (UUOC)的示例。你可以这样做:
grep -A 2 CUDNN_MAJOR /a/b/cudnn.h # Avoid UUOC从您试图安装的Docker映像中,nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04,您可以看到CUDNN的主要版本号是7,只是认为它可能对您有用。
PPS:如果您找不到CUDNN头,您可能没有安装它。尝试通过以下本指南安装它。
https://askubuntu.com/questions/1197191
复制相似问题