是否有任何快速命令或脚本来检查安装的CUDA版本?

我在安装目录下找到了4.0的手册,但我不确定它是否是实际安装的版本。


当前回答

使用tensorflow:

import tensorflow as tf
from tensorflow.python.platform import build_info as build
print(f"tensorflow version: {tf.__version__}")
print(f"Cuda Version: {build.build_info['cuda_version']}")
print(f"Cudnn version: {build.build_info['cudnn_version']}")

tensorflow版本:2.4.0

Cuda版本:11.0

Cudnn版本:8

其他回答

在使用CUDA 11.6.1的Windows 11上,这对我很有用:

cat "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\version.json"

首先你应该找到Cuda的安装位置。

如果是像这里这样的默认安装,位置应该是:

对于ubuntu:

/usr/local/cuda

在此文件夹中,您应该有一个文件

版本.txt

使用任何文本编辑器打开此文件或运行:

cat version.txt

从文件夹

OR

 cat /usr/local/cuda/version.txt 

使用以下命令检查Conda的CUDA安装:

conda list cudatoolkit

使用以下命令检查conda安装的CUDNN版本:

conda list cudnn

如果要通过CONDA安装/更新CUDA和CUDNN,请使用以下命令:

conda install -c anaconda cudatoolkit
conda install -c anaconda cudnn

或者,您可以使用以下命令检查CUDA安装:

nvidia-smi

OR

nvcc --version

如果您正在通过Anaconda包使用tensorflow-gpu(只需在控制台中打开Python,检查默认的Python在启动时是否显示Anaconda-Inc.,或者您可以运行哪个Python并检查位置),那么手动安装CUDA和CUDNN很可能无法工作。您将不得不通过conda进行更新。

如果您想手动安装CUDA、CUDNN或tensorflow gpu,可以查看此处的说明https://www.tensorflow.org/install/gpu

安装CUDA后,可以通过以下方式检查版本:nvcc-V

我已经安装了5.0和5.5

Cuda编译工具5.5版V5.5,0

此命令适用于Windows和Ubuntu。

其他受访者已经描述了可以使用哪些命令检查CUDA版本。在这里,我将描述如何将这些命令的输出转换为格式为“10.2”、“11.0”等的环境变量。

概括一下,您可以使用

nvcc --version

了解CUDA版本。我想这应该是你的第一个停靠港。如果安装了多个版本的CUDA,此命令应打印出PATH中最高的副本版本。

输出如下所示:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Thu_Jun_11_22:26:38_PDT_2020
Cuda compilation tools, release 11.0, V11.0.194
Build cuda_11.0_bu.TC445_37.28540450_0

我们可以将这个输出传递给sed,以便只选择MAJOR.MINOR发布版本号。

CUDA_VERSION=$(nvcc --version | sed -n 's/^.*release \([0-9]\+\.[0-9]\+\).*$/\1/p')

如果nvcc不在您的路径上,您应该能够通过指定nvcc默认位置的完整路径来运行它。

/usr/local/cuda/bin/nvcc --version

其输出与上述相同,并且可以以相同的方式对其进行解析。

或者,您可以从version.txt文件中找到CUDA版本。

cat /usr/local/cuda/version.txt

其输出

CUDA Version 10.1.243

可以使用sed进行解析,以仅选择MAJOR.MINOR发布版本号。

CUDA_VERSION=$(cat /usr/local/cuda/version.txt | sed 's/.* \([0-9]\+\.[0-9]\+\).*/\1/')

请注意,有时version.txt文件引用的CUDA安装不同于nvcc--version。在这种情况下,nvcc版本应该是您实际使用的版本。

我们可以将这三种方法结合在一起,以稳健地获得CUDA版本,如下所示:

if nvcc --version 2&> /dev/null; then
    # Determine CUDA version using default nvcc binary
    CUDA_VERSION=$(nvcc --version | sed -n 's/^.*release \([0-9]\+\.[0-9]\+\).*$/\1/p');

elif /usr/local/cuda/bin/nvcc --version 2&> /dev/null; then
    # Determine CUDA version using /usr/local/cuda/bin/nvcc binary
    CUDA_VERSION=$(/usr/local/cuda/bin/nvcc --version | sed -n 's/^.*release \([0-9]\+\.[0-9]\+\).*$/\1/p');

elif [ -f "/usr/local/cuda/version.txt" ]; then
    # Determine CUDA version using /usr/local/cuda/version.txt file
    CUDA_VERSION=$(cat /usr/local/cuda/version.txt | sed 's/.* \([0-9]\+\.[0-9]\+\).*/\1/')

else
    CUDA_VERSION=""

fi

此环境变量对于下游安装非常有用,例如当pip安装为正确CUDA版本编译的pytorch副本时。

python -m pip install \
    "torch==1.9.0+cu${CUDA_VERSION/./}" \
    "torchvision==0.10.0+cu${CUDA_VERSION/./}" \
    -f https://download.pytorch.org/whl/torch_stable.html

同样,当未安装CUDA时,可以安装CPU版本的pytorch。

if [ "$CUDA_VERSION" = "" ]; then
    MOD="+cpu";
    echo "Warning: Installing CPU-only version of pytorch"
else
    MOD="+cu${CUDA_VERSION/./}";
    echo "Installing pytorch with $MOD"
fi

python -m pip install \
    "torch==1.9.0${MOD}" \
    "torchvision==0.10.0${MOD}" \
    -f https://download.pytorch.org/whl/torch_stable.html

但要小心这一点,因为当您打算使用GPU支持时,可能会意外安装仅CPU版本。例如,如果您在没有GPU的服务器登录节点上运行安装脚本,那么您的作业将部署到有GPU的节点上。在这种情况下,登录节点通常不会安装CUDA。