14 / 20 · 概念
帯域幅と有用な利用率
ピークMAC能力を、充填、排出、パディング、メモリのコストと区別します。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
区間と単位を定義する
N×N格子のピークはadvanceエッジあたりN² MACです。単独ジョブでは充填と排出が利用率を下げます。ストールなし、完全タイル、1エッジ転送のモデルでは、有用な処理はN²K、利用可能なスロットはN²(K+2N−2)で、計算区間の利用率はK/(K+2N−2)です。
N=4、K=16では22 advanceエッジで256 MACです。利用率は256/352=8/11、約72.73%です。100MHzを仮定すると、ピーク能力は1.6 GMAC/s、単独の計算区間スループットは約1.164 GMAC/sです。乗算と加算を別に数えると演算数は2倍です。仮定した周波数での見積もりであり、合成の測定結果ではありません。
各境界の通信量を計算する
AとBの投入には2NK値が必要で、8ビットオペランドでは128バイトです。PEは512オペランド値を消費し、各境界入力の4倍の再利用が分かります。投入が重なる区間ではエッジあたり8バイト、100MHzで0.8GB/sが必要になり得ます。ピーク供給需要と充填・排出を含む平均需要は異なります。
20ビットのアキュムレータ幅でも、16結果を32ビット記憶スロットで保存すると仮定します。結果書き込みは64バイト追加され、タイル間再利用、コマンドのオーバーヘッド、アラインメントの無駄を除く外部通信量は192バイトです。演算密度は256/192=4/3 MAC/バイトです。
0.4GB/sでは転送だけで最低480ns、計算は220ns必要です。完全に重ねても長い方の区間より短くできず、スループットの上限は約0.533 GMAC/sです。これは上限で、性能の保証ではありません。重ねない場合はロード32エッジ、計算22、格納16、合計70エッジで、初期化や他の待ちの前でも約0.366 GMAC/sです。
N=2上のパディングした3×3例では、80 PEスロット中27が有用MACで、有用利用率は33.75%です。ゼロパディングMACも数えると60%で、異なる測定になります。JouppiらのTPU論文は、アクセラレータのピーク能力とワークロード性能を区別する研究資料です。ここでの数値例は独自のスケジュールから導いています。
自分で考えてみましょう
完全なN=2、K=8タイルのMAC数、計算エッジ数、利用率、8ビット境界入力のバイト数を求めてください。
解説を見る
32 MAC、10計算エッジ、40 PEスロットなので利用率は80%です。境界入力は2×2×8=32バイトです。計算利用率はロードと結果格納を除外します。