【问题标题】:How to get the CUDA version?如何获得 CUDA 版本?
【发布时间】:2012-04-01 10:20:17
【问题描述】:

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

我在安装目录下找到了4.0的手册,但不知道是不是实际安装的版本。

【问题讨论】:

  • 这个问题针对的是哪个操作系统?
  • 你考虑安装和支持的运行时还是安装的SDK?
  • @JaredHoberock nvcc --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

标签: cuda


【解决方案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 到其他答案 stackoverflow.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,则不应单独安装它。详情请查看stackoverflow.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 --versionnvidia-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/nvccnvcc --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/,下载实际上不是安装程序,而是可执行文件本身(没有安装,所以这是“快速”)。

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

                          【讨论】:

                          【解决方案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 中运行)。
                          猜你喜欢
                          • 2018-03-02
                          • 2012-11-11
                          • 1970-01-01
                          • 2015-04-20
                          • 2017-02-04
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2018-01-10
                          相关资源
                          最近更新 更多