gpt4 book ai didi

cuda - CAFFE:使用 GPU (GeForce GTX 970) 时出现 Cuda 错误 "(8 vs. 0) invalid device function"?

转载 作者:行者123 更新时间:2023-12-02 06:55:05 29 4
gpt4 key购买 nike

我试图在 GTX 970 上运行 CNN 网络“CAFFE”。但我收到标题中提到的错误。

有人可以帮忙吗?

我在 caffe 组上发布了包含更多详细信息的问题,但没有收到任何提示/答案!

https://groups.google.com/forum/#!topic/caffe-users/sVOfE0qhf_M

更新 1

在我的 Makefile.config 中,我添加了 -gencode arch=compute_52,code=compute_52

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=compute_50 \
-gencode arch=compute_52,code=compute_52

但是当我尝试 make 时,它​​返回:

$make
NVCC src/caffe/layers/cudnn_sigmoid_layer.cu
nvcc fatal : Unsupported gpu architecture 'compute_52'
Makefile:531: recipe for target '.build_release/cuda/src/caffe/layers/cudnn_sigmoid_layer.o' failed
make: *** [.build_release/cuda/src/caffe/layers/cudnn_sigmoid_layer.o] Error 1

更新 2

NCC 版本是:

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2014 NVIDIA Corporation
Built on Thu_Jul_17_21:41:27_CDT_2014
Cuda compilation tools, release 6.5, V6.5.12

更新 3

我正在使用带有 346.96 驱动程序的 CUDA 6.5

libcuda1-346
/.
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libcuda.so
/usr/lib/i386-linux-gnu/libcuda.so.1
/usr/lib/i386-linux-gnu/libcuda.so.346.96
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libcuda.so
/usr/lib/x86_64-linux-gnu/libcuda.so.1
/usr/lib/x86_64-linux-gnu/libcuda.so.346.96
/usr/share
/usr/share/doc
/usr/share/doc/libcuda1-346
/usr/share/doc/libcuda1-346/changelog.Debian.gz
/usr/share/doc/libcuda1-346/copyright


libcudart6.5
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libcudart.so.6.5
/usr/lib/x86_64-linux-gnu/libcudart.so.6.5.14
/usr/share
/usr/share/doc
/usr/share/doc/libcudart6.5
/usr/share/doc/libcudart6.5/changelog.Debian.gz
/usr/share/doc/libcudart6.5/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libcudart6.5

更新 4

我找到了 here (页面为德语)Ubuntu 15.04 仅支持 NVidia GPU 直到 800 系列。我现在正在做的是将 Ubuntu 更新到 15.10,其中 NVidia 驱动程序版本“nvidia-352”可用,应该支持 Geforce GTX 970。

我会在这里发布结果。

更新 5

已更新至 Ubuntu 15.10。这是 GCC 5.2 自带的,但是 CAFFE 只接受 4.9 以下的版本。我安装了与现有版本并行的 g++ 4.8 我在 cmake 中将编译器设置为“g++-4.8”...

更新 6

现在错误显示

[  1%] Built target proto
[ 1%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_math_functions.cu.o
nvcc fatal : Unsupported gpu architecture 'compute_52'
CMake Error at cuda_compile_generated_math_functions.cu.o.cmake:206 (message):
Error generating
/home/art/Downloads/caffe-master-build/src/caffe/CMakeFiles/cuda_compile.dir/util/./cuda_compile_generated_math_functions.cu.o


src/caffe/CMakeFiles/caffe.dir/build.make:375: recipe for target 'src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_math_functions.cu.o' failed
make[2]: *** [src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_math_functions.cu.o] Error 1
CMakeFiles/Makefile2:218: recipe for target 'src/caffe/CMakeFiles/caffe.dir/all' failed
make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2

更新 7

我的下一次尝试:

1) 安装Ubuntu 15.04

2) 安装CUDA 7.5 directly from nVidia

3) 安装cuDNN 7.0

4) 安装 CAFFE

终于成功了!!

最佳答案

每当 CUDA 运行时 API 返回“无效的设备函数”时,这意味着您使用的代码不是为您尝试在其上运行的架构构建的(并且没有 JIT 路径)。

您可能需要检查您的 CAFFE Makefile.config 以确保它针对正确的架构设置,方法是确保 CUDA_ARCH 包含 -gencode arch =compute_52,code=compute_52.

因为您使用的是计算能力为 52 的设备,所以您的 GPU 必须使用 CUDA 7 或更新版本。您正在使用的 CUDA 6.5 工具包无法为您的 GPU 生成代码,并且 CUDA 6.5 驱动程序无法通过 JIT 将较低计算能力的代码重新编译为可在您的 GPU 上运行的代码。这是对您的硬件的不可协商的要求。

关于cuda - CAFFE:使用 GPU (GeForce GTX 970) 时出现 Cuda 错误 "(8 vs. 0) invalid device function"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33276539/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com