2.C5輸送機の例でメモリバンド幅とレーテンシを考える

メモリバンド幅は、単位時間あたりどれだけのデータをメモリから読み出せるかという値で、単位時間あたりどれだけの貨物を運べるかと同じ性質の値である。ということでイメージしやすいように、ここでは、輸送の比喩を使って説明する。

ステーションワゴンに磁気テープは古いので、Scudiero氏は、米軍の大型輸送機であるC5 Galaxyに64GBのマイクロSDカードを詰め込んでいる。この場合、15.7EBを運べるという。そして、ニューヨークからマイアミまで運ぶ場合の所要時間は1.87時間としている。この場合のバンド幅は2.32PB/sであり、これは非常に高いバンド幅である。

C5 Galaxy輸送機に64GBのマイクロSDを満載すると15.7ExaByteを運べる。これでニューヨークからマイアミまで1.87時間で飛ぶと、2.32PB/sのバンド幅となる

連邦航空局の許容する最短の2分間隔でC5を次々に離陸させたとすると、120秒ごとに15.7EBを出荷するので、これは130.83PB/sのチャネルバンド幅ということになる。そして、何機が飛行中かというと、1.87時間/2分は約56機ということになる。もし、定刻に離陸できない飛行機が出ると、利用できるバンド幅は減少してしまうので、フルバンド幅を実現するためには、常に56機が飛行している状態を保つ必要がある。

2分間隔でC5を離陸させると、チャネルバンド幅は130.83PB/sとなる。しかし、このバンド幅を維持するには、常に56機が飛行している必要がある

さらにこの喩えを続けると、マイアミで荷を下ろしたC5をニューヨークに戻し、指定したデータを運んでもらう場合を考える。なお、マイアミでの荷卸しとニューヨークでの積み込みには、それぞれ1時間掛かるとする。そうすると、往復の飛行と荷卸し、積み込みで、合計5.74時間掛かることになる。この場合、2分ごとに離陸させるためには172.2機のC5が必要になる。(C5は131機しか製造されていないので、現実には、機体が足りないのであるが、それを一応、断るあたりにScudiero氏の凝り性が表れている)

積み込みと荷降しに各1時間かかるとすると172.2機が必要になる

この場合、マイアミで要求したデータが届くまで5.7時間掛かる。しかし、その間、マイアミ側の作業者は待っているだけでなく、別の仕事をすることができる。

ここで、要求したデータがフルの15.7EBではなかった場合を考えてみよう。C5は15.7EBを運べるが、その輸送力の一部しか利用されていないことになり、利用されたバンド幅はこれより低下してしまう。

マイアミ側が要求したデータが、フルの15.7EBより少ない場合は、バンド幅の有効利用率は下がってしまう

気が付かれたと思うが、ここでは、ニューヨークがDRAM、マイアミがGPUのSM(Streaming Multiprocessor)である。そして、それぞれのC5がメモリトランザクションで、1機の積載量がトランザクションのサイズで、通常はキャッシュラインのサイズである。飛行しているC5がLoads in Flight(伝送中のデータ)である。この例は、非常に高いバンド幅であるが、レーテンシは非常に長いという例となっている。これほど極端ではないが、CPUと比較するとGPUのメモリはこのような傾向があるので、C5での輸送の例はメモリの動作を考えるのに役に立つと思う。

この比喩では、ニューヨークはDRAM、マイアミはGPUのSMである。それぞれのC5はメモリトランザクションで、1機の積載量はトランザクションのサイズ、飛行中の機数はLoads in Flightである (なお、ICYMIは、In Case You Missed Itの略である)