오늘날의 고성능 컴퓨팅(HPC) 및 딥 러닝 애플리케이션은 클러스터 규모의 GPU 컴퓨팅 성능의 이점을 누리고 심지어 이를 필요로 합니다. 클러스터 전반에 걸쳐 GPU를 정확하고 효율적으로 활용할 수 있는 CUDA® 애플리케이션을 만들려면 고유한 기술이 필요합니다. 이 워크숍에서는 NVIDIA GPU 클러스터로 효율적으로 확장할 수 있는 CUDA C++ 애플리케이션을 만드는 데 필요한 도구와 기술을 습득하게 됩니다.
여러 NVIDIA GPU에서 지원되는 인터랙티브 클라우드 환경에서 여러 CUDA C++ 애플리케이션의 코드를 작업하여 만들게 됩니다. 이 과정의 주요 목표인 NVSHMEM™으로 진행하기 전에 CUDA 인식 메시지 전달 인터페이스(MPI)를 비롯한 몇 가지 멀티 GPU 프로그래밍 방법을 익힐 수 있습니다.
NVSHMEM은 NVIDIA GPU 클러스터에 효율적이고 확장 가능한 통신을 제공하는 OpenSHMEM 기반 병렬 프로그래밍 인터페이스입니다. NVSHMEM은 여러 GPU의 메모리에 걸쳐 있으며 세분화된 GPU 시작 작업, CPU 시작 작업 및 CUDA 스트림에 대한 작업을 통해 액세스할 수 있는 데이터를 위한 전역 주소 공간을 만듭니다. NVSHMEM의 비동기, GPU 시작 데이터 전송은 CPU와 GPU 간의 동기화 오버헤드를 제거합니다. 또한 통신과 연산을 모두 포함하는 장기 실행 커널을 활성화하여 강력한 확장 시 애플리케이션의 성능을 제한할 수 있는 오버헤드를 줄입니다. NVSHMEM은 OLCF(오크리지 리더십 컴퓨팅 시설)에 위치한 Summit 슈퍼컴퓨터, Lawrence Livermore National Laboratory의 Sierra 슈퍼컴퓨터, NVIDIA DGX™ A100과 같은 시스템에서 사용되어 왔습니다.
학습 목표
이 워크숍 참여 시 학습 내용:
- 멀티 GPU CUDA C++ 애플리케이션을 만드는 몇 가지 방법 학습
- 다양한 멀티 GPU 통신 패턴 사용 및 장단점 이해
- CUDA 인식 MPI 및 NVSHMEM을 사용하여 SPMD(단일 프로그램 멀티 데이터) 패러다임으로 이식 가능하고 확장 가능한 CUDA 코드 작성
- NVSHMEM의 대칭 메모리 모델과 GPU 시작 데이터 전송을 수행하는 기능으로 멀티 GPU SPMD 코드 개선
- 도메인 분해 및 헤일로 교환과 같은 일반적인 멀티 GPU 코딩 패러다임으로 실습
워크숍 데이터시트 다운로드하기(PDF 79.5KB)