Altifigence Academy

19 / 24 · 개념

대역폭과 계산 경계

위 1152 MAC,224바이트 예제에서 PE를 8개로 늘리고 대역폭을 0.5바이트/사이클로 유지합니다. 완전 겹침의 경계는 얼마이며 PE만 늘리면 어떤 한계가 남나요?

연산기를 채우는 공급량

MAC 수는 해야 할 작업의 양이고 대역폭은 그 작업에 필요한 값을 공급하는 속도입니다. 한 사이클에 PE 네 개가 각각 한 MAC을 처리하면 이상적인 계산 속도는 4 MAC/사이클입니다. 입력과 가중치를 매번 외부에서 두 바이트씩 읽는다면 공급 요구량은 8바이트/사이클입니다. 재사용을 통해 외부 전송은 줄어들어도 지역 버퍼가 각 PE에 충분한 읽기를 제공해야 합니다. 외부 대역폭과 내부 포트 요구는 같은 수가 아닙니다.

이상적인 계산 시간의 경계는 전체 MAC 수/가능 MAC 속도입니다. 전송 시간의 경계는 전송 바이트/가능 바이트 속도입니다. 완전히 겹칠 수 있다면 전체 시간은 두 경계 중 큰 값보다 짧을 수 없습니다. 겹칠 수 없으면 시간을 더해야 합니다. 시작 지연, 버스 전송 묶음, 주소 설정, 마지막 불완전 타일과 출력 쓰기는 실제 일정에 추가될 수 있습니다.

가상 설계의 수치 예제

N=1,C=2,H=W=6,M=4,3×3 valid 합성곱의 출력은 4×4입니다. MAC 수는 4×4×4×2×3×3=1152입니다. 모든 입력·가중치를 외부에서 한 번씩 읽고 최종 출력만 쓴다고 가정하면 int8 입력 72바이트,가중치 72바이트,출력 64바이트와 32비트 바이어스 16바이트가 필요해 합계 224바이트입니다. 실제 타일의 halo 중복이나 부분합 spill이 없다는 강한 가정입니다.

PE 네 개의 계산 경계는 1152/4=288사이클입니다. 전송 속도 1바이트/사이클이면 전송 경계는 224사이클이며 완전 겹침 경계는 288사이클입니다. 전송 속도가 0.5바이트/사이클이면 448사이클이 되어 공급이 더 큰 경계입니다. 겹침 없이 1바이트/사이클을 사용하면 단순 합계는 288+224=512사이클입니다. 어느 값을 성능 수치로 보고하는지 반드시 가정과 함께 적습니다.

재사용의 효과를 분리해 보기

이 가정의 연산 집약도는 1152/224≈5.14 MAC/바이트입니다. 반대로 두 피연산자를 각 MAC마다 새로 읽으면 피연산자 전송만 2304바이트입니다. 출력 64와 바이어스 16을 더하면 2384바이트가 됩니다. 두 결과의 차이는 계산 수가 아니라 이동 횟수에 있습니다. 이 단순 비교는 캐시, 압축과 버스 정렬을 무시하므로 실제 하드웨어 수치로 제시하지 않습니다.

벤치마크를 설계할 때 유일한 텐서 크기, 실제 읽기·쓰기 바이트, 부분합 왕복, PE 유효 MAC과 총 사이클을 기록합니다. PE가 쉬는 사이클은 입력 부족, 출력 막힘, tail과 제어로 나누어 보면 다음 개선을 찾기 쉽습니다. PE를 두 배로 늘렸는데 전송 경계가 지배한다면 처리 시간이 절반이 되지 않을 수 있습니다. 메모리의 재사용 수준을 높이려면 저장량도 증가할 수 있으므로 앞 단원의 타일 예산과 함께 판단합니다.

직접 생각해 보기

위 1152 MAC,224바이트 예제에서 PE를 8개로 늘리고 대역폭을 0.5바이트/사이클로 유지합니다. 완전 겹침의 경계는 얼마이며 PE만 늘리면 어떤 한계가 남나요?

해설 보기

계산 경계는 144사이클,전송 경계는 448사이클로 max=448입니다. 입력 공급이 지배하므로 PE 증가만으로 448 아래로 내려갈 수 없습니다.

선택은 이 브라우저에만 적용됩니다. 언제든 푸터에서 변경할 수 있습니다.