오늘은 맑음

NPU 환경 구축기(3) Convolution 테스트 본문

NPU

NPU 환경 구축기(3) Convolution 테스트

자전거 타는 구구 2020. 7. 27. 15:47
반응형

 이번에는 만들어진 Processing Element를 이용해서 convolution 연산을 수행해보도록 하겠습니다.

 구성은 간단합니다.

 SRAM과 PE(Processing Element)가 있고 그림에는 표현이 되어있지 않지만 Address를 생성해주는 제어기(controller)가 있습니다.

 Controller는 address와 nCE를 생성해주고 이로부터 나온 데이터는 MAC 연산을 수행하는 PE로 들어가서 연산을 수행합니다.

 

Convolution operation test module

 

 제 모듈은 최대 5 x 5의 activation과 weight를 연산할 수 있습니다.

simulation result

 맨 아래의 negative reset신호가 high가 되고나서 데이터가 전송이 되기 시작해서 가장 윗 라인인 Output 데이터가 출력됩니다.

 총 3번의 convolution연산이 끝나면 두 번째 DONE신호가 출력되게끔 testbench를 작성했습니다.

 처음에는 activation이 1, weight가 모두 1인 데이터를 집어넣어 5x5연산을 수행해 25가 나왔고, 두 번째는 데이터 스위칭 확인을 위해 activation과 weight의 값이 각각 1개만이 1인 데이터를 넣었으며 마지막 데이터는 1~25의 값을 차례대로 넣어 연산을 수행했습니다.

 이로써 Convolution 데이터 연산은 된 것같습니다.

 

 그런데 계속 중간중간에 에러가 발생해서 골치네요

반응형
Comments