如何获取CUDA版本?

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

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

1845333 次浏览

如果安装了CUDA SDK,可以运行“deviceQuery”查看CUDA版本

正如Jared在评论中提到的,从命令行:

nvcc --version

(或/usr/local/cuda/bin/nvcc --version)给出CUDA编译器版本(与工具包版本匹配)。

从应用程序代码中,您可以使用以下命令查询运行时API版本

cudaRuntimeGetVersion()

或驱动程序API版本

cudaDriverGetVersion()

正如Daniel所指出的,deviceQuery是一个SDK示例应用程序,可以查询上述内容以及设备功能。

正如其他人所指出的,您还可以使用(例如,在Mac或Linux上)检查version.txt的内容

cat /usr/local/cuda/version.txt

但是,如果安装了除/usr/local/cuda符号链接的CUDA工具包之外的另一个版本,如果另一个版本在您的PATH中早于上述版本,则可能会报告不准确的版本,因此请谨慎使用。

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

我已经安装了5.0和5.5,所以它给

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

此命令适用于Windows和Ubuntu。

除了上面提到的之外,您的CUDA安装路径(如果在安装过程中没有更改)通常包含版本号

执行which nvcc应该给出路径,这将为您提供版本

PS:这是一个快速而肮脏的方法,上面的答案更优雅,将导致正确的版本,相当大的努力

您可能会发现CUDA-Z很有用,以下是他们网站的报价:

“这个程序诞生于另一个Z实用程序的模仿,例如CPU-Z和GPU-Z。CUDA-Z显示了有关启用CUDA的GPU和GPGPU的一些基本信息。它适用于nVIDIA Geforce、Quadro和特斯拉卡、ION芯片组。”

http://cuda-z.sourceforge.net/

在支持选项卡上有源代码的URL:http://sourceforge.net/p/cuda-z/code/,下载实际上不是安装程序,而是可执行文件本身(没有安装,所以这是“快速”的)。

此实用程序提供了大量信息,如果您需要知道它是如何派生的,可以查看源代码。您可能会搜索其他类似的实用程序。

在Ubuntu Cuda V8上:

$ cat /usr/local/cuda/version.txt  

您还可以深入了解安装了哪些CUDA版本:

$ ls -l /usr/local | grep cuda

它会给你这样的东西:

lrwxrwxrwx  1 root root    9 Mar  5  2020 cuda -> cuda-10.2drwxr-xr-x 16 root root 4096 Mar  5  2020 cuda-10.2drwxr-xr-x 16 root root 4096 Mar  5  2020 cuda-8.0.61

给定一个合理的PATH,cuda指向的版本应该是活动的版本(在本例中为10.2)。

注意:这仅适用于您愿意假设CUDA安装在 /usr/local/cuda下的情况(对于具有默认位置的独立安装程序适用,但不适用,例如对于将CUDA集成为软件包的发行版)。参考:的评论@einpovelum。

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

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

对于ubuntu:

/usr/local/cuda

在这个文件夹中你应该有一个文件

version.txt

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

cat version.txt

从文件夹

或者

 cat /usr/local/cuda/version.txt

在Ubuntu上:

试试看

$ cat /usr/local/cuda/version.txt$ cat /usr/local/cuda-8.0/version.txt

有时文件夹名为“Cuda-version”。

如果以上都不起作用,请尝试$ /usr/local/并找到您的Cuda文件夹的正确名称。

输出应该类似于:CUDA Version 8.0.61

可以通过在终端中键入以下内容来获取cuda版本:

$ nvcc -V
# below is the resultnvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2017 NVIDIA CorporationBuilt on Fri_Nov__3_21:07:56_CDT_2017Cuda compilation tools, release 9.1, V9.1.85

或者,可以手动通过首先使用以下命令查找安装目录来检查版本:

$ whereis -b cudacuda: /usr/local/cuda

然后cd进入该目录并检查CUDA版本。

我得到 /usr/local-没有这样的文件或目录

nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2016 NVIDIA CorporationBuilt on Sun_Sep__4_22:14:01_CDT_2016Cuda compilation tools, release 8.0, V8.0.44

对于CUDA版本:

nvcc --version

或使用,

nvidia-smi

对于cuDNN版本:

Linux:

使用以下方法查找cuDNN的路径:

$ whereis cudacuda: /usr/local/cuda

然后使用它从头文件获取版本,

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

对于Windows,

使用以下方法查找cuDNN的路径:

C:\>where cudnn*C:\Program Files\cuDNN7\cuda\bin\cudnn64_7.dll

然后使用它从头文件转储版本,

type "%PROGRAMFILES%\cuDNN7\cuda\include\cudnn.h" | findstr CUDNN_MAJOR

如果您在Windows上获得两个不同版本的CUDA-nvcc和NVIDIA-smi显示的不同CUDA版本

如果nvcc --version不适合你,那么使用cat /usr/local/cuda/version.txt

[编辑后的答案。感谢所有更正它的人]

如果你逃跑

nvidia-smi

您应该在Comand输出的右上角找到CUDA版本安装的驱动程序支持的最高CUDA版本。至少我找到了CUDA版本10.0的输出,例如,输入图片描述

如果您在linux上运行:

dpkg -l | grep cuda

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

conda list cudatoolkit

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

conda list cudnn

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

conda install -c anaconda cudatoolkitconda install -c anaconda cudnn

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

nvidia-smi

nvcc --version

如果您通过Anaconda包使用Tensorflow-gpu(您可以通过简单地在控制台中打开Python来验证这一点,并检查默认的python在启动时是否显示Anaconda, Inc.,或者您可以运行哪个python并检查位置),然后手动安装CUDA和CUDNN很可能无法工作。你将不得不通过conda进行更新。

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

以编程方式使用CUDA运行时APIC++包装器(警告:我是作者):

auto v1 = cuda::version::maximum_supported_by_driver();auto v2 = cuda::version::runtime();

这为您提供了一个cuda::version_t结构,您可以对其进行比较并打印/流式传输,例如:

if (v2 < cuda::version_t{ 8, 0 } ) {std::cerr << "CUDA version " << v2 << " is insufficient." std::endl;}

您可以使用以下命令检查CUDA的版本

nvcc -V

或者您可以使用

nvcc --version

或者您可以检查CUDA正在使用的位置

whereis cuda

然后做

cat location/of/cuda/you/got/from/above/command

我们有三种方法来检查版本:在我的情况下,下面是输出:-方法1:-

cat /usr/local/cuda/version.txt

输出:-

CUDA Version 10.1.243

方式2:-

nvcc --version

输出:-

nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2017 NVIDIA CorporationBuilt on Fri_Nov__3_21:07:56_CDT_2017Cuda compilation tools, release 9.1, V9.1.85

途径3:-

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

输出:-

nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2019 NVIDIA CorporationBuilt on Sun_Jul_28_19:07:16_PDT_2019Cuda compilation tools, release 10.1, V10.1.243

途径4:-

nvidia-smiNVIDIA-SMI 450.36.06    Driver Version: 450.36.06    CUDA Version: 11.0

输出不一样。不知道为什么会这样。

找到我的后:

whereis cuda

cuda: /usr/lib/cuda /usr/include/cuda.h

nvcc --version

CUDA版本9.1.85

如果nvcc和nvidia-smi之间存在版本不匹配,则使用不同版本的cuda作为驱动程序和运行时环境。

为了确保使用相同版本的CUDA驱动程序,您需要做的是在系统路径上获取CUDA。

首先运行cuda并找到cuda驱动程序的位置。

然后转到. bashrc并修改路径变量并使用变量“LD_LIBRARY_PATH”设置搜索的目录优先级顺序。

例如

$ whereis cudacuda: /usr/lib/cuda /usr/include/cuda.h /usr/local/cuda

CUDA安装在 /usr/local/cuda,现在我们需要. bashrc并添加路径变量为:

vim  ~/.bashrcexport PATH="/usr/local/cuda/bin:${PATH}"

在这行之后,将目录搜索路径设置为:

export LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}"

然后保存. bashrc文件。并将其刷新为:

$ source ~/.bashrc

这将确保您有nvcc-V和nvidia-smi使用相同版本的驱动程序。

打开终端并运行以下命令:

cd /usr/local/cuda/samples/1_Utilities/deviceQuerysudo make./deviceQuery

你可以得到CUDA驱动程序版本CUDA运行时版本的信息,也可以得到GPU的详细信息。下图是我端输出的一个图像示例。

你可以在这里找到图片。

如果您安装了PyTorch,您可以简单地在IDE中运行以下代码:

import torch
print(torch.version.cuda)

在Windows 10上,我在“C:\Program Files\NVIDIA Corporation\NVSMI”中找到了nvidia-smi.exe;之后cd进入该文件夹(在我的情况下不在PATH中)和“.\nvidia-smi.exe”它显示输入图片描述

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

总结一下,你可以用

nvcc --version

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

输出看起来像这样:

nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2020 NVIDIA CorporationBuilt on Thu_Jun_11_22:26:38_PDT_2020Cuda compilation tools, release 11.0, V11.0.194Build cuda_11.0_bu.TC445_37.28540450_0

我们可以将此输出传递给se,以仅挑选出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 binaryCUDA_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 binaryCUDA_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 fileCUDA_VERSION=$(cat /usr/local/cuda/version.txt | sed 's/.* \([0-9]\+\.[0-9]\+\).*/\1/')
elseCUDA_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时安装pytorch的CPU版本。

if [ "$CUDA_VERSION" = "" ]; thenMOD="+cpu";echo "Warning: Installing CPU-only version of pytorch"elseMOD="+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。

使用TensorFlow:

import tensorflow as tffrom tensorflow.python.platform import build_info as buildprint(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.0安装中,可以在/usr/local/cuda/version.json中找到信息。它包含完整的版本号(11.6.0而不是nvidia-smi所示的11.6。

可以通过以下方式检索信息:

python -c 'import json; print(json.load(open("/usr/local/cuda/version.json"))["cuda"]["version"])'

如果您安装了多个CUDA,则系统中加载的是与“nvcc”关联的CUDA。因此,“nvcc--version”显示您想要的。

Windows 11CUDA 11.6.1上,这对我很有效:

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