【深掘り】GPUがメモリを読み出すとき、内部で一体何が起きているのか?
What happens when a GPU reads memory
What happens when a GPU reads memory
GPUがメモリからデータを読み出す際、システム内部では非常に複雑で高速なプロセスが実行されています。このメカニズムを理解することは、GPUの性能を最大限に引き出すための最適化において非常に重要です。主に、メモリコントローラーを介したリクエストの集約、メモリアクセスのレイテンシ隠蔽、そしてデータ転送効率を高めるためのキャッシュ階層の活用などが一気に行われています。GPUのアーキテクチャやメモリ帯域幅の特性を把握することで、なぜ特定のプログラムがボトルネックを引き起こすのか、その理由を論理的に紐解くことができます。
長い間、チップメーカーはハードウェアを単純化して、ソフトウェア側の適応と最適化に頼る傾向があったんだ。でも、何十年もの間この試みは失敗し続けてきた。今はカーネルの微調整を高速に行える強力なAIがあるから、今度こそ単純なハードウェアでもうまくいくんじゃないかな?ただ、TPUやNPUが単純なだけじゃなくて単に機能不足なだけじゃないのか、ちょっと確信が持てないけど。
こういう記事こそHN(Hacker News)にふさわしいし、自分が最初にここに来たのもそれが理由なんだよね。内容の3分の1も理解できてないけど、もっと深く掘り下げてみようっていう刺激をもらえる。マジで、今のところ全然わかんない(笑)
Ctrl+Fで「PCIe BAR」を検索したけど……何もヒットしないね。
誰か教えてくれない? なんで自分は5分もかけて読んだのに、結局何が書いてあるのか理解できてないんだ? 誰か5歳児でもわかる(ELI5)バージョンへのリンクを貼ってくれないか。
すごく良い記事だね。「プログラマがメモリについて知っておくべきこと」を思い出すよ。https://github.com/Ty-Chen/Reading-List/blob/master/What%20every%20programmer%20should%20know%20about%20memory.pdf
人による(YMMV)かな。すべてのGPUが完全に同じように動くわけじゃないし。
このパスの詳細はNVIDIAによってほとんど文書化されておらず、我々が望むレベルには程遠い。そのため、ハードウェア自体でタイミング測定実験を行って特定していく。
それか、単にAMDのISAを使えばいいんじゃないか?