일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이진수 곱셈 알고리즘
- pyverilog 설치 오류
- DNN Accelerator
- 대구 반도체 설계기업 특화
- linux c 컴파일
- systolic array
- 컨벌루션 연산
- gcc 컴파일
- CUDA
- Data HAzard
- 딥러닝 가속기
- makefile
- 남산업힐
- pytest-pythonpath 설치 오류
- 클럭 게이팅
- Pyverilog 실행
- Makefile compile
- DNN 가속기
- CLOCK GATING
- 데이터 해저드
- linux makefile 작성
- Pyvrilog tutorial
- AMBA
- CDC
- gpgpu-sim
- pygraphviz 설치 오류
- Pyverilog 설치
- Design DNN Accelerator
- Pyverilog 튜토리얼
- linux c++ 컴파일
- Today
- Total
목록systolic array (2)
오늘은 맑음
이전 글에서는 Systolic array에서 사용하는 processing element의 구조를 보았습니다. 이번에는 systolic array를 사용해서 Deep Learning Algorithm을 연산하는 대표적인 NPU인 TPU의 구조를 보도록 하겠습니다. TPU의 구조는 위와 같습니다. 많은 block diagram이 있지만 우측을 살펴보도록 하겠습니다. 가장 우측 중간에 MMU(Matrix Multiply Unit)라는 block이 있습니다. MMU의 좌측에는 Systolic Data setup block이, 위에는 Weight FIFO, 아래로는 Accumulator가 있습니다. MMU를 보면 위와 같습니다. 화살표는 데이터의 흐름을 의미합니다. Row 단위로 Data가 전달 되고, Colum..
기존에 올렸던 글에서는 모두 adder tree를 가지는 구조였습니다. 간략하게 그리면 위의 구조였습니다. A(activation)과 W(weight)가 하나씩 입력 되면, 연산기에서 서로 곱해줍니다. 만약 5x5 컨벌루션이라고 하면 뉴런(파란 동그라미)가 25개 있겠죠? 그러면 아래처럼 2인 1조로 더해주는 동작을 반복해 최종 출력이 1개가 되게끔 만들어 줍니다. 아래의 덧셈 과정을 adder tree 구조라고 합니다. 여기에 곱셈과 덧셈 과정이 있는데, quantization의 경우 곱셈기와 덧셈기의 크기를 줄여서 필요한 하드웨어 자원의 크기를 줄이려는 알고리즘이죠. 일로 인해 잠시 멈췄던 NPU 공부를 다시 해볼까 합니다. 기존의 구조가 아닌 Eyeriss나 TPU와 같이 많은 논문에서 사용하는 s..