我有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
包之间会导致此错误但不会导致编译错误的区别是什么? 最佳答案
您运行的应用程序:2_graphics/Mandelbrot
显然是用cuda 6.5工具编译的,即nvcc
,最重要的是它与cuda6.5运行库(cudart)相链接。
初始化时,此库将检查当前安装的驱动程序版本。如果它不是CUDA6.5的足够驱动程序,它将在CUDAAPI调用上返回一个错误。
如果您只安装了cuda 5.5,并且只使用cuda5.5工具和库构建了2_graphics/Mandelbrot
示例代码(即使示例代码本身来自cuda 6.5发行版),那么它很可能只会工作。