【发布时间】: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