GPUがメモリを読むとき、何が起きるのか——RTX 4090の内部をタイミング実験で追う
What happens when a GPU reads memory

前回の記事では、ベクトル加算カーネルがnvccからワープに至るまでを追いましたが、今回はその続きとして、SASS命令(グローバルロード)がハードウェアを通過する経路を、RTX 4090上でのタイミング実験に基づいて解説します。L1キャッシュのヒットは約15.4ns、L2は約127ns、TLBミスは約4.4nsといった実測値を交えながら、レジスタからL1、アドレス変換、L2、DRAMに至るまでの詳細な流れを、NVIDIAが公開していないレベルまでリバースエンジニアリングで明らかにします。
L1ヒットは約15.4ns(40サイクル)かかる。この数値は、L1に常駐するラインのランダムな置換を追跡する依存チェーンを1スレッドで実行した結果から得られたものだ。
HNでの議論
19- empiricus
長い間、チップメーカーはハードウェアを簡素化し、ソフトウェア側が適応・最適化することに頼る傾向があった。しかし、この試みは何十年にもわたって失敗し続けてきた。今や、カーネルを比較的迅速にファインチューニングできる執拗なAIが登場している。もしかすると、今回こそよりシンプルなハードウェアが機能するかもしれない? 注:TPU/NPUが単純なだけでなく、あまりにも限定的ではないかどうかは確かではない。
- xyzsparetimexyz
> この経路の詳細はNVIDIAによって文書化されておらず、少なくとも我々が望むレベルではない。そこで、ハードウェア自体に対するタイミング実験によってそれを決定する。
あるいは、単にAMDのISAを使うこともできるだろう。
- KellyCriterion
非常に良い記事だ。次の記事を思い出させる:
「プログラマが知るべきメモリについて」
https://github.com/Ty-Chen/Reading-List/blob/master/What%20e...