Project-HAMi/HAMi-core
A transparent, in-container GPU resource controller that enforces memory and compute limits by intercepting CUDA calls without application or driver changes.
해결하는 문제
HAMi-core는 CUDA 애플리케이션에 대해 장치 메모리 및 컴퓨팅 활용도(SM 활용도)에 대한 엄격한 제한을 설정할 수 있는 컨테이너 내 GPU 리소스 컨트롤러입니다. GPU 리소스의 분할 및 비효율적인 할당 문제를 해결하며, 컨테이너 내에서 GPU 리소스를 가상화함으로써 단일 애플리케이션이 사용 가능한 GPU 메모리나 컴퓨팅 파워를 모두 소비하는 것을 방지합니다.
작동 방식
이 라이브러리는 CUDA Runtime(libcudart.so)과 CUDA Driver(libcuda.so) 사이의 API 호출을 가로채는 방식으로 작동합니다. 이러한 호출 사이에 위치함으로써, 애플리케이션 코드나 NVIDIA 드라이버의 변경 없이 메모리 및 컴퓨팅 제한을 모니터링하고 강제할 수 있습니다.
대상 사용자
이 도구는 GPU 가속 컨테이너를 관리하는 개발자 및 플랫폼 엔지니어를 위한 것입니다. 특히 Volcano나 HAMi 프로젝트와 같은 오케스트레이터를 사용하여 공유 GPU 리소스를 관리하는 경우에 적합합니다.
주요 특징
- 애플리케이션 변경 없음: CUDA 애플리케이션의 소스 코드를 수정하지 않고도 제한을 강제합니다.
- 메모리 가상화: 각 컨테이너에 대해 특정 상한선을 설정할 수 있는 장치 메모리 가상화를 제공합니다.
- 컴퓨팅 제한: 자체 구현한 타임 샤딩 메커니즘을 통해 장치 활용도를 제한합니다.
- 실시간 모니터링: 장치 활용도를 모니터링하는 내장 모니터를 포함합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트