To address this issue, researchers formally quantify data transfer from GPU memory to GPU caches using the number of bytes in I/O, and they assess weight computation by measuring the number of FLOPs [320]. Specifically, let \(b\), \(s\), \(n\), \(d\), and \(h\) denote the batch size, sequence length, number of attention heads, hidden size of each head, and overall hidden size (\(h=n\cdot d\)), respectively. During the layer-wise multi-head self-attention calculation in causal decoder, the I/O bytes and FLOPs at each decoding step can be expressed as \(8bsn+4bsnd+4bnd\) and \(8bsnd\), respectively [320].
이 문제를 해결하기 위해 연구자들은 입출력의 바이트 수를 사용하여 GPU 메모리에서 GPU 캐시로의 데이터 전송을 공식적으로 정량화하고, 가중치 계산은 FLOP 수를 측정하여 평가합니다[320]. 특히, 배치 크기, 시퀀스 길이, attention 헤드 수, 각 헤드의 hidden size, 전체 hidden size(\(h=n\cdot d\))를 각각 \(b\), \(s\), \(n\), \(d\), \(h\)로 표시합니다. 인과적 decoder에서 계층별 다중 헤드 self-attention 계산 중에 각 디코딩 단계의 입출력 바이트와 FLOP는 각각 \(8bsn+4bsnd+4bnd\) 및 \(8bsnd\)로 표현할 수 있습니다[320].
이 문제를 해결하기 위해 연구자들은 입출력의 바이트 수를 사용하여 GPU 메모리에서 GPU 캐시로의 데이터 전송을 공식적으로 정량화하고, 가중치 계산은 FLOP 수를 측정하여 평가합니다[320]. 특히, 배치 크기, 시퀀스 길이, 주의 헤드 수, 각 헤드의 숨겨진 크기, 전체 숨겨진 크기(\(h=n\cdot d\))를 각각 \(b\), \(s\), \(n\), \(d\), \(h\)로 표시합니다. 인과적 디코더에서 계층별 다중 헤드 자기 주의 계산 중에 각 디코딩 단계의 입출력 바이트와 FLOP는 각각 \(8bsn+4bsnd+4bnd\) 및 \(8bsnd\)로 표현할 수 있습니다[320].