darknet YOLO 编译使用GPU
来源:互联网 发布:阿里云直播 摄像机 编辑:程序博客网 时间:2024/05/20 02:26
Darknet在GPU上运行可以得到500倍的提速,编译使用GPU要求显卡是Nvidia卡并且正确安装了CUDA。
COMMON+= -DGPU -I/usr/local/cuda-8.0/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-8.0/lib64 -lcuda -lcudart -lcublas -lcurand
Loadingweights from yolo.weights...Done!
CUDA Error:invalid device function
darknet: ./src/cuda.c:21: check_error: Assertion `0' failed.
Aborted (core dumped)
这是因为配置文件Makefile中配置的GPU架构和本机GPU型号不一致导致的。
更改前默认配置如下(不同版本可能有变):
ARCH= -gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=[sm_50,compute_50] \
-gencode arch=compute_52,code=[sm_52,compute_52]
# -gencode arch=compute_20,code=[sm_20,sm_21] \ This one is deprecated?
# This is what I use, uncomment if you know your arch and want to specify
# ARCH= -gencode arch=compute_52,code=compute_52
compute_30表示显卡的计算能力是3.0,几款主流GPU的compute capability列表:
ARCH= -gencode arch=compute_35,code=compute_35 \
重新编译即可。
GPU环境下的编译配置都是在 /darknet/Makefile 文件中定义的,GPU环境的编译有3点更改需要注意。
1. 更改Makefile前两行GPU和CUDNN的配置:
CUDNN=1
48~51行,在"ifeq ($(GPU), 1)"语句块中修改为自己的CUDA安装路径,更改前默认路径如下:
ifeq ($(GPU), 1)
COMMON+= -DGPU -I/usr/local/cuda/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcurand
例如修改为:
COMMON+= -DGPU -I/usr/local/cuda-8.0/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-8.0/lib64 -lcuda -lcudart -lcublas -lcurand
23行,修改NVCC的路径:
3. 修改ARCH配置
Loadingweights from yolo.weights...Done!
CUDA Error:invalid device function
darknet: ./src/cuda.c:21: check_error: Assertion `0' failed.
Aborted (core dumped)
这是因为配置文件Makefile中配置的GPU架构和本机GPU型号不一致导致的。
更改前默认配置如下(不同版本可能有变):
ARCH= -gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=[sm_50,compute_50] \
-gencode arch=compute_52,code=[sm_52,compute_52]
# -gencode arch=compute_20,code=[sm_20,sm_21] \ This one is deprecated?
# This is what I use, uncomment if you know your arch and want to specify
# ARCH= -gencode arch=compute_52,code=compute_52
compute_30表示显卡的计算能力是3.0,几款主流GPU的compute capability列表:
- GTX Titan x : 5.2
- GTX 980 : 5.2
- Tesla K80 : 3.7
- Tesla K40 : 3.5
- K4200 : 3.0
所以Tesla K80对应compute_30,Tesla K40c对应compute_35,Titan X对应compute_52,根据自己的GPU型号的计算能力进行配置,例如配置为:
ARCH= -gencode arch=compute_35,code=compute_35 \
重新编译即可。
CUDA官方说明文档:http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#virtual-architecture-feature-list
阅读全文
0 0
- darknet YOLO 编译使用GPU
- Darknet (二) YOLO 基于 CentOS GPU 的部署使用
- YOLO Darknet
- Yolo-Darknet的安装和使用
- darknet 编译与使用
- Darknet YOLO 安装配置
- Yolo,darknet配置
- darknet yolo源码解读
- 使用YOLO框架Darknet进行分类预训练
- Darknet (一) YOLO 基于 CentOS CPU 的部署使用
- yolo-darknet在ubuntu下的GPU版本安装与测试
- Yolo——darknet安装
- darknet yolo 计算mAP,recall
- Yolo 9000的darknet实现
- 解决Jetson Tegra TK1 编译 YOLO Darknet出现的不支持,compute_52 错误
- yolo-darknet配置安装与测试
- yolo-darknet配置安装与测试
- yolo-darknet配置安装与测试
- 导入Mysql数据量大是产生#2006
- A. Div. 64
- Java 比抽象类还要抽象的类-接口interface
- Linux系统下MySQL5.7用source导入sql遇到的种种问题
- java动物模拟器
- darknet YOLO 编译使用GPU
- 强制类型转换运算符
- java版-JQuery上传插件Uploadify使用实例
- POJ2393 Yogurt factory (贪心)
- 变量的作用域,可见性与生存期
- hiho 176周
- yoj更新记录
- 二叉树的层序遍历算法
- 百度网盘下载加速