RTL 설계: CNN 가속기
합성곱의 좌표와 정수 수치 계약부터 스트리밍 창, PE 매핑과 타일링까지 배웁니다. 실행 가능한 기준 모델과 작은 추론 경로로 결과·일정·전송량을 구분해 검증합니다.
이 코스에서 배우는 것
- stride·패딩·dilation·채널을 포함한 합성곱 계약과 모양을 계산하기
- 고정소수점·scale·zero point·누적 폭·반올림·포화를 명시하기
- 직접 합성곱과 im2col 기준 모델의 결과를 비교하기
- 라인 버퍼와 수락 조건으로 멈춤을 견디는 창을 만들기
- PE 재사용·타일 저장량·전송량·일정의 가정을 계산하기
- 작은 추론 경로의 수치 결과와 측정 범위를 보고하기
시작하기 전에
브라우저 실습은 교육용 모델이며 HDL을 컴파일·실행하지 않습니다. 제공된 소스를 별도로 실행하려면 운영체제에 맞는 Digital Design Studio 안내를 따르고 해당 작업에서 요구할 때 로그인하세요.
설치·첫 실행 안내 ↗ · 다운로드 ↗커리큘럼
- 추론 연산의 계약
- 추론과 학습의 범위개념
같은 입력에서 출력 채널만 3에서 6으로 늘리면 MAC 수와 바이어스 저장량은 어떻게 바뀌나요?
- 합성곱과 교차상관개념
첫 창 [1,2;4,5]와 커널 [1,0;0,-1]의 교차상관 결과와 커널을 뒤집은 결과는 무엇인가요?
- 모양·stride·패딩·dilation개념
H=7, R=3, stride 2, 위 패딩 0, 아래 패딩 1, dilation 2일 때 Ho와 h=1,r=2의 입력 좌표를 계산하세요.
- 확인: 모양과 MAC 수이해 확인
N=1,C=2,H=W=5,M=3,3×3 커널,stride 2,각 방향 패딩 1,dilation 1입니다. 출력 모양과 총 MAC 수는 무엇인가요?
- 정수 연산의 계약
- 고정소수점의 비트와 단위개념
F=4인 입력 0.5와 −1.25를 곱하고 F=8의 바이어스 0.25를 더하세요. 누적 코드와 실수 값은 무엇인가요?
- scale과 zero point개념
sₓ=0.25,zₓ=128일 때 패딩 코드와 q=132의 실수 값은 무엇인가요? sᵥ=0.5의 누적기에 실수 바이어스 0.75를 더할 코드는 무엇인가요?
- 누적 폭·반올림·포화개념
9개 signed int8 곱의 합을 담는 데 18비트 signed가 충분한가요? 바이어스는 0이라고 가정하세요.
- 실습: 양자화 계약 실행실습
실수 −40을 같은 uint8 설정으로 양자화하면 코드와 역변환 값은 무엇인가요? 어떤 검사를 추가하겠습니까?
- 기준 연산 모델
- 직접 합성곱 기준 모델개념
두 입력 채널 [2,3], 가중치 [4,−1], 바이어스 1을 처리할 때 바이어스를 각 입력 채널의 반복마다 더하면 어떤 잘못된 결과가 나오나요?
- 창 펼치기와 행렬 곱개념
H=W=4,C=1,3×3 valid 커널일 때 원본 입력 원소 수, P,K와 전체 패치 행렬 원소 수를 계산하세요.
- ReLU·최대 풀링 연결개념
uint8 출력 zᵧ=100에서 ReLU 전 코드 [98,103;101,97]을 처리하면 ReLU 행렬과 최대 풀링 코드는 무엇인가요?
- 확인: 출력 처리 순서이해 확인
누적 행렬 [−1,2;3,−4]에 multiplier 0.5,zᵧ=0,짝수 반올림,int8 포화,ReLU,2×2 최대 풀링을 차례로 적용합니다. 최종 코드는 무엇인가요?
- 스트리밍 창 생성
- 라인 버퍼와 3×3 창개념
W=8,H=6인 같은 창 생성기에서 저장 슬롯 수, 첫 유효 입력 인덱스와 총 창 개수는 무엇인가요?
- ready·valid와 멈춘 상태개념
출력 stage에 A가 있고 out_ready=0인데 새 입력 B의 valid가 1입니다. 다음 에지에서 stage와 입력 생산자는 어떻게 행동해야 하나요?
- 실습: 멈춤을 견디는 창실습
기존 멈춤 [2,3,12] 대신 사이클 [0,1,2]에서 멈추되 모든 입력이 결국 수락된다면 총 창 개수와 값은 바뀌나요? 완료 사이클 수는 어떻게 되나요?
- 확인: 첫 창의 시점이해 확인
폭 4인 4×4 입력의 3×3 valid 창 생성기에서 처음 네 사이클에 입력을 수락하지 않고 이후 한 사이클에 하나씩 받습니다. 첫 유효 창의 수락 인덱스와 실제 사이클(0부터)은?
- PE와 메모리에 매핑하기
- PE·dataflow·MAC 재사용개념
P=3,M=2,K=8인 출력 고정 매핑에 PE 4개가 있습니다. MAC 구간 사이클 수와 유효 MAC 슬롯 사용률은 무엇인가요? 쓰기 사이클은 제외하세요.
- 타일과 halo·부분합개념
Th=Tw=2,Tc=1,Tm=2,3×3 커널,stride 2,dilation 1입니다. int8 입력·가중치와 32비트 부분합·바이어스의 단일 버퍼 합계는 얼마인가요?
- 대역폭과 계산 경계개념
위 1152 MAC,224바이트 예제에서 PE를 8개로 늘리고 대역폭을 0.5바이트/사이클로 유지합니다. 완전 겹침의 경계는 얼마이며 PE만 늘리면 어떤 한계가 남나요?
- 일정·tail·이중 버퍼개념
K=10,출력 4개,PE 3개이며 출력마다 추가 1사이클입니다. 총 모델 사이클과 MAC 구간 사용률을 계산하세요.
- 검증과 측정 가능한 캡스톤
- 기준 모델과 오류 분류개념
기준 [37,47;67,77]와 비교 결과 [38,48;68,78]을 봤습니다. 우선 무엇을 확인하고 어떤 기록을 추가하겠습니까?
- 실습: 경계 조건을 깨뜨려 보기실습
위 패딩 예제에서 커널을 모두 1로 바꾸면 첫 출력은 무엇이며 왜 가운데 결과만 검사하면 안 되나요?
- 캡스톤: 작은 추론 경로와 보고서실습
같은 K=9,출력 4개에서 PE를 3개로 바꾸고 출력당 추가 1사이클을 유지하면 총 모델 사이클과 MAC 슬롯 사용률은 무엇인가요?
- 최종 확인: 주장과 근거이해 확인
캡스톤 Node 실행으로 누적·출력 일치,36MAC,모델24사이클,MAC 슬롯90%를 확인했습니다. 가장 정확한 완료 설명은 무엇인가요?