GN⁺: LibreCuda - 독점 런타임없이 Nvidia GPU에서 CUDA 코드를 실행
(github.com/mikex86)- CUDA 드라이버 API를 대체하여 독점적인 CUDA 런타임에 의존하지 않고도 Nvidia GPU에서 CUDA 코드를 실행할 수 있도록 하는 것을 목표로 하는 프로젝트
- ioctls(특히 Nvidia의 오픈 GPU 커널 모듈에서 rmapi라고 부르는 것)와 Nvidia의 MMIO 명령 대기열 구조인 QMD를 통해 하드웨어와 직접 통신함
- CUDA ELF 바이너리를 GPU에 업로드하고 명령 대기열을 통해 실행할 수 있음
- 현재 기능
- GPU 메모리 할당 및 해제 및 CPU가 액세스할 수 있도록 메모리 매핑
- CUDA ELF 바이너리를 GPU에 업로드할 수 있음
- 명령 큐를 통해 CUDA 커널 실행
- MIT 라이선스
GN⁺의 정리
- LibreCUDA는 독점적인 CUDA 런타임 없이 Nvidia GPU에서 CUDA 코드를 실행할 수 있게 해주는 프로젝트임
- 현재는 기본적인 기능만 구현되어 있으며, 실사용 준비가 되지 않음
- 비슷한 기능을 가진 프로젝트로는 ROCm이 있으며, AMD GPU에서 CUDA와 유사한 기능을 제공함
Hacker News 의견
-
오픈 CUDA의 목적은 NVIDIA GPU가 아닌 다른 GPU에서도 실행할 수 있게 하는 것임
- NVIDIA GPU를 구매해야 한다면 의미가 없음
- 진정한 경쟁이 있다면 더 많은 VRAM을 가진 장치를 쉽게 구매할 수 있을 것임
- 언젠가 로컬에서 Llama 405b를 실행할 수 있을 것임
-
CUDA에 대한 경험이 제한적이지만, 이것이 다양한 ML 라이브러리(예: TensorFlow, ONNX) 실행 시 발생하는 CUDA/CUDNN 종속성 버전 문제를 해결하는 데 도움이 될지 궁금함
-
매우 좋음
- 이것이 내가 CUDA 런타임에서 원하는 전부임
- LLVM libc 유닛 테스트를 실행할 수 있을 것임
- 이는 동일한 직접 시스템 호출 접근 방식을 사용하는 AMD 라이브러리를 정당화할 수 있음
-
CUDA에 의존하는 프로젝트가 플랫폼 자유를 얻기 위해 LibreCUDA에서 HiP로 이동하는 것이 첫 번째 단계가 되어야 함
-
CUDA ELF 파일이 무엇인지 궁금함
- 바이너리 SASS 코드인지, 오픈 소스 PTXAS 대안이 필요한지 궁금함
-
CUDA 초보자에게 이것이 어떤 문제를 해결하는지 궁금함
-
CUDA Libre라고 부를 기회를 놓친 것 같음
-
여전히 독점적인 NVIDIA 그래픽 드라이버를 실행해야 하는지, 아니면 완전히 무관한지 궁금함
-
저자들이 상표 침해 통지에 대해 생각하기 시작해야 함
-
ZLUDA가 AMD의 요청으로 중단된 이후, CUDA 종속성을 깨는 일반적인 방법으로 ZLUDA 대체품이 필요함
- NVIDIA 하드웨어에 묶이지 않은 것이 필요함