본문 바로가기

Black board/BLAS3

OpenBLAS 중국과학원에서 open한 BLAS 라이브러리. 3level BLAS 최적화를 진행하였으며 GotoBLAS의 GEPP와 GEBP를 조금더 아키텍쳐 적으로 최적화 시킨 모델인듯 하다. Optimized assembly나 loop unrolling reordering parallel matrix multiplication등을 구현하여 성능 개선을 하였다. 첫번째 논문은 level3 gemm 개선을 위주로 작성하였고 [Model-driven Level 3 BLAS Performance Optimization on Loongson 3A Processor, 2012] 두번째 논문은 자동적으로 optimized code를 generation하는 기법(텟플릿 기반) 위주로 작성하였다. [AUGEM:Automatical.. 2019. 4. 8.
BLAS 알고리즘에 대해서 BLAS는 Basic Linear Algebra Subprogram의 약자로 선형대수를 연산하는 함수(코드) 묶음을 말한다. 현재 데이터 프로세싱이나 특히 머신러닝에서 아주 기초를 담당하고 있는 연산이다. BLAS는 크게 3개의 level로 이루어져 있다 level 1 : vector * vector 연산 level 2 : matrix * vector 연산 level 3 : matrix * matrix 연산 으로 이루어져 있다. level1, 2같은 경우는 연산이 단순하며 memory 성능이 전체 연산의 성능을 크게 좌우하지면 level3같은 경우는 데이터 버퍼만 뒷받침 해준다면, 모두 buffer hit이 되어 연산 성능으로 떼울 수 있게 된다. 하지만, 데이터 버퍼는 유한하므로 matrix를 쪼개어서.. 2019. 4. 8.
GotoBLAS GotoBLAS는 텍사스 주립대학교에서 Kazushige Goto라는 분이 2006년에 제안했다 기존의 Block matrix multiplication에서 computer architecture의 한계를 고려하여 연산법을 제안한 것이다. Main memory - L3 cache - L2 cache - L1 cache - register 순으로 이어지는 컴퓨터의 메모리 계층구조에 맞게 MM을 연산하도록 구현하였다. 저 5개의 nested loop을 모두 연산하면 C가 완성 된다. 2019. 4. 8.