반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- AMBA
- 딥러닝 가속기
- Data HAzard
- 데이터 해저드
- 클럭 게이팅
- Design DNN Accelerator
- CDC
- 컨벌루션 연산
- 남산업힐
- DNN 가속기
- makefile
- gpgpu-sim
- Makefile compile
- linux makefile 작성
- linux c++ 컴파일
- CLOCK GATING
- Pyvrilog tutorial
- CUDA
- Pyverilog 설치
- gcc 컴파일
- pygraphviz 설치 오류
- linux c 컴파일
- 이진수 곱셈 알고리즘
- 대구 반도체 설계기업 특화
- Pyverilog 실행
- systolic array
- pytest-pythonpath 설치 오류
- pyverilog 설치 오류
- DNN Accelerator
- Pyverilog 튜토리얼
Archives
- Today
- Total
오늘은 맑음
NPU 환경 구축기(3) Convolution 테스트 본문
반응형
이번에는 만들어진 Processing Element를 이용해서 convolution 연산을 수행해보도록 하겠습니다.
구성은 간단합니다.
SRAM과 PE(Processing Element)가 있고 그림에는 표현이 되어있지 않지만 Address를 생성해주는 제어기(controller)가 있습니다.
Controller는 address와 nCE를 생성해주고 이로부터 나온 데이터는 MAC 연산을 수행하는 PE로 들어가서 연산을 수행합니다.
제 모듈은 최대 5 x 5의 activation과 weight를 연산할 수 있습니다.
맨 아래의 negative reset신호가 high가 되고나서 데이터가 전송이 되기 시작해서 가장 윗 라인인 Output 데이터가 출력됩니다.
총 3번의 convolution연산이 끝나면 두 번째 DONE신호가 출력되게끔 testbench를 작성했습니다.
처음에는 activation이 1, weight가 모두 1인 데이터를 집어넣어 5x5연산을 수행해 25가 나왔고, 두 번째는 데이터 스위칭 확인을 위해 activation과 weight의 값이 각각 1개만이 1인 데이터를 넣었으며 마지막 데이터는 1~25의 값을 차례대로 넣어 연산을 수행했습니다.
이로써 Convolution 데이터 연산은 된 것같습니다.
그런데 계속 중간중간에 에러가 발생해서 골치네요
반응형
'NPU' 카테고리의 다른 글
Systolic array를 이용한 NPU에 대한 이해(1) (0) | 2021.04.06 |
---|---|
NPU 환경 구축기(4) 데이터 재사용 (0) | 2020.09.04 |
NPU 환경 구축기(2) SRAM read/write 테스트 (0) | 2020.07.22 |
MIT eyeriss tutorial (0) | 2020.07.21 |
NPU 환경 구축기(1) SRAM Read 테스트 (9) | 2020.07.21 |
Comments