Please select your location and preferred language where available.
GPUはハイパフォーマンス・コンピューティング(HPC)や機械学習の分野で最も一般的なアクセラレータの一つです。GPUアプリケーションの中にはデータがGPUメモリに収まりきらないものが存在します。そのためCPU側のメモリ(ホストDRAM)やSSDなどの外部メモリが利用されてきました。
今回、GPUの外部メモリとして、近年登場したCompute Express Link™(CXL)の適用可能性を検討しました。CXLは主にCPUとメモリデバイスを接続するインターフェイス規格です。CXLは図1のようにPCI Expressの物理層を利用しているため、GPUやネットワークカードのように後から追加することが可能です。また、CXLに接続されたメモリ(CXLメモリ)はホストDRAMと同様にCPUやGPUから利用することができます。
CXLへのメモリアクセスはホストDRAMに比べて追加レイテンシがかかります。CPUアプリケーションでは100から200nsの追加レイテンシによって性能に影響が出ることが示されています[1]。しかし、追加レイテンシによるGPUアプリケーションへの影響を評価した既存研究はありませんでした。
そこで我々は、GPUアプリケーションのCXLによるレイテンシ影響を実機によって評価しました[2,3]。分析により、GPUアプリケーションはレイテンシに寛容であることを示しました。また、数マイクロ秒のレイテンシを持つ低レイテンシフラッシュのようなメモリモジュールが利用可能か調査しました。
本検討では、GPUアプリケーションとしてグラフ処理を選択しました。グラフ処理性能はHPCの分野で重要な指標の一つであり、Graph500などではスーパーコンピュータの性能指標として活用されています。グラフ処理は数百GBのメモリが必要となるケースがあり外部メモリの研究として頻繁に利用されています。外部メモリへのアクセスは細粒度であり、レイテンシ影響を見るためのアプリケーションとして適しています。
評価にあたって、CXLを利用可能なFPGAデバイス(Intel Agilex®7)にレイテンシ調整機能を実装しました(図2)。この機能によって、数マイクロ秒のレイテンシを持ったCXLメモリを再現することができます。また、レイテンシは固定ではなく、変更することが可能です。
図3にCXLメモリによるグラフ処理時間を示します。縦軸はホストDRAMの実行時間で正規化したCXLメモリの実行時間を示しています。横軸はレイテンシ調整機能によって変更したCXLメモリへのアクセスレイテンシを示しています。グラフ処理のアルゴリズムとして幅優先探索(BFS:Breadth First Search)と単一始点最短経路問題(SSSP:Single Source Shortest Path)を使用しています。この結果から、GPUからのCXLメモリのレイテンシが約2マイクロ秒以下である限り、CXLメモリ上の実行時間はホストDRAM上の実行時間とほぼ同じであることが分かります。
今回、GPUグラフ処理において、数マイクロ秒のCXLメモリがホストDRAMと同性能であることを示しました。これは長いレイテンシを持ったCXLメモリの初期評価であり、今後フラッシュメモリを組み込んだCXLメモリにつなげていきたいと考えています。
本成果は国際学会SC23のworkshop MTSAにおいて発表されました。
文献
[1] H. Li et al. Pond: CXL-Based Memory Pooling Systems for Cloud Platforms. In Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2023.
[2] S. Sano, Y. Bando et al. GPU Graph Processing on CXL-Based Microsecond-Latency External Memory. Proceedings of the SC '23 Workshops of The International Conference on High Performance Computing, Network, Storage, and Analysis
[3] S. Sano, Y. Bando et al. GPU Graph Processing on CXL-Based Microsecond-Latency External Memory.