RepoNVIDIANVIDIApublished Aug 27, 2025seen 15h

NVIDIA/nvshmem

C++

Open original ↗

Captured source

source ↗
published Aug 27, 2025seen 15hcaptured 15hhttp 200method plain

NVIDIA/nvshmem

Description: 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.

Language: C++

License: Apache-2.0

Stars: 547

Forks: 84

Open issues: 42

Created: 2025-08-27T15:37:11Z

Pushed: 2026-06-11T03:29:56Z

Default branch: devel

Fork: no

Archived: no

README: NVSHMEM Overview ****************

NVSHMEM™ is a parallel programming interface based on OpenSHMEM that provides efficient and scalable communication for NVIDIA GPU clusters. NVSHMEM creates a global address space for data that spans the memory of multiple GPUs and can be accessed with fine-grained GPU-initiated operations, CPU-initiated operations, and operations on CUDA® streams.

Quick Links ****************

Please see the following public links for information on building and working wih NVSHMEM:

Project Homepage

Release Notes

Installation Guide

Best Practice Guide

API Documentation

Devzone Topic Page

The maintainers of the NVSHMEM project can also be contacted by e-mail at nvshmem@nvidia.com

Contributions use a DCO sign-off flow rather than a CLA. See CONTRIBUTING.md.

Configuration file ******************

NVSHMEM options can be provided via a simple config file using KEY=VALUE syntax.

Config files are loaded in the following order (later files override earlier files):

  • /etc/nvshmem.conf
  • ~/.nvshmem.conf
  • The file pointed to by NVSHMEM_CONF_FILE

If a key is present in any loaded config file, its value overrides the corresponding environment variable.

Example:

# Example /etc/nvshmem.conf file
NVSHMEM_DEBUG=WARN
# NVSHMEM_SOME_FLAG=1 # This line is a comment and would be ignored.