确切的错误:
CUDA error at ../../common/inc/helper_cuda.h:1263 code=30(cudaErrorUnknown) "cudaGetDevice(&dev)"
我正在为 tensorflow gpu 安装 cuda。我安装了 cuda 8(以下这些ubuntu 16.04 的说明),我在测试可写示例时遇到错误(该链接中的第 6.2.1 节)。我在所有示例中都不断收到该错误,而我谷歌搜索没有找到该错误(只有 cudaGetDeviceCount() 错误)。这可能是什么?我最初意外安装了 cuda 9.1 工具包(tensorflow 需要 8.0),但我完全卸载了它并删除了与其关联的任何路径变量或目录。
当运行 makefile 应该在示例目录中创建的可执行文件时会出现该错误,并且 make 文件本身会生成此警告/错误:
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
我认为 make 文件根本没有创建任何东西,因为 make 文件最后还会运行这个:
cp simpleZeroCopy ../../bin/x86_64/linux/release
即从所有示例的缓存可执行文件的某个目录中复制可执行文件。该示例的 makefile 和源代码很大,我不知道它们是否有用,但如果需要的话我会发布它们。
我尝试运行的这个示例代码直接来自 cuda,因此它都不是我编写的,这让我相信我可能缺少某种类型的 NVIDIA 驱动程序,或者我只是错误地安装了 cuda/没有设置适当的路径变量(尽管我很确定我做得很好)。
我正在运行 ubuntu 16.04,x86_64,显卡是 gtx 780 ti。
我想澄清一下,该错误是在安装 tensorflow-gpu 之前发生的。他们的指示是先单独安装 cuda,然后再安装 tensorflow。我在安装 tensorflow 之前测试 cuda 时遇到此错误
编辑:路径变量是:
$路径:
/usr/local/cuda-8.0/bin:/home/maurcio/anaconda3/bin:/home/maurcio/bin:/home/maurcio/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:.
$LD_LIBRARY_PATH:
/usr/local/cuda-8.0/lib64
答案1
基本上,使用 Ubuntu 提供的驱动程序(如果可能的话,不确定是否是 980 ti),使用 Intel deb cuda 安装,并安装获取工具包的 Ubuntu cuda 包。将示例复制到可写位置,修改路径,CUDA 应该可以工作。