是否有任何快速命令或脚本来检查安装的CUDA版本?
我在安装目录下找到了4.0的手册,但我不确定它是否是实际安装的版本。
是否有任何快速命令或脚本来检查安装的CUDA版本?
我在安装目录下找到了4.0的手册,但我不确定它是否是实际安装的版本。
当前回答
如果nvcc--版本不适合您,请使用cat/usr/local/cuda/version.txt
其他回答
在我的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"])'
您可以使用
nvcc -V
或者你可以使用
nvcc --version
或者您可以检查CUDA使用的位置
whereis cuda
然后做
cat location/of/cuda/you/got/from/above/command
其他受访者已经描述了可以使用哪些命令检查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。
我们有三种方法来检查版本:在我的案例中,以下是输出:-方式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
输出不相同。不知道为什么会这样。
我得到/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