diff --git a/build/darknet/darknet_no_gpu.vcxproj b/build/darknet/darknet_no_gpu.vcxproj index 3f4681d9..6da02a2d 100644 --- a/build/darknet/darknet_no_gpu.vcxproj +++ b/build/darknet/darknet_no_gpu.vcxproj @@ -89,6 +89,7 @@ C:\opencv_2.4.9\opencv\build\include;..\..\3rdparty\include;%(AdditionalIncludeDirectories) _MBCS;OPENCV;_TIMESPEC_DEFINED;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) CUDNN + true true @@ -133,6 +134,7 @@ CompileAsCpp Default CUDNN + true true diff --git a/build/darknet/yolo_cpp_dll_no_gpu.vcxproj b/build/darknet/yolo_cpp_dll_no_gpu.vcxproj index 96afb0d3..2b746f5e 100644 --- a/build/darknet/yolo_cpp_dll_no_gpu.vcxproj +++ b/build/darknet/yolo_cpp_dll_no_gpu.vcxproj @@ -139,6 +139,7 @@ true + true true diff --git a/src/gemm.c b/src/gemm.c index 3003be0e..a4db8a4b 100644 --- a/src/gemm.c +++ b/src/gemm.c @@ -151,14 +151,19 @@ void gemm_cpu(int TA, int TB, int M, int N, int K, float ALPHA, C[i*ldc + j] *= BETA; } } - if(!TA && !TB) - gemm_nn(M, N, K, ALPHA,A,lda, B, ldb,C,ldc); - else if(TA && !TB) - gemm_tn(M, N, K, ALPHA,A,lda, B, ldb,C,ldc); - else if(!TA && TB) - gemm_nt(M, N, K, ALPHA,A,lda, B, ldb,C,ldc); - else - gemm_tt(M, N, K, ALPHA,A,lda, B, ldb,C,ldc); + + int t; + #pragma omp parallel for + for (t = 0; t < M; ++t) { + if (!TA && !TB) + gemm_nn(1, N, K, ALPHA, A + t*lda, lda, B, ldb, C + t*ldc, ldc); + else if (TA && !TB) + gemm_tn(1, N, K, ALPHA, A + t, lda, B, ldb, C + t*ldc, ldc); + else if (!TA && TB) + gemm_nt(1, N, K, ALPHA, A + t*lda, lda, B, ldb, C + t*ldc, ldc); + else + gemm_tt(1, N, K, ALPHA, A + t, lda, B, ldb, C + t*ldc, ldc); + } } #ifdef GPU