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 지원
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트