TL;DR

  • rGPU는 애플리케이션을 클라이언트에 둔 채 원격 NVIDIA GPU에서 작업을 실행하며, PyTorch 장치와 CUDA shim 두 경로를 제공함.
  • PyTorch 장치는 rgpu 장치를 선택할 수 있는 PyTorch 프로그램에 적합하고, TCP를 통해 torch 연산을 전송함.
  • CUDA shim은 기존 Linux CUDA 프로그램과 기본 CUDA PyTorch를 대상으로 하며, 호환 범위가 더 넓은 대신 지원해야 할 인터페이스도 더 많음.
  • 연결을 인증하거나 암호화하는 프로토콜은 없으므로, PyTorch 서버는 기본 로컬호스트 바인드를 유지하고 SSH를 사용하며 CUDA 서버의 9713 포트는 방화벽으로 제한해야 함.
  • 저장소에는 클라이언트·서버·공통 프로토콜·Python 장치·문서·테스트와 실험용 JAX 작업이 포함되며, JAX는 지원 제품 경로가 아님.

rGPU

  • rGPU는 애플리케이션은 클라이언트에서 실행하고 GPU 작업은 원격 NVIDIA 머신에서 실행함.
  • 제공 경로는 다음 두 가지임.
  • PyTorch 장치: rgpu 장치를 선택할 수 있는 PyTorch 프로그램용이며, TCP를 통해 torch 연산을 전송함.
  • CUDA shim: 기본 CUDA PyTorch를 포함한 기존 Linux CUDA 프로그램용이며, libcuda, CUDA Runtime, cuBLAS, cuBLASLt, cuDNN shim을 제공함.
  • PyTorch 장치는 통합이 더 간단하고, CUDA shim은 기존 바이너리를 다루지만 호환성 범위가 더 넓음.

문서

  • website/의 Fumadocs 사이트는 제품 문서이며, 빠른 시작, 학습, nanoGPT 예제, CUDA shim, 운영, 설정 참조, 성능, 문제 해결을 포함함.
  • 엔지니어링 기록과 실험은 docs/README.md에 색인됨.

빠른 시작: PyTorch 장치

  • pip install rgpu 또는 저장소 체크아웃에서 pip install -e ./python으로 rGPU를 설치한 다음, 빠른 시작 문서에 따라 서버를 배포함.
  • 작업 디렉터리에 smoke.py를 저장하고, torch.ones(4, device="rgpu")로 rGPU 장치의 텐서를 만든 뒤 텐서에 2를 곱하고 합산해 값을 출력함.
  • rGPU가 설치된 환경에서 rgpu-run --host user@gpu-host --ssh-port 2222 -i ~/.ssh/gpu_key python smoke.py를 실행하며, SSH 목적지와 옵션은 서버 환경에 맞게 지정함.
  • 프로그램이 장치를 선택하고 rgpu-run이 터널을 열어 연결을 설정하며, 예상 출력은 8.0임.
  • 기존 Linux CUDA 프로그램은 CUDA shim 안내를 따르며, 시작 단계는 ./scripts/build_client.sh임.
  • 두 프로토콜 모두 연결을 인증하거나 암호화하지 않으므로 rgpu-opserver는 기본 로컬호스트 바인드 상태로 유지하고 SSH를 사용함.
  • CUDA 서버는 모든 IPv4 인터페이스에서 수신하므로 SSH 터널을 사용하더라도 서버를 시작하기 전에 호스트 또는 클라우드 방화벽 규칙으로 9713 포트를 제한해야 하며, 자세한 내용은 배포 문서에 있음.

개발

  • C++ 클라이언트와 가짜 드라이버 테스트는 ./scripts/build_client.sh로 실행함.
  • Python 테스트는 python -m pip install -e './python[test]'로 테스트 의존성을 설치한 뒤 python -m pytest python/tests로 실행함.
  • 정적 문서는 npm --prefix website ci로 의존성을 설치하고 npm --prefix website run build로 빌드함.
  • 나머지 빌드, 클라우드, 하드웨어 명령은 scripts/README.md에 있으며, 생성된 C++ 코드는 저장소에 커밋되고 정책과 재생성 절차는 codegen/README.md에 있음.

저장소 구성

  • client/: CUDA 클라이언트 shim과 전송 계층.
  • server/: CUDA 서버와 디스패치.
  • common/: 공유 프로토콜과 생성된 API 메타데이터.
  • python/: PyTorch 장치와 실행 도구.
  • tests/: C++, Python, CUDA, 하드웨어 검사.
  • codegen/: CUDA 헤더 파서와 소스 생성기.
  • website/: Fumadocs 제품 문서.
  • docs/: 설계 기록, 측정값, 실험 보고서.
  • jax/: 실험적 JAX 작업이며 지원 제품 경로가 아님.
  • scripts/: 빌드, 배포, 클라우드, 테스트 도구.
  • skills/: rGPU 사용을 위한 설치형 에이전트 지침.
  • 과거 구현 기록과 실험 결과는 docs/README.md에 색인됨.

라이선스

  • Apache License 2.0에 따라 라이선스가 부여됨.