본문 바로가기
Black board/BLAS

BLAS 알고리즘에 대해서

by HaveaNiceDay! 2019. 4. 8.

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를 쪼개어서 연산하는 등의 연구를 많이 진행되어져 왔다.

 

http://www.netlib.org/blas/ 여기에 좀더 자세히 설명이 되어 있다.

https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms 위키

 

여러 벤더들과 주요 논문 저자들이 각자의 BLAS 알고리즘을 주장하였다.

1. GotoBLAS(Goto, UT)

2. OpenBLAS

3. MKL(Intel)

4. cuBLAS(NVDIA)

5. Accelerate

6. cBLAS

7. ACML(AMD)

8. ESSL(IBM)

9. ATLAS

 

기존의 수학적인 Partioned Matrix Multiplication or Block Matrix Multiplication 은 다음 과 같음

https://www.youtube.com/watch?v=5MFWywYY9bE

불러오는 중입니다...

'Black board > BLAS' 카테고리의 다른 글

OpenBLAS  (0) 2019.04.08
GotoBLAS  (0) 2019.04.08

댓글