20 / 24 · 개념
일정·tail·이중 버퍼
K=10,출력 4개,PE 3개이며 출력마다 추가 1사이클입니다. 총 모델 사이클과 MAC 구간 사용률을 계산하세요.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
식에서 실제 일정으로 옮기기
계산 경계는 PE 슬롯을 모두 활용할 수 있다고 가정합니다. 실제 일정은 입력 로드,부분합 초기화,MAC,출력 변환·쓰기와 종료 순서를 정해야 합니다. 감소 축 K를 여러 PE에 나누면 각 PE의 부분합을 다시 합칠 비용이 생깁니다. 출력 축을 나누면 부분합 합치기는 줄지만 출력 tail에서 PE가 남을 수 있습니다. 어느 축을 병렬화했는지 설명하지 않고 PE 수만 보고 사이클 수를 계산하면 틀릴 수 있습니다.
감소 축 tail 예제
한 출력에 K=9개의 MAC을 수행하며 PE 두 개가 매 사이클 두 항을 처리한다고 합시다. 필요한 MAC 사이클은 ceil(9/2)=5입니다. 마지막 사이클은 한 PE만 유효합니다. 출력 네 개를 하나씩 처리하면 MAC 사이클은 20이고 가능한 MAC 슬롯은 40개입니다. 유효 작업은 36 MAC이므로 MAC 슬롯 사용률은 90%입니다. 매 출력마다 합치기와 결과 쓰기를 합한 추가 1사이클을 명시적으로 가정하고 다른 작업과 겹치지 않으면 총 24사이클입니다.
이 추가 비용은 실제 RTL에서 보장된 값이 아닙니다. 부분합 트리의 지연,누적 의존성,출력 저장 포트와 제어 구조를 검증한 뒤 바꿔야 합니다. 전체 시간의 PE 슬롯 기준으로는 36/(2×24)=75%이며 앞의 90%와 분모가 다릅니다. 두 사용률을 혼용하면 최적화의 효과를 과장할 수 있습니다. 캡스톤 프로그램은 이 차이를 일정 모델의 가정으로 표시합니다.
이중 버퍼 겹침 예제
타일 하나를 로드하는 데 6사이클,계산에 10사이클,최종 쓰기에 2사이클이 걸린다고 가정합니다. 세 타일을 모두 순차 처리하면 3×(6+10+2)=54사이클입니다. 입력·가중치 이중 버퍼와 독립된 로드·계산 자원,충돌 없는 쓰기를 갖추었다면 첫 타일 로드 6사이클 뒤 10사이클씩 세 타일을 계산하며 후속 로드를 겹칠 수 있습니다. 마지막 쓰기 2사이클을 더한 이상적인 일정은 38사이클입니다. 앞선 두 타일의 쓰기 2사이클은 다음 계산과 겹친다는 가정입니다.
계산이 4사이클로 짧아지고 로드가 여전히 6이면 로드가 뒤처집니다. 이중 버퍼가 있다고 빈 시간을 없앨 수는 없습니다. 두 버퍼의 소유권을 로더와 연산기 사이에 넘기는 ready/valid와 완료 이벤트를 그려 보세요. 사용 중인 버퍼에 다음 로드가 덮어쓰지 않아야 합니다. 출력 쓰기 버스가 로드와 같은 자원을 쓰면 위의 이상적인 겹침 일정도 다시 계산해야 합니다.
종료와 측정
마지막 입력 타일 도착은 완료가 아닙니다. 마지막 MAC,반올림,ReLU,풀링과 최종 결과의 수락까지 확인해야 합니다. 사이클 카운터의 시작·끝 조건을 명시하면 같은 설계를 공정하게 비교할 수 있습니다. 소프트웨어의 일정 추정,RTL 시뮬레이션,합성 주파수와 실제 장치의 측정은 각각 다른 근거입니다. 이 과정은 실행 가능한 수치 모델과 명시적 일정 추정까지 제공하며 이후 구현은 별도의 검증이 필요합니다.
- 초기화: 누적 단위의 바이어스를 한 번 적재
- 다섯 MAC 사이클: 두 PE가 유효 항 아홉 개를 처리
- 합치기와 저장: 출력마다 모델상 한 사이클을 추가
- 남은 결과 처리: 마지막 결과가 수락된 뒤 완료
직접 생각해 보기
K=10,출력 4개,PE 3개이며 출력마다 추가 1사이클입니다. 총 모델 사이클과 MAC 구간 사용률을 계산하세요.
해설 보기
출력당 MAC 4사이클이고 총 4×(4+1)=20사이클입니다. MAC 슬롯은 4출력×4사이클×3PE=48개,유효 MAC은 40개여서 40/48≈83.33%입니다.