pjreddie版darknet在cudn11下编译问题解决

前几天解决了pjreddie版的darknet在cudnn8环境下的编译问题,见我的博文《pjreddie版darknet在cudnn8.x环境下编译问题解决》,之前使用的是cuda10.2,修改了convolutional_layer.c源码后顺利通过了,而我的训练端使用了cudnn8.x,cuda11环境,在编译pjreddie版本的darknet时又出现了问题,来看具体报错的信息:

pjreddie版darknet在cudn11下编译问题解决_第1张图片

图中显示是nvcc fatal:unsupported gpu architecture 'compute_30',显卡的架构不支持,很纳闷,之前用的环境是cuda10.0,cudnn7.x成功编译了,这肯定不是硬件适配方面的问题啊,估计还是软件层面,于是尝试将makefile文件中的架构一行的compute_30那一行删除,再重新编译。将原Makefile文件改为如下图所示,再重新编译,居然成功了,哈哈!

pjreddie版darknet在cudn11下编译问题解决_第2张图片

经过这两篇博文,成功解决了pjreddie在高版本的cuda以及cudnn版本下的编译问题,使得不需要切换cuda的版本就能同时使用两个版本的darknet(pjreddie版和alexeyab版)。经过这几天的摸索总结了pjreddie和alexeyab两个版本编译的其他方面的一些区别,供大家参考:

版本 pjreddie版本 alexeyab版本
编译问题

使用cudnn8.0以上版本时需要修改源码以支持高版本的cudnn,该改版本只支持到cudnn7.X;

使用cuda11需修改makefile文件的arch选项

仅支持cudnn8.0及以上版本,7.x及以下版本不支持
opencv编译 opencv编译仅支持opencv3.X及以下版本,对opencv4.x不支持 opencv3.X,4.X版本都支持
opencv-dnn pjreddie版本的所有层opencv-dnn均支持; alexeyab部分层opencv4.2不支持,需要opencv4.5.5及以上版本才支持;

你可能感兴趣的:(#,Darknet与YOLO,darknet,cuda11,编译问题)