NVIDIA/nvshmem

NVIDIA NVSHMEM is a parallel programming interface for NVIDIA GPUs based on OpenSHMEM. NVSHMEM can significantly reduce multi-process communication and coordination overheads by allowing programmers to perform one-sided communication from within CUDA kernels and on CUDA streams.

何を解決するか

NVSHMEMは、クラスタ内のNVIDIA GPU間でのスケーラブルな通信を可能にするように設計されています。GPU間の複雑なデータ移動の問題を解決し、クラスタ全体のメモリにGPUが単一の共有グローバルアドレス空間のようにアクセスできるようにします。

動作方法

OpenSHMEM標準に基づき、NVIDIA GPUに分散されたパーティショニングされたグローバルアドレス空間(PGAS)を提供します。ワンサイド転送、アトミック操作、シグナリング、同期を可能にします。CPU(ホスト)、CUDAカーネル(デバイス)、またはCUDAストリームから通信を開始でき、開発者がデータ移動をどのように開始するかについて柔軟性を持たせます。

対象ユーザー

複数のGPUおよびノード間で効率的なGPU主導の通信を必要とする、ハイパフォーマンスコンピューティング(HPC)アプリケーションや大規模なAIトレーニング・推論ワークロードを開発する開発者。

主な特徴

  • ワンサイド通信による転送とアトミック操作
  • ホスト、CUDAカーネル、CUDAストリームインターフェースのサポート
  • Open MPI、Hydra、Slurmなどのプロセスランチャーとの統合
  • NVSHMEM4Pyを介したPythonサポート

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト