GPUをSSDに直接接続して速度を上げたいなら、これが最適だ

Table of Contents

GPUをSSDに直接接続して速度を上げたいなら、これが最適だ

Nvidia、IBM、大学の協力者は、分析や機械学習のトレーニングなどのGPUアクセラレーションアプリケーション向けに、大量のデータストレージへの高速できめ細かなアクセスを提供するというアーキテクチャを開発した。

Big Accelerator Memory(別名BaM)と呼ばれるこの技術は、ストレージへのアクセスに関して、Nvidiaグラフィックプロセッサや同様のハードウェアアクセラレータの汎用チップへの依存を減らし、容量とパフォーマンスを向上させる興味深い試みです。

「BaMの目標は、GPUメモリ容量を拡張し、効果的なストレージアクセス帯域幅を強化すると同時に、GPUスレッドに高度な抽象化を提供し、拡張メモリ階層内の膨大なデータ構造にオンデマンドできめ細かなアクセスを容易に行えるようにすることだ」と、チームが設計について書いた論文には書かれている。

BaMは、従来のCPU中心のタスクをGPUコアへ移行するためのNVIDIAの取り組みです。仮想アドレス変換、ページフォールトベースのオンデマンドデータロード、その他大量の情報を処理する従来のCPU中心のメカニズムに頼るのではなく、BaMはNVIDIA GPUがメモリやストレージから直接データを取得し、CPUコアによるオーケストレーションを必要とせずに処理できるようにするソフトウェアとハ​​ードウェアアーキテクチャを提供します。

BaMは2つの主要な部分から構成されています。1つはGPUメモリのソフトウェア管理キャッシュ、もう1つはGPUスレッドがNVMe SSDに直接アクセスしてデータを要求するためのソフトウェアライブラリです。ストレージとGPU間の情報移動は、GPUコア上のスレッドによって処理され、RDMA、PCIeインターフェース、そして必要に応じてSSDがGPUメモリを直接読み書きできるようにするカスタムLinuxカーネルドライバーが使用されます。要求されたデータがソフトウェア管理キャッシュに存在しない場合、ドライブへのコマンドはGPUスレッドによってキューに入れられます。

これは、GPU上で高負荷なワークロードを実行するアルゴリズムが、必要な情報を迅速に、そして何よりも重要な点として、データアクセスパターンに合わせて最適化された方法で取得できることを意味します。技術的な詳細については、前述の論文をご覧ください。

GPU によるメモリアクセスの Nvidia-IBM の BaM 方式と従来の CPU 中心のアクセスを示す図

論文中の図。従来のCPU中心のストレージアクセス手法(a)とGPU主導のBaMアプローチ(b)を比較し、GPUがストレージデバイスに物理的にどのように接続されるか(c)を示している。出典:Qureshi他。クリックして拡大

研究者たちは、市販のGPUとNVMe SSDを用いたLinuxベースのBaMシステムのプロトタイプをテストし、ホストプロセッサが全てを制御する現在のアプローチに代わる現実的な選択肢であることを実証しました。ストレージアクセスは並列化され、同期のハードルは排除され、I/O帯域幅はより効率的に利用されるため、アプリケーションのパフォーマンスが向上すると説明されています。

「CPU中心の戦略は、CPUとGPUの同期オーバーヘッドやI/Oトラフィックの増幅を過度に引き起こし、グラフやデータ分析、レコメンデーションシステム、グラフニューラルネットワークなど、細粒度データに依存するアクセスパターンを持つ新興アプリケーションの有効なストレージ帯域幅を減少させます」と研究者らは今月の論文で述べています。

  • Nvidiaがソフトウェアとサービスに将来性を見出す理由:継続的な収益
  • NvidiaとAppleはIntel主導のチップレット相互接続の協力から明らかに欠席している
  • インテル、ハイブリッド統合ディスクリートグラフィックスを搭載したGPUロードマップを発表
  • 2021年は倉庫で:フラッシュ価格革命を待ち望んだが、結局実現しなかった。しかし、創造性はどうだろうか?文句は言えない。

「ソフトウェア キャッシュにより、BaM は仮想メモリ アドレス変換に依存しないため、TLB ミスなどのシリアル化イベントの影響を受けません」と、以前スタンフォード大学のコンピューター サイエンス部門を率いていた Nvidia の主任科学者 Bil​​l Dally 氏を含む著者らは指摘しています。

「BaMは、GPUメモリ内に高度に並列化されたNVMe送信/完了キューのユーザーレベルライブラリを提供します。これにより、オンデマンドアクセスがソフトウェアキャッシュから欠落しているGPUスレッドが、高スループットでストレージアクセスを行うことが可能になります」と研究者らは続けた。「このユーザーレベルのアプローチは、ストレージアクセスごとのソフトウェアオーバーヘッドをほとんど発生させず、高度なスレッドレベルの並列処理をサポートします。」

チームは、ハードウェアとソフトウェアの最適化の詳細をオープンソース化し、他のユーザーが同様のシステムを構築できるようにする予定です。GPUの隣にフラッシュメモリを配置したAMDのRadeon Solid State Graphics (SSG) カードを思い出します。®

Discover More