17 / 24 · 개념
PE·dataflow·MAC 재사용
P=3,M=2,K=8인 출력 고정 매핑에 PE 4개가 있습니다. MAC 구간 사이클 수와 유효 MAC 슬롯 사용률은 무엇인가요? 쓰기 사이클은 제외하세요.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
무엇을 어디에 오래 남길 것인가
PE는 곱셈·누적과 작은 지역 상태를 가진 연산 단위라고 생각할 수 있습니다. PE 수를 늘리면 가능한 동시 연산이 늘지만 입력, 가중치와 부분합을 충분히 공급해야 합니다. dataflow는 반복문의 각 축을 시간과 PE 위치에 배치하고 어느 값을 가까운 곳에 유지할지 정하는 선택입니다. 같은 MAC 수라도 값의 이동 횟수는 달라질 수 있습니다.
output-stationary 방식은 한 출력의 부분합을 가까운 누적기에 유지하며 입력·가중치를 순서대로 공급합니다. weight-stationary 방식은 가중치를 유지하며 여러 입력을 처리하고 부분합을 옮기거나 따로 합칩니다. input-stationary 방식은 입력을 유지해 여러 가중치에 재사용합니다. 이 이름은 어느 값의 이동을 줄이는지 설명하며 모든 다른 값의 이동을 없앤다는 뜻은 아닙니다. 여러 재사용을 결합한 설계도 가능하므로 이름 하나보다 실제 전송을 적는 것이 정확합니다.
출력 고정 매핑 예제
P=4개 공간 위치,M=2개 출력 채널,K=9개 감소 항이면 출력은 8개이고 총 72 MAC입니다. PE 네 개가 각자 출력 하나를 맡고 한 사이클에 한 항씩 처리한다고 합시다. 첫 네 출력에 9사이클, 다음 네 출력에 9사이클이 걸려 순수 MAC 일정은 18사이클입니다. 각 묶음 뒤에 동시에 결과를 쓰는 1사이클을 추가하고 다른 작업과 겹치지 않으면 총 20사이클입니다. 이때 MAC 구간의 모든 슬롯은 사용되지만 전체 20사이클 중에는 쓰기 구간이 포함됩니다.
같은 입력 위치의 두 출력 채널을 서로 다른 PE에 배치하면 입력 하나를 두 PE에 broadcast해 재사용할 수 있습니다. K=9의 창을 각 출력 채널마다 새로 외부 메모리에서 읽으면 18입력 읽기가 필요하지만 한 번 읽어 공유하면 9개로 줄어듭니다. 이 숫자는 해당 창의 공급 경계에서의 읽기 수입니다. 이웃 공간 창 사이의 라인 버퍼 재사용이나 각 PE의 로컬 읽기는 별도로 셉니다.
지역 저장과 마지막 부분
output-stationary라도 모든 출력의 부분합을 동시에 저장할 필요는 없습니다. 저장 용량에 맞는 출력 묶음만 유지하고 나머지는 다음 묶음에서 처리합니다. 출력이 7개이고 PE가 4개라면 두 번째 묶음은 PE 하나가 유휴 상태가 됩니다. 유효 PE 마스크로 가짜 결과를 쓰지 않도록 하고 사용률을 실제 유효 MAC 수로 계산합니다.
부분합을 이동하는 설계는 이동 폭이 입력보다 넓을 수 있습니다. int8 입력 두 개의 이동과 20비트 누적값의 이동을 같은 한 항목이라고만 세면 비용을 놓칩니다. 값 종류마다 비트 폭, 읽기·쓰기 수와 이동 경계를 정리하세요. 정수 정확성을 유지하는 한 반복의 순서를 바꿔도 최종 합은 같지만 제한된 중간 폭에서 포화하거나 잘라내면 같지 않을 수 있습니다. 재사용과 데이터 이동을 다룬 연구의 실제 예시는 MIT Eyeriss 프로젝트에서 볼 수 있습니다. 이 단원의 PE 수와 일정은 이해를 위한 별도의 가상 설계입니다.
직접 생각해 보기
P=3,M=2,K=8인 출력 고정 매핑에 PE 4개가 있습니다. MAC 구간 사이클 수와 유효 MAC 슬롯 사용률은 무엇인가요? 쓰기 사이클은 제외하세요.
해설 보기
출력은 6개, 묶음은 2개입니다. MAC 구간은 2×8=16사이클이고 슬롯은 16×4=64개입니다. 유효 MAC은 6×8=48개로 사용률은 75%입니다.