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

CNN 설계 끝

by WindowsTiger 2022. 5. 4.

대학원에서 C로 FPGA를 이용한 CNN 가속기 설계를 끝냈다.

기존에 FC커널을 분리해 놓았었는데 그냥 convolution과 합쳐서 리소스를 절약했다.

방법은 FC커널을 H,W,R,S=1인 컨볼루션 레이어로 보고 어떻게든 머리 굴리면 된다.

 

전부다 선배가 짜놓은 커널의 파라미터 기준으로 얘기하는 것이다.

컨볼루션 커널만 측정했을때 속도는 ResNet50 기준 최대 속도 404ms이다.

VGG16기준으로는 780ms쯤이 최대 인듯 하다.

원래 각각 1020ms, 1050ms쯤 걸렸는데, 후반 레이어로 가면 FPGA에 할당한 버퍼가 많이 남기 때문에

host 쪽에서 파라미터를 조절하여 이를 최대한 사용하도록 했다.

또한 한번에 계산하는 TILESIZE를 늘리니 속도가 빨라지기도 한다.

하지만 이것도 어느정도 적정 값이 있는 것으로 보인다.

TILESIZE_H와 W 변수는 어차피 224이상으로 키울수 없고, 버퍼 크기가 매우 제한적이므로 늘릴수 없다 치고

L1_TILENUM_K와 L1_TILENUM_C는 무작정 늘리기 보다, 최댓값을 K는 8, C는 16으로 설정할경우 최적으로 나오는 것을 확인했다.

이에 대해서는 계속 고민중이다. hw_emu 옵션으로 컴파일해서 문제를 확인할수 있지만, 계속 오류가 발생한다.

vitis tool의 2020.1버전이 조금 엉망으로 설계된것 같다

'잡담 > 대학원' 카테고리의 다른 글

요즘 하는거  (0) 2022.06.02
SIMD Core Statinoary 변경중...  (0) 2022.05.18
요즘 하고 있는것  (0) 2022.04.17
요즘 대학원에서 하고 있는것  (0) 2022.04.10
FPGA의 연산에 DSP를 안 쓰는 방법  (0) 2022.03.22

댓글