如何获得 CUDA 版本?
Posted
技术标签:
【中文标题】如何获得 CUDA 版本?【英文标题】:How to get the CUDA version? 【发布时间】:2012-04-01 10:20:17 【问题描述】:是否有任何快速命令或脚本来检查安装的 CUDA 版本?
我在安装目录下找到了4.0的手册,但不知道是不是实际安装的版本。
【问题讨论】:
另见:How to verify CuDNN installation? 这个问题针对的是哪个操作系统? 你考虑安装和支持的运行时还是安装的SDK? @JaredHoberocknvcc --version
产生 The program 'nvcc' is currently not installed. You can install it by typing: sudo apt install nvidia-cuda-toolkit
但是 nvidia-smi
包含 CUDA Version: 10.1
。
但是cat /usr/local/cuda/version.txt
给出了更精确的版本CUDA Version 10.1.168
【参考方案1】:
使用张量流:
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']")
张量流版本:2.4.0
Cuda 版本:11.0
Cudnn 版本:8
【讨论】:
【参考方案2】:以编程方式使用CUDA Runtime API C++ wrappers:
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;
【讨论】:
你能建议一种不编译 C++ 代码的方法吗?在之前的评论中,您提到cat /usr/local/cuda/version.txt
不再适用于 CUDA 11...
@drevicko:好吧,试试this,或者这个页面上的其他几个答案。
好的。我希望避免安装 CUDA SDK(据我了解,需要 nvcc)。使用 nvidia-smi 是不可靠的。从 /usr/local/cuda 链接的文件夹(应该是符号链接)似乎是一个不错的选择:这是否符合您所知道的并适用于 CUDA 11?
@drevicko: 是的,如果您愿意假设 CUDA 安装在 /usr/local/cuda
下(对于具有默认位置的独立安装程序,这是正确的,但对于集成了 CUDA 作为package) - 然后查看符号链接就足够了。
我发现 /usr/local/cuda/version.json
有 cuda 相关的包和版本。我正在使用 Ubuntu 20.04【参考方案3】:
其他受访者已经描述了可以使用哪些命令来检查 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\.]\+\).*$/\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 文件指的是与 nvcc --version
不同的 CUDA 安装。在这种情况下,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\.]\+\).*$/\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\.]\+\).*$/\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。
【讨论】:
【参考方案4】:在 Windows 10 上,我在“C:\Program Files\NVIDIA Corporation\NVSMI”中找到了 nvidia-smi.exe;在 cd 进入该文件夹(在我的情况下不在 PATH 中)和 '.\nvidia-smi.exe' 之后它显示
【讨论】:
这不会显示当前安装的 CUDA 版本,而只会显示可用于您的 GPU 的最高兼容 CUDA 版本。请参阅 cmets 到其他答案 ***.com/a/55717476/988591。【参考方案5】:如果您安装了 PyTorch,您只需在 IDE 中运行以下代码:
import torch
print(torch.version.cuda)
【讨论】:
【参考方案6】:在 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.2
drwxr-xr-x 16 root root 4096 Mar 5 2020 cuda-10.2
drwxr-xr-x 16 root root 4096 Mar 5 2020 cuda-8.0.61
给定一个合理的路径,cuda
指向的版本应该是活动版本(在本例中为 10.2)。
注意:这仅在您愿意假设 CUDA 安装在 /usr/local/cuda 下时才有效(对于具有默认位置的独立安装程序是正确的,但对于将 CUDA 集成为一个包的发行版则不正确) .参考:comment from@einpoklum。
【讨论】:
这比harrism 的回答更通用,因为它不需要安装nvcc
(需要管理员权限)
适用于 AWS Linux 深度学习 AMI
使用这个我得到“CUDA 版本 8.0.61”但是 nvcc --version 给我“Cuda 编译工具,版本 7.5,V7.5.17”你知道不匹配的原因吗?
赞成是更正确的答案,我的 CUDA 版本是 9.0.176,并且在 nvcc -V 中没有提到
我收到文件未找到错误,但 nvcc 报告版本 8.0。 /usr/local/cuda 不存在..【参考方案7】:
打开终端并运行以下命令:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
您可以获取CUDA 驱动程序版本、CUDA 运行时版本 的信息,以及GPU(s) 的详细信息。我的输出的图像示例如下。
You can find the image here.
【讨论】:
【参考方案8】:你也可以使用:
nvidia-smi | grep "CUDA Version:"
检索显式行。
【讨论】:
这有时可能无法为您提供正确的版本。请检查@mwweb 答案。这给出了实际安装的版本。 cat /usr/local/cuda/version.txt【参考方案9】:如果 nvcc 和 nvidia-smi 之间存在版本不匹配,则使用不同版本的 cuda 作为驱动程序和运行时环境。
为确保使用相同版本的 CUDA 驱动程序,您需要做的是在系统路径上获取 CUDA。
首先运行 whereis cuda 并找到 cuda 驱动的位置。
然后去.bashrc修改路径变量,使用变量'LD_LIBRARY_PATH'设置搜索的目录优先顺序。
例如
$ whereis cuda
cuda: /usr/lib/cuda /usr/include/cuda.h /usr/local/cuda
CUDA 安装在 /usr/local/cuda,现在我们需要在 .bashrc 中添加路径变量:
vim ~/.bashrc
export PATH="/usr/local/cuda/bin:$PATH"
并在此行之后将目录搜索路径设置为:
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
然后保存 .bashrc 文件。并将其刷新为:
$ source ~/.bashrc
这将确保您拥有 nvcc -V 和 nvidia-smi 以使用相同版本的驱动程序。
【讨论】:
【参考方案10】:对于 CUDA 版本:
nvcc --version
或者使用,
nvidia-smi
对于 cuDNN 版本:
对于 Linux:
使用以下方法查找 cuDNN 的路径:
$ whereis cuda
cuda: /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 - Different CUDA versions shown by nvcc and NVIDIA-smi
【讨论】:
您在谈论 CUDA SDK。也许问题出在 CUDA 运行时和驱动程序上——那么这不合适。 (或者问题可能与计算能力有关——但不确定是否是这种情况。) nvcc 是一个二进制文件,会报告它的版本。您可以在单独的子目录中同时拥有多个版本。 /usr/local/cuda 是一个可选的符号链接,它可能仅在安装了 CUDA SDK 时才存在。 @Lorenz - 在某些情况下,我没有安装 nvidia-smi。此外,在调试时,最好知道东西在哪里。如果你想在 Linux 上卸载 cuda,很多时候你唯一的选择就是手动查找版本并删除它们。另外,请注意答案包含 CUDA 以及 cuDNN,稍后 smi 不会显示。我已经更新了使用 nvidia-smi 的答案,以防您唯一感兴趣的是 CUDA 的版本号。 目的是删除@Mircea 的评论,我不是说你的回答。我无意在您的回答中提及 nvidia-smi。命名 nvidia-smi 已经是错误的了!这不是这个线程问题的答案。如果你非常想命名它,你必须明确它不显示安装的版本,而只显示支持的版本。您现在的回答并没有说明这一点,因此在这一点上是错误的。 对于 Linux,它实际上位于cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
中,对于 conda 环境:cat /opt/anaconda3/envs/tensorflow-gpu-2.6/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
【参考方案11】:
在之后找到我的:
whereis cuda
在
cuda: /usr/lib/cuda /usr/include/cuda.h
与
nvcc --version
CUDA 版本 9.1.85
【讨论】:
【参考方案12】:我们有三种方式来检查版本: 在我的例子中,输出如下: - 方式一:-
cat /usr/local/cuda/version.txt
输出:-
CUDA Version 10.1.243
方式2:-
nvcc --version
输出:-
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
方式3:-
/usr/local/cuda/bin/nvcc --version
输出:-
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
方式4:-
nvidia-smi
NVIDIA-SMI 450.36.06 Driver Version: 450.36.06 CUDA Version: 11.0
输出不一样。不知道为什么会这样。
【讨论】:
方式 1 不再适用于 CUDA 11(或至少 11.2);请提及。 这个答案具有误导性。投反对票。【参考方案13】:您可以使用
查看 CUDA 的版本nvcc -V
或者你可以使用
nvcc --version
或者您可以检查 CUDA 使用的位置
whereis cuda
然后做
cat location/of/cuda/you/got/from/above/command
【讨论】:
【参考方案14】:如果你在 linux 上运行:
dpkg -l | grep cuda
【讨论】:
【参考方案15】:使用以下命令检查 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
或
nvcc --version
如果您通过 Anaconda 包使用 tensorflow-gpu(您可以通过在控制台中打开 Python 并检查默认 python 在启动时是否显示 Anaconda, Inc. 来验证这一点,或者您可以运行 which python 并检查位置) ,然后手动安装 CUDA 和 CUDNN 很可能无法正常工作。您将不得不通过 conda 进行更新。
如果您想手动安装 CUDA、CUDNN 或 tensorflow-gpu,可以查看此处的说明https://www.tensorflow.org/install/gpu
【讨论】:
nvidia-smi
没有给你安装的版本,只是支持的版本,对这个问题没有用,看@mostafa.elhoushi的回答下的cmets。
nvcc --version
如果您使用 conda 安装了 cuda 工具包,则在 anaconda 提示符下不起作用,如果您的意思是在 anaconda 提示符之外进行非 conda 安装,则它是已接受答案的重复.
请注意,在 conda 中,如果要为 pytorch 安装 cudatoolkit,则不应单独安装它。详情请查看***.com/questions/53102436/…。
支持如何检查 cuda 是否安装在 anaconda 中。【参考方案16】:
如果你跑了
nvidia-smi
您应该在命令输出的右上角找到 CUDA 版本。至少我发现了 CUDA 10.0 版的输出,例如,
【讨论】:
看起来nvidia-smi
只输出旧版本的驱动程序版本。
CUDA 版本显示仅适用于 410.72 之后的驱动版本。即使没有安装 CUDA,它也会显示 CUDA 版本。所以这些信息目前没有任何意义。参考:devtalk.nvidia.com/default/topic/1045528/…
这个答案是错误的,那只表示驱动CUDA版本支持。它没有提供任何关于安装了哪个 CUDA 版本甚至是否安装了 CUDA 的任何信息
这个 cuda 版本只显示 gpu cuda 功能,而不是用于运行时 api 的 cuda 版本。
nvcc --version
和 nvidia-smi
没有给我相同的 CUDA 版本。事实证明你的 (nvidia-smi
) 是错误的。【参考方案17】:
如果 nvcc --version 不适合您,请使用 cat /usr/local/cuda/version.txt
【讨论】:
【参考方案18】:正如 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
中的另一个版本早于上述版本,则可能会报告不准确的版本,因此请谨慎使用。
【讨论】:
nvcc --version 应该在 Windows 命令提示符下工作,假设 nvcc 在您的路径中。 在 Ubuntu 中,您可能需要安装nvidia-cuda-tools
才能使此命令生效。只需输入sudo apt install nvidia-cuda-toolkit
如果找不到nvcc
,应该在/usr/local/cuda/bin/
。
为cat /usr/local/cuda/version.txt
点赞。如果您安装了 nvidia-toolkit,则使用 nvcc --version
的流行方法可以工作,但是,如果您只有 cuda 运行时,则 nvcc 可能不存在。 @RutgerHofste 指出的情况可能就是这种情况。例如。 (Tensorflow setup instructions不要安装nvcc)
“/usr/local/cuda/bin/nvcc --version”和“nvcc --version”都显示不同的输出。【参考方案19】:
我得到 /usr/local - 没有这样的文件或目录。虽然 nvcc -V 给出了
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Sun_Sep__4_22:14:01_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44
【讨论】:
【参考方案20】:在终端输入以下内容即可获得cuda
版本:
$ nvcc -V
# below is the result
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
或者,可以手动通过首先查找安装目录来检查版本:
$ whereis -b cuda
cuda: /usr/local/cuda
然后cd
进入该目录并检查 CUDA 版本。
【讨论】:
【参考方案21】:在 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 SDK 的全部内容。这与 CUDA 驱动程序无关。【参考方案22】:首先你应该找到 Cuda 的安装位置。
如果是像here 这样的默认安装,位置应该是:
对于 ubuntu:
/usr/local/cuda
在这个文件夹中你应该有一个文件
版本.txt
使用任何文本编辑器打开此文件或运行:
cat version.txt
来自文件夹
或
cat /usr/local/cuda/version.txt
【讨论】:
【参考方案23】:除了上面提到的之外,您的 CUDA 安装路径(如果在安装过程中没有更改)通常包含版本号
which nvcc
应该给出路径,这会给你版本
PS:这是一种快速而肮脏的方式,上面的答案更优雅,并且会付出相当大的努力得到正确的版本
【讨论】:
获取/usr/bin/nvcc
。 nvcc --version
是要走的路。
nvcc 未安装【参考方案24】:
您可能会发现 CUDA-Z 很有用,以下是他们网站的引述:
“这个程序的诞生是对另一个 Z 实用程序(如 CPU-Z 和 GPU-Z)的模仿。CUDA-Z 显示了有关启用 CUDA 的 GPU 和 GPGPU 的一些基本信息。它适用于 nVIDIA Geforce、Quadro 和 Tesla卡,ION 芯片组。”
http://cuda-z.sourceforge.net/
在支持选项卡上有源代码的 URL:http://sourceforge.net/p/cuda-z/code/,下载实际上不是安装程序,而是可执行文件本身(没有安装,所以这是“快速”)。
此实用程序提供了大量信息,如果您想知道它是如何产生的,可以查看源代码。您可能会搜索其他类似的实用程序。
【讨论】:
这是一个Windows平台的程序。它可以在脚本内部使用吗? 查看各种选项卡,我找不到任何有关 CUDA 的有用信息。 适用于 Linux、Windows 和 Mac:sourceforge.net/p/cuda-z/code/HEAD/tree/qt-s-mini/4.8.6 - 检查源代码的中继:sourceforge.net/p/cuda-z/code/HEAD/tree/trunk【参考方案25】:安装CUDA后可以通过nvcc -V查看版本
我已经安装了 5.0 和 5.5 所以它给出了
Cuda 编译工具,发布 5.5,V5.5,0
此命令适用于 Windows 和 Ubuntu。
【讨论】:
nvcc 未安装【参考方案26】:如果你已经安装了CUDA SDK,你可以运行“deviceQuery”来查看CUDA的版本
【讨论】:
对于那些想知道的人:deviceQuery
是一个要构建的示例程序(Linux:在/usr/local/cuda/samples
中运行make
,然后在./bin/x86_64/linux/release/deviceQuery
中运行)。以上是关于如何获得 CUDA 版本?的主要内容,如果未能解决你的问题,请参考以下文章