我在Linux系统上的/usr/local/cuda-10.1
下安装了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
这怎么可能,我该怎么办?
答案 0 :(得分:1)
正如@RobertCrovella所建议的那样,尽管nvidia-smi
告诉了我,似乎我仍然安装了一些与旧驱动程序版本相关的apt软件包。具体来说,nvidia-kernel-dkms
是较旧的版本。
在sudo dpkg -l "nvidia-*"
(已安装)上获得的软件包上查找版本号。
但是,我无法弄清楚我需要添加/更新什么才能使我的简单程序运行。最终我屈服了,去手动安装驱动程序。