AVX-512를 활용한 인텔 프로세서에서 행렬 곱셈 연산의 오토튜닝 방법

An Autotuning Method for Matrix-Matrix Multiplication on Intel Processors with AVX-512 Instructions

초록

BLAS는 선형 대수 및 행렬 연산을 수행할 때 널리 사용되는 라이브러리이다. 특히 블럭 연산을 지원하는 level-3 BLAS는 캐시에 올라오는 데이터의 재사용성을 높여 성능을 최대로 얻을 수 있도록 한다. 이를 위해서는 프로세서의 캐시에 맞는 행렬의 블록크기, 루프 언롤링(loop unrolling) 횟수, 프리패칭(prefetching) 거리 등이 최적화 되는 설정값을 찾아내야 한다. 이를 컴퓨터가 자동으로 실행하면서 최적화하는 과정을 오토튜닝이라고 한다. Intel Knights Landing 등 Intel AVX-512를 사용하는 최신의 인텔 프로세서들은 BLAS 최적화를 위한 오토튜닝 방법이 거의 연구되어 있지 않으므로, 본 연구에서는 Intel AVX-512를 사용하는 인텔의 아키텍처들에서 level-3 BLAS의 성능을 최대화하기 위한 오토튜닝 방법을 보인다.

키워드

AVX-512; 오토튜닝; 인텔 KNL; 인텔 스케일러블 프로세서; 행렬곱셈; AVX-512; autotuning; Intel KNL; Intel Scalable processors; matrix-matrix multiplication; AVX-512; 오토튜닝; 인텔 KNL; 인텔 스케일러블 프로세서; 행렬곱셈; AVX-512; autotuning; Intel KNL; Intel Scalable processors; matrix-matrix multiplication
제목
AVX-512를 활용한 인텔 프로세서에서 행렬 곱셈 연산의 오토튜닝 방법
제목 (타언어)
An Autotuning Method for Matrix-Matrix Multiplication on Intel Processors with AVX-512 Instructions
저자
이영하; 김래현; 최재영
발행일
2018-12
저널명
정보과학회 컴퓨팅의 실제 논문지
권
24
호
12
페이지
693 ~ 698