【问题标题】:"CUDA driver version is insufficient for CUDA runtime version" - but it isn't“CUDA 驱动程序版本不足以支持 CUDA 运行时版本” - 但事实并非如此
【发布时间】:2020-05-14 02:11:17
【问题描述】:

我在我的 Linux 系统上安装了 CUDA 10.1,位于 /usr/local/cuda-10.1 下(并链接到 /usr/local/cuda)。在一些软件包更新和删除之后(如果你愿意,我可以进入),我还安装了 NVIDIA 驱动程序,版本 440.82(nvidia-smi 说了这么多)。

但是,当我构建并运行这个最小程序时:

#include <cuda_runtime.h>
#include <cstdio>
#include <cstdlib>

int main() {
    int deviceCount;
    cudaError_t error_id = cudaGetDeviceCount(&deviceCount);
    if (error_id != cudaSuccess) {
        printf("cudaGetDeviceCount returned %d: %s\n", (int)error_id, cudaGetErrorString(error_id));
        exit(EXIT_FAILURE);
    }
}

使用命令:

 g++ -o min -I/usr/local/cuda/include  min.cpp -L/usr/local/cuda/lib64  -lcudart

我明白了:

cudaGetDeviceCount returned 35: CUDA driver version is insufficient for CUDA runtime version

这怎么可能,我该怎么办?

【问题讨论】:

  • 两件事——库总是源和对象之后,添加-v并将输出添加到您的问题中。并在可执行文件上输出 ldd。此外,如果没有 -I 用于 CUDA 包含路径或 -L 用于链接器路径,我也看不到如何编译
  • @talonmies: CPLUS_INCLUDE_PATH, LIBRARY_PATH, LD_LIBRARY_PATH?
  • 如果您使用环境变量,知道您设置它们会很有帮助
  • 损坏的驱动程序安装是我唯一的想法。 nvidia-smi 不是对正确安装的驱动程序的完美测试。如果您有旧的驱动程序组件浮动,可能是由于驱动程序安装过程的混合,那么您可能会收到此报告。
  • 但是您愿意运行NVIDIA 提供的编译后的可执行文件,即nvidia-smi?如果是这样,请提供一个已编译的可执行文件,就像您在这个问题中描述的那样,或者像我链接的文档部分中描述的那样。我没有任何其他建议。推荐的方法是我指出的。我没有任何其他建议或建议。欢迎您在 developer.nvidia.com 上提交错误以表明您的需求。

标签: cuda


【解决方案1】:

nVIDIA 驱动程序安装错误

正如@RobertCrovella 建议的那样,我似乎仍然安装了一些与旧驱动程序版本相关的 apt 软件包——尽管nvidia-smi 告诉我什么。具体来说,nvidia-kernel-dkms 是旧版本。

在您使用sudo dpkg -l "nvidia-*" 获得的软件包上查找版本号(并且已安装)。

然而,我无法准确地弄清楚我需要添加/更新什么才能让我的简单程序运行。最终我屈服了,去手动安装驱动程序。

【讨论】:

    猜你喜欢
    • 2016-03-09
    • 2019-12-31
    • 2011-03-16
    • 2017-05-15
    • 1970-01-01
    • 2021-02-07
    • 2017-03-07
    • 1970-01-01
    • 2019-02-20
    相关资源
    最近更新 更多