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 支援

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案