Intel MKL 사용하여 행렬곱 계산 속도 개선하기 행렬곱을 계산할 때 Intel MKL 을 사용하면 계산 속도가 얼마나 빨라지는지 알아보기 위하여 여러 가지 방법으로 실험을 해 보았습니다. 실험 환경 시스템 프로세서: Intel Core i7-8550U CPU 메모리: 16.0GB 운영체제: Windows 10 (64-bit) 전원 공급: AC adapter 라이브러리 Intel MKL 2019 Update 5 Eigen 3.3.7 컴파일러 MSVC++ Version 2019 (16.0) 소스 코드 완전한 소스 코드 중에서 설명을 위해 필요한 부분만 아래에 제시합니다. 방법-1. C 언어 3중 루프 사용 double *A, *B, *C; int m, n, p, i, j, k; double sum; m = 2000, p = 200, n = 1000; A = (double *)mkl_malloc( m*p*sizeof( double ), 64 ); B = (double *)mkl_malloc( p*n*sizeof( double ), 64 ); C = (double *)mkl_malloc( m*n*sizeof( double ), 64 ); for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { sum = 0.0; for (k = 0; k < p; k++) sum += A[p*i+k] * B[n*k+j]; C[n*i+j] = sum; } } 방법-2. Intel MKL dgemm 함수 사용 (1개의 쓰레드) double *A, *B, *C; int m, n, p; double alpha, beta; int thread_num; m = 2000, p = 200, n = 1000; alpha = 1.0; beta = 0.0; thread_num = 1; ...