2회차 4절 · 한 박자씩 돌려 보는 행렬곱

시스톨릭 어레이 박동

가중치를 처리요소(PE)에 미리 앉혀 두고, 활성화를 왼쪽에서 한 박자씩 비스듬히 밀어 넣는다. 부분합은 위에서 아래로 흘러 맨 아래에서 결과가 된다. 토큰 수 M을 바꿔 가며 박자마다 몇 개의 PE가 일하는지 세어 본다.

Y = X · W 를 어레이에 흘리기

이번 박자에 일하는 PE
지금까지 곱셈누산
전체 이용률 (끝까지 돌렸을 때)
재사용
보기

검산

어레이가 내놓은 값이 손으로 곱한 값과 같은지 본다. 칸의 작은 글자는 왼쪽 위가 PE에 앉은 가중치 w, 오른쪽 위가 지금 지나가는 활성화 x, 가운데가 그 PE를 지난 부분합이다.

본문과 대조 ()
세 보기 모두에서 어레이 출력이 손으로 곱한 X·W 와 같은지, 처음 상태(넷째 박자)의 활성 PE·누적 MAC과 TPU v1 크기의 이용률이 2회차 4절 본문·그림과 같은지 본다.
항목계산기대

TPU v1 크기로 옮기면

토큰 수 M박자 수 M+K+N−2곱셈누산이용률

M = 1(배치 1 디코딩)이면 박자 대부분이 채우고 비우는 데 쓰인다. 토큰이 수천 개인 프리필에서는 그 비용이 묻혀 90% 가까이 오른다. 본문 4절이 「배치가 작거나 행렬이 가늘고 길면(디코딩!) 활용률이 크게 떨어진다」고 한 것을 박자 수로 센 것이다.

이 장난감이 단순화한 것