다운로드 링크가 정상적으로 보이지 않는 경우 애드블록을 해제해 주세요.
본문 바로가기
  • 혜음우리말화연구소
잡담/대학원

PipeCNN 최적화

by WindowsTiger 2022. 2. 17.

PipeCNN은 FPGA상에서 pipeline을 활용하여서 효율적으로 FPGA상에서 CNN 가속을 하도록 만들어진 소스코드이다.

이 커널의 경우 AlexNet, VGG-16, RESNET-50을 대상으로 하는데, RESNET-50의 경우 커널이 지나치게 크다는 문제점이 있었다. 이 문제의 원인은 eltwise 커널이 지나치게 컸으며, 이는 해당 커널의 모든 자료형이 float형으로 처리하였고, float형은 매우 비싼 자료형이기 때문이다.

 

여기서 나는 eltwise 커널의 모든 float를 int32로 수정을 하고, 일종의 고정소숫점으로 만들어 연산을 하였다.

이로 인해 Top-1 Accurency는 70%->67%로 약 3%줄었지만, 총 사용 로직(RTL 제외)는 99%->50%대로 줄었다.

 

아래의 코드는 intel FPGA에서만 적용되었다.

https://github.com/Wintiger0222/PipeCNN-RESNET-Optimize

 

 

GitHub - Wintiger0222/PipeCNN-RESNET-Optimize: An OpenCL-based FPGA Accelerator for Convolutional Neural Networks

An OpenCL-based FPGA Accelerator for Convolutional Neural Networks - GitHub - Wintiger0222/PipeCNN-RESNET-Optimize: An OpenCL-based FPGA Accelerator for Convolutional Neural Networks

github.com

 

댓글