2.C5輸送機の例でメモリバンド幅とレーテンシを考える
メモリバンド幅は、単位時間あたりどれだけのデータをメモリから読み出せるかという値で、単位時間あたりどれだけの貨物を運べるかと同じ性質の値である。ということでイメージしやすいように、ここでは、輸送の比喩を使って説明する。
ステーションワゴンに磁気テープは古いので、Scudiero氏は、米軍の大型輸送機であるC5 Galaxyに64GBのマイクロSDカードを詰め込んでいる。この場合、15.7EBを運べるという。そして、ニューヨークからマイアミまで運ぶ場合の所要時間は1.87時間としている。この場合のバンド幅は2.32PB/sであり、これは非常に高いバンド幅である。
連邦航空局の許容する最短の2分間隔でC5を次々に離陸させたとすると、120秒ごとに15.7EBを出荷するので、これは130.83PB/sのチャネルバンド幅ということになる。そして、何機が飛行中かというと、1.87時間/2分は約56機ということになる。もし、定刻に離陸できない飛行機が出ると、利用できるバンド幅は減少してしまうので、フルバンド幅を実現するためには、常に56機が飛行している状態を保つ必要がある。
さらにこの喩えを続けると、マイアミで荷を下ろしたC5をニューヨークに戻し、指定したデータを運んでもらう場合を考える。なお、マイアミでの荷卸しとニューヨークでの積み込みには、それぞれ1時間掛かるとする。そうすると、往復の飛行と荷卸し、積み込みで、合計5.74時間掛かることになる。この場合、2分ごとに離陸させるためには172.2機のC5が必要になる。(C5は131機しか製造されていないので、現実には、機体が足りないのであるが、それを一応、断るあたりにScudiero氏の凝り性が表れている)
この場合、マイアミで要求したデータが届くまで5.7時間掛かる。しかし、その間、マイアミ側の作業者は待っているだけでなく、別の仕事をすることができる。
ここで、要求したデータがフルの15.7EBではなかった場合を考えてみよう。C5は15.7EBを運べるが、その輸送力の一部しか利用されていないことになり、利用されたバンド幅はこれより低下してしまう。
気が付かれたと思うが、ここでは、ニューヨークがDRAM、マイアミがGPUのSM(Streaming Multiprocessor)である。そして、それぞれのC5がメモリトランザクションで、1機の積載量がトランザクションのサイズで、通常はキャッシュラインのサイズである。飛行しているC5がLoads in Flight(伝送中のデータ)である。この例は、非常に高いバンド幅であるが、レーテンシは非常に長いという例となっている。これほど極端ではないが、CPUと比較するとGPUのメモリはこのような傾向があるので、C5での輸送の例はメモリの動作を考えるのに役に立つと思う。