일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gcc 컴파일
- pytest-pythonpath 설치 오류
- CDC
- pygraphviz 설치 오류
- Pyverilog 튜토리얼
- Pyvrilog tutorial
- CLOCK GATING
- DNN 가속기
- DNN Accelerator
- 데이터 해저드
- Pyverilog 설치
- gpgpu-sim
- Pyverilog 실행
- Design DNN Accelerator
- CUDA
- linux makefile 작성
- 남산업힐
- pyverilog 설치 오류
- makefile
- systolic array
- AMBA
- 이진수 곱셈 알고리즘
- 대구 반도체 설계기업 특화
- Makefile compile
- 딥러닝 가속기
- linux c 컴파일
- 클럭 게이팅
- Data HAzard
- 컨벌루션 연산
- linux c++ 컴파일
- Today
- Total
목록NPU (19)
오늘은 맑음
오늘은 한참 핫한 OpenAI의 ChatGPT를 사용해보았습니다. ChatGPT는 지도학습과 강화학습을 이용해서 만든 대화형 챗봇으로 요즘 엄청나게 이슈가 되고 있습니다. Google, MS를 포함해 네이버와 같은 IT 회사들에서 ChatGPT와 같은 서비스를 제공하겠다고 나서고 있습니다. 현재 사용되는 검색 엔진을 대체할 수 있다는 기대감과 아직은 부족하다는 의견들이 맞서고 있으며, 검색 뿐만 아니라 과제를 대신 하거나 프로그래밍도 할 수 있다고 하네요. 그래서 저도 한 번 사용해봤습니다. 먼저 ip design에서 PPA에 대해 잘 설명을 해주는지 키워드를 넣어봤습니다. Q : hardware ip design ppa A : 기대했던 것 보다 괜찮은 대답이 나왔네요. 이번에는 verilog hdl로 ..
안녕하세요, 앞서 systolic array를 활용한 NPU에 대해서 이야기를 했었습니다. 오늘은 systolic array를 간단하게 만들어서 컨벌루션 연산을 해보는 실험을 해보겠습니다. 그림 1의 컨벌루션 연산을 수행해 볼 예정입니다. 좌측의 5x3은 입력 데이터이며, 우측의 3x3은 가중치입니다. 따라서 컨벌루션 연산을 하게 되면 총 3개의 output activation이 나오게 됩니다. 차례대로 연산을 하게 되면 output activation은 각각 312, 348, 384가 나오게 됩니다. 위의 연산을 수행하기 위해서는 총 9개의 mac 연산기를 이용해 작은 systolic array를 만들어보겠습니다. 그림 3과 같이 총 9개의 MAC연산기가 있습니다. 각 MAC 연산기에는 처음 weigh..
5.5 TECHNIQUES TO REDUCE REUSE DISTANCE 이번 장에서는 5.4장에서 다루었던 reuse distance를 줄이는 방법에 대해 다룹니다. Reuse distance는 temporal reuse와 spatial reuse에 영향을 끼치기 때문에 다양한 방법으로 reuse distance를 조절하여 고정된 hardware에서 서로 다른 layer들을 가장 효율적으로 연산할 필요가 있기 때문입니다. 먼저 data tiling에 대해서 설명합니다. Data tiling이란 큰 데이터를 'tile'이라는 작은 단위로 나누는 것을 의미합니다. Tile단위로 나누게 되면 한 번에 큰 데이터를 한 번에 처리 할 필요 없이 각 tile에 대해서만 처리가 가능해집니다. 5.5장에서는 data ..
5.4 ARCHITEECTUREAL TECHNIQUES FOR EXPLOITING DATA REUSE 5.4.1 Temporal reuse Temporal reuse는 PE에서 같은 데이터를 한 번 이상 사용할 때를 의미합니다. Temporal reuse는 실제로 원본 데이터를 가지고 있는 memory인 Source level보다 더 작은 메모리인 Intermediate level을 사용해서 구현할 수 있습니다. 위의 그림 (d)와 같이 source mem으로 부터 데이터를 Intermediate L1 Mem으로 가져온 후 consumer에서 반복적으로 사용을 하게 되면 지속적으로 Source Mem에 접근할 필요 없이 바로 intermediate L1 Mem에서 데이터를 재사용할 수 있으므로 전체적으로..
5.3 DNN HARDWARE DESIGN CONSIDERATIONS 5.3절에서는 DNN hardware design을 할 때의 고려사항에 대해서 설명합니다. DNN hardware를 design할 때 중요한 점으로는 "최적의 성능(performance, energy efficiency)을 위한 flexible architecture 찾기" 입니다. 여기서 최적의 성능을 위한 flexible architecture를 찾기 위해서는 최적의 "mapping"을 찾아야 합니다. 여기서 "mapping"이란 다음의 의미를 함축한 것으로 생각하시면 됩니다. MAC operation을 temporally, spatially하게 동작 시키고 MAC operation을 어떻게 하면 하나의 PE에서 동일한 데이터를 재..
5.2 KEY PROPERTIES OF DNN TO LEVERAGE 5.2에서는 5.1에서 이야기 한 내용에 이어서 어떻게 하면 DNN의 특성을 이용해서 hardware의 performance와 energy efficiency를 높일 수 있을지에 대해서 설명합니다. 5.1에서는 주로 data locality를 이용하거나, data의 bitwidth를 줄여 전체적인 transfer cost를 낮추는 방법을 이야기 했다면, 5.2에서는 연산기 내부에서 어떻게 하면 data transfer cost를 줄일 수 있을지에 대해서 이야기합니다. DNN의 연산 특성상(예를 들면 convolution layer) 각 convolution 연산 사이에는 data dependancy가 없습니다. 즉, kernel이 str..