本文主要是介绍Nvidia-smi 470 +cuda11.2+cudnn8.1.0+darknet_ros,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Nvidia-smi 470 安装cuda11.2+cudnn8.1.0后编译darknet_ros报错
基于环境:
系统:ubuntu 18.04
ubuntu内核:5.4.0-91-generic
cuda11.2 + cudnn8.1.0
查看以上信息的指令见下图:
问题描述(安装完cuda和cudnn后错误信息如下):
nvcc fatal : Unsupported gpu architecture 'compute_30' nvcc fatal : Unsupported gpu architecture 'compute_30' nvcc fatal : Unsupported gpu architecture 'compute_30' CMake Error at darknet_ros_lib_generated_deconvolutional_kernels.cu.o.cmake:219 (message): Error generating
src/darknet_ros_lib_generated_col2im_kernels.cu.o] Error 1 CMakeFiles/Makefile2:2669: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/all' failed make[1]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j8 -l8" failed
如下图
根据错误信息提示,可大概猜测错误信息在Cmakeist.txt中,同时根据blog提示,参考博客链接:
https://blog.csdn.net/znevegiveup1/article/details/114462660
compute_30已经被cuda11放弃使用了,将这一行对应内容注释掉即可:见下图
重新编译就可以通过了!!!
在后续的使用中,有家人遇到报错信息如下:
/usr/local/include/opencv4/opencv2/core/cvdef.h:728:4: error: #error “OpenCV 4.x+ requires enabled C++11 support”
error “OpenCV 4.x+ requires enabled C++11 support”
^~~~~
/usr/local/include/opencv4/opencv2/core/cvdef.h:734:10: fatal error: array: 没有那个文件或目录
#include
^~~~~~~
compilation terminated.
In file included from /usr/local/include/opencv4/opencv2/core/types_c.h:84:0,
from /usr/local/include/opencv4/opencv2/core/core_c.h:48,
from /usr/local/include/opencv4/opencv2/highgui/highgui_c.h:45,
from /home/zss/new_space/manipulator/ws_darknetros/src/darknet_ros/darknet/include/darknet.h:25,
from /home/zss/new_space/manipulator/ws_darknetros/src/darknet_ros/darknet/src/cuda.h:4,
from /home/zss/new_space/manipulator/ws_darknetros/src/darknet_ros/darknet/src/local_layer.h:4,
from /home/zss/new_space/manipulator/ws_darknetros/src/darknet_ros/darknet/src/local_layer.c:1:
/usr/local/include/opencv4/opencv2/core/cvdef.h:728:4: error: #error “OpenCV 4.x+ requires enabled C++11 support"
error “OpenCV 4.x+ requires enabled C++11 support”
^~~~~
/usr/local/include/opencv4/opencv2/core/cvdef.h:734:10: fatal error: array: 没有那个文件或目录
#include
根据报错信息大致可以知道:
在编译过程中使用了OpenCV.4X 版本的,查找许多教程都没解决,后来说是OpenCV版本过高造成的,但是在终端使用命令查看发现:
pkg-config --modversion opencv
发现是3.X版本的OpenCV,于是乎在想是不是系统拥有两个版本的OpenCV,在主目录直接搜索OpenCV,发现确实系统安装了两个版本:3.X 和 4.X。而程序编译时默认使用了4.X版本。
于是搜索了如何“在编译情况下指定使用的OpenCV版本”。
按照教程提示成功解决问题:
把“CMakeLists.txt”文件中原来的“OpenCV REQUIRED”统一替换成“OpenCV 3 REQUIRED”
原文链接如下
https://blog.csdn.net/qq_42731705/article/details/123520839
另外提示如果桌面分辨率异常(ubuntu桌面图标突然变大)****,千万不可贸然修改
(不可轻易使用:sudo gedit /etc/default/grub 调节分辨率)
否则会使显卡失效果
这篇关于Nvidia-smi 470 +cuda11.2+cudnn8.1.0+darknet_ros的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!