YOLO v2 CPU 使用 openblas 加速

来源:互联网 发布:怎么在淘宝论坛发帖子 编辑:程序博客网 时间:2024/06/02 03:12

YOLO v2是近来出现效果惊艳的目标检测方法。但即使是在普通GPU上跑到上百帧/秒的tiny-yolo模型,在CPU上也会下降到数帧/每秒,这是由于其并没有对CPU计算加速造成的。

阅读其代码,发现其并没有使用caffe等常用的openblas进行加速,因此很有必要对其加上,为了和原代码风格保持一致,本文定义了一个宏USE_OPENBLAS来控制是否使用openblas加速,openblas库可以在http://www.openblas.net/获得。


其实现矩阵乘法计算的代码在src/gemm.c里,在文件开头加上如下代码:


#if USE_OPENBLAS#include "OpenBLAS/cblas.h"#if _WIN32#pragma comment(lib,"libopenblas.dll.a")#endif#endif


然后定位gemm函数,替换成openblas的实现

void gemm(int TA, int TB, int M, int N, int K, float ALPHA,         float *A, int lda,         float *B, int ldb,        float BETA,        float *C, int ldc){#if USE_OPENBLAScblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, M, N, K, ALPHA, A, lda, B, ldb, BETA, C, ldc);#else    gemm_cpu( TA,  TB,  M, N, K, ALPHA,A,lda, B, ldb,BETA,C,ldc);#endif}





原创粉丝点击