我的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
包之间有什么区别?
答案 0 :(得分:2)
您运行的应用:2_graphics/Mandelbrot
显然是使用CUDA 6.5 工具编译的,即nvcc
,最重要的是它与CUDA 6.5运行时库(cudart)相关联)。
此库将在初始化时检查当前安装的驱动程序版本。如果它不是CUDA 6.5的足够驱动程序,它将在CUDA API调用时返回错误。
如果您只安装了 CUDA 5.5,并且仅使用CUDA 5.5工具和库构建了2_graphics/Mandelbrot
示例代码(即使示例代码本身来自CUDA 6.5发行版),可能它会起作用。