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サポート
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト