为什么CUDA 6.5示例不适用于CUDA 5.5?

时间:2015-06-27 19:12:02

标签: linux cuda

我的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包之间有什么区别?

1 个答案:

答案 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发行版),可能它会起作用。