HW Engineer 가 이야기하는 AI/02 재미난? 논문 리뷰

Fast Algorithms for Convolutional Neural Networks

반응형

논문 링크 : arxiv.org/abs/1509.09308

영삼 참고 :  www.youtube.com/watch?v=j4CIomZfsdM

                  youtu.be/Xh2hBMUYKAE
논문 년도 : Nov 2015  (CVPR 2016)

benchmark : github.com/soumith/convnet-benchmarks

 

오래된? 논문이긴 한데, 첫 제품이 나온 시점에서 연산 최적화를 해볼 수 있는 아이디어를 조사합니다.


Abstract

Winograd’s minimal filtering algorithms 을 사용하여 CNN 을위한 새로운 종류의 빠른 알고리즘을 소개합니다.

실제 적용이 되기 위해서 Operation speed 가 중요한데, 이를 위해서 Winograd Convolution 을 사용합니다.

Winograd FFT Algorithm 은 최소 곱셈 (Minimal-Multiplication) 의 FFT 연산을 수행 할 수 있습니다.

본 논문에서는 Cuda 를 기준으로 성능을 측정하였고, HW 를 직접 설계하시는 분들은 참고만 하면 될 것 같습니다.

 

(곱셈을 줄이는 대신 다른 추가 연산들이 붙는데 결국 Tradeoff 이며, 이 부분은 실제 구현하여 Resource 차이를 비교해봐야함.)

본문 (연산량 측면)

Winograd FFTs 예제를 통해서 계산량을 이해해 보려고 합니다.

en.wikipedia.org/wiki/Shmuel_Winograd

연산에 관련되 내용은 다음 블로그도 좋은 것 같습니다.
blog.usejournal.com/understanding-winograd-fast-convolution-a75458744ff

 

따라서 적어보니까, 이해가 잘되네요.  위 예제에서는 곱셈수를 기존 6개에서 4 개로 줄여서 동일 연산이 가능합니다. (Overflow 는 미고려)

 

 

2-D convolution 으로 넘어가면, 2.25 배의 곱셈수 이득이 있습니다.

 

다시한번 이야기하지만, 곱셈수가 줄어든다고 사용하는 HW Resource 가 무조건 주느냐..? 그건 아닙니다. 

 

다음 논문을 보면,

arxiv.org/abs/1412.7580

NVIDIA’s cuDNN 1.0 library 의 내용이지만, 참고할만 한 것 같습니다. Kernel size 가 클 때, 가속화가 잘된다 생각하면 되겠습니다.

 

 

F(1x4, 3x3) 을 구현해서 Test 를 해볼 생각입니다.

 

 

FPGA 에 해당 알고리즘을 implementation 한 논문인데, (아직 읽어보니 않음) 참고해볼만 할 것 같구요.

ceca.pku.edu.cn/media/lw/6940b5b0e09259131ff19334f3efeecd.pdf

 

급 마무리를 하여,

즐공하세요 :)

반응형

'HW Engineer 가 이야기하는 AI > 02 재미난? 논문 리뷰' 카테고리의 다른 글

MobileNet v2  (2) 2020.12.16