是否有任何快速命令或脚本来检查安装的CUDA版本?
我在安装目录下找到了4.0的手册,但我不确定它是否是实际安装的版本。
是否有任何快速命令或脚本来检查安装的CUDA版本?
我在安装目录下找到了4.0的手册,但我不确定它是否是实际安装的版本。
正如Jared在命令行的评论中提到的:
nvcc --version
(或/usr/local/cuda/bin/nvcc-version)提供cuda编译器版本(与工具包版本匹配)。
从应用程序代码中,可以使用
cudaRuntimeGetVersion()
或驱动程序API版本
cudaDriverGetVersion()
正如Daniel所指出的那样,deviceQuery是一个SDK示例应用程序,可以查询上面的内容以及设备功能。
正如其他人所指出的,您也可以使用(例如,在Mac或Linux上)检查version.txt的内容
cat /usr/local/cuda/version.txt
但是,如果安装了CUDA工具包的另一个版本,而不是从/usr/local/CUDA符号链接的版本,则如果PATH中的另一版本早于上述版本,则可能会报告版本不准确,因此请谨慎使用。
安装CUDA后,可以通过以下方式检查版本:nvcc-V
我已经安装了5.0和5.5
Cuda编译工具5.5版V5.5,0
此命令适用于Windows和Ubuntu。
除了上面提到的那些,CUDA安装路径(如果在安装过程中没有更改)通常包含版本号
执行哪个nvcc应该提供路径,这将为您提供版本
PS:这是一种快速而肮脏的方式,上面的答案更优雅,并将通过相当大的努力产生正确的版本
你可能会发现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/并且下载实际上不是安装程序,而是可执行文件本身(没有安装,所以这是“快速”的)。
此实用程序提供了大量信息,如果您需要了解它是如何派生的,可以查看源代码。您可以搜索与此类似的其他实用程序。
在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
给定一个正常的PATH,cuda指向的版本应该是活动版本(本例中为10.2)。
注意:只有当您愿意假设CUDA安装在/usr/local/CUDA下时,这才有效(这对于具有默认位置的独立安装程序是正确的,但对于CUDA集成为软件包的发行版则不正确)。参考:@einpoklum的评论。
首先你应该找到Cuda的安装位置。
如果是像这里这样的默认安装,位置应该是:
对于ubuntu:
/usr/local/cuda
在此文件夹中,您应该有一个文件
版本.txt
使用任何文本编辑器打开此文件或运行:
cat version.txt
从文件夹
OR
cat /usr/local/cuda/version.txt
在Ubuntu上:
Try
$cat/usr/local/cuda/version.txt或$cat/usr/local/cuda-8.0/version.txt
有时文件夹名为“Cuda版本”。
如果以上都不起作用,请尝试转到$/usr/local/找到Cuda文件夹的正确名称。
输出应类似于:CUDA版本8.0.61
通过在终端中键入以下内容,可以获得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版本。
我得到/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
对于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的两个不同版本-nvcc和NVIDIA smi显示的不同CUDA版本
[编辑的答案。感谢所有更正的人]
如果你跑步
nvidia-smi
您应该在命令输出的右上角找到安装的驱动程序支持的CUDA版本最高CUDA版本。至少我发现CUDA版本10.0的输出。,
使用以下命令检查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运行时API C++包装器编程(注意:我是作者):
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;
}
您可以使用
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 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
输出不相同。不知道为什么会这样。
在以下时间之后找到我的:
whereis cuda
at
cuda:/usr/lib/cuda/usr/include/cuda.h
with
nvcc --version
CUDA版本9.1.85
如果nvcc和nvidia-smi之间存在版本不匹配,则使用不同版本的cuda作为驱动程序和运行时环境。
为了确保使用相同版本的CUDA驱动程序,您需要做的是在系统路径上获取CUDA。
首先运行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使用相同版本的驱动程序。
打开终端并运行以下命令:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
您可以获得CUDA驱动程序版本、CUDA运行时版本的信息,以及GPU的详细信息。我的终端输出的图像示例如下。
您可以在此处找到图像。
在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 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。
使用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.60安装中,可以在/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 11.6.1的Windows 11上,这对我很有用:
cat "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\version.json"