반응형
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 |
Tags
- Pyverilog 설치
- makefile
- linux c++ 컴파일
- CDC
- gcc 컴파일
- CUDA
- 대구 반도체 설계기업 특화
- Data HAzard
- pyverilog 설치 오류
- linux c 컴파일
- DNN Accelerator
- 컨벌루션 연산
- 이진수 곱셈 알고리즘
- 딥러닝 가속기
- systolic array
- Design DNN Accelerator
- DNN 가속기
- 클럭 게이팅
- pygraphviz 설치 오류
- 데이터 해저드
- CLOCK GATING
- Pyverilog 튜토리얼
- Pyverilog 실행
- gpgpu-sim
- AMBA
- 남산업힐
- Pyvrilog tutorial
- linux makefile 작성
- Makefile compile
- pytest-pythonpath 설치 오류
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