【发布时间】:2015-06-28 03:36:06
【问题描述】:
我的 CUDA 版本是 5.5,nvcc 的输出证明了这一点:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2013 NVIDIA Corporation
Built on Wed_Jul_17_18:36:13_PDT_2013
Cuda compilation tools, release 5.5, V5.5.0
我还没有使用 6.5,因为我的 NVIDIA 驱动程序是 331.113(它是 Kubuntu 14.04 repo 版本,这是我安装所有东西的方式)。
我得到了 6.5 个示例,例如,如果我创建 2_graphics/Mandelbrot 示例,则没有编译错误,但是当我运行它时,我得到了
[CUDA Mandelbrot/Julia Set] - Starting...
CUDA error at ../../common/inc/helper_cuda.h:1032 code=35(cudaErrorInsufficientDriver) "cudaGetDeviceCount(&device_count)"
现在,如果我只是进入examples/5.5/2_graphics/Mandelbrot 目录和make 代码,当我运行它时一切正常。
当我收到cudaErrorInsufficientDriver 错误时会发生什么?这两个Mandelbrot 包之间有什么区别会导致此错误但不会导致编译错误?
【问题讨论】:
-
显示的错误代码非常清楚:CUDA 6.5 运行时需要比您安装的更新的CUDA 驱动程序。如果您安装适用于 CUDA 6.5 的更新驱动程序,则可以运行从 CUDA 6.5 和 CUDA 5.5 构建的应用程序
-
是的,我知道这就是错误的意思。我很困惑是什么(在源代码或编译中)导致了这种情况,因为
/6.5/*/Mandelbrot和/5.5/*/Mandelbrot都做同样的事情。 -
当您使用 CUDA 6.5 构建时,可执行文件链接到 CUDA 6.5 运行时,这需要驱动程序 343.19 之类的东西。当您使用 CUDA 5.5 构建时,可执行文件将链接到 5.5 运行时。区别不在于应用程序,而在于链接到二进制文件的 CUDA 运行时。