# 分散共有メモリ ## 定義 分散共有メモリ(Distributed Shared Memory、DSM)は、GPU クラスタ内のあるスレッドブロックから別ブロックの SM に属する共有メモリを直接参照する機構である。Hopper では `cluster.map_shared_rank(SMEM, DST_BLOCK_RANK)` が対象ブロックの共有メモリアドレスを返し、ブロック間のデータ交換をグローバルメモリ経由からオンチップの SM-to-SM 通信へ近づける。 ## 横断的知見 - **DSMEM は Hopper の thread block cluster と非同期同期機構を一体で使う SM 間通信経路である**: NVIDIA の公式解説は、別 SM の shared memory に対する load・store・atomic と、global memory を経由しない約7倍のデータ交換を示す。後続の H800 測定は、クラスタサイズ拡大で帯域競合が増え、レイテンシ短縮と帯域低下が同居することを示した。(Source: [[@2022__NVIDIA Developer Blog__NVIDIA Hopper Architecture In-Depth]], [[@2024__arXiv__Benchmarking and Dissecting the Nvidia Hopper GPU Architecture]]) - DSM は単純な共有メモリ容量の拡張ではなく、レイテンシと帯域のトレードオフを持つ通信資源である。H800 では SM-to-SM レイテンシが180クロックで L2 より32%短い一方、クラスタサイズを2から4へ増やすと RBC のピーク帯域が約3.27 TB/sから2.65 TB/sへ低下した。(Source: [[@2024__arXiv__Benchmarking and Dissecting the Nvidia Hopper GPU Architecture]]) - クラスタ化は共有メモリ不足を緩和しうるが、ブロックサイズ・クラスタサイズ・ビン数による資源競合を増やす。分散ヒストグラムでは、ブロックサイズ128の最適クラスタサイズが4、512では2となり、単一の最適値は存在しない。(Source: [[@2024__arXiv__Benchmarking and Dissecting the Nvidia Hopper GPU Architecture]]) - FaRMはクラスタ内の全マシンのメモリをRDMAでアクセス可能な単一の共有アドレス空間として公開し、PGAS(Partitioned Global Address Space)的な抽象化にACIDトランザクションとロックフリー読み出しを組み合わせる。既存のPGASライブラリ・言語群はロックフリーRDMA読み出しを持たずロック・バリア・メッセージで一貫性を保つ点、永続性・耐障害性を欠く点でFaRMと異なる(Source: [[@2014__NSDI__FaRM- Fast Remote Memory]]) - FaRMの共有アドレス空間は32ビットリージョンIDと32ビットオフセットからなるアドレスを持つ2GB単位のリージョンで構成され、one-hop分散ハッシュテーブルによるconsistent hashing(k=100の仮想リング)でリージョンを担当マシンへマッピングする(Source: [[@2014__NSDI__FaRM- Fast Remote Memory]]) ## 未解決の問い - DSM の一貫性・同期規則と、グローバルメモリや通常の共有メモリとの可視性保証はどう整理されるか。 - RBC 以外の集団通信、MoE のトークン交換、分散ハッシュ表で DSM が有効になる負荷条件は何か。 ## 関連 - 概念: [[メモリ階層とキャッシュ]] / [[GPU最適化]] / [[共有メモリバンクコンフリクト]] - エンティティ: [[NVIDIA Hopper]] / [[H800]] / [[CUDA]] - ソース: [[@2022__NVIDIA Developer Blog__NVIDIA Hopper Architecture In-Depth]] / [[@2024__arXiv__Benchmarking and Dissecting the Nvidia Hopper GPU Architecture]] / [[@2014__NSDI__FaRM- Fast Remote Memory]] ## 出典 - [[@2022__NVIDIA Developer Blog__NVIDIA Hopper Architecture In-Depth]] - [[@2024__arXiv__Benchmarking and Dissecting the Nvidia Hopper GPU Architecture]]