GPU 정책을 프로그래밍 가능한 OS 서브시스템으로: eBPF 기반 gpu ext
초록
gpu_ext는 GPU 드라이버와 디바이스에 안전한 eBPF 훅을 삽입해, 호스트와 디바이스 양쪽에서 정책 로직을 실행하도록 만든 프레임워크이다. SIMT‑aware 검증기와 워프‑레벨 실행 모델을 도입해 GPU 특유의 병렬성을 보존하면서 메모리 배치, 스케줄링, 관측 정책을 동적으로 적용한다. 평가 결과, 다양한 AI·그래프·검색 워크로드에서 최대 4.8배 향상된 처리량과 2배 감소한 꼬리 지연을 달성했으며, 애플리케이션 재시작 없이 정책 교체가 가능하다.
상세 분석
gpu_ext는 기존 GPU 자원 관리 방식의 두 가지 근본적인 한계를 동시에 해결한다. 첫 번째는 사용자‑레벨 런타임이 제공하는 프로그래머블함이 하드웨어 수준의 가시성과 제어권을 갖지 못한다는 점이다. 두 번째는 커널‑레벨 드라이버 수정이 높은 안정성 위험과 배포 복잡성을 초래한다는 점이다. 이를 극복하기 위해 저자들은 GPU 드라이버를 “OS 서브시스템”으로 재구성하고, eBPF라는 검증된 동적 프로그래밍 메커니즘을 GPU 디바이스에 그대로 이식한다.
핵심 설계는 세 단계로 나뉜다. ① 안전한 정책 인터페이스: 드라이버 내부의 페이지 테이블, 명령 버퍼, 인터럽트 핸들러 등 핵심 메커니즘을 추상화한 제한된 훅 집합을 정의한다. 이 훅은 eBPF 프로그램이 호출할 수 있는 API 형태로 노출되며, 커널 검증 단계에서 메모리 접근·루프 반복 횟수 등을 정적 분석한다. ② SIMT‑aware eBPF 검증 및 실행: 기존 CPU‑전용 eBPF는 스칼라 흐름을 전제로 하지만, GPU는 워프 단위의 동기화된 실행이 필수다. gpu_ext는 워프‑레벨 제어 흐름을 강제하고, 발산(다이버전스) 가능성을 사전에 차단한다. 또한, 워프 내 모든 스레드가 동일한 명령을 수행하도록 보장함으로써 직렬화 오버헤드와 데드락을 방지한다. ③ 호스트‑디바이스 공유 상태 관리: 정책이 요구하는 전역 상태(예: 페이지 캐시 히트 비율, 워프 스케줄링 큐)는 eBPF 맵을 이용해 CPU와 GPU 사이에 일관된 형태로 공유한다. 여기서는 완전한 메모리 일관성을 강제하기보다 “완화된 일관성”을 채택해, 높은 대역폭을 유지하면서도 최신 정보를 충분히 반영한다.
구현 측면에서 저자들은 NVIDIA 공개 GPU 커널 모듈을 확장했고, 디바이스‑사이드 eBPF 바이트코드 인터프리터를 GPU 전용 메모리에서 실행하도록 설계했다. 정책 프로그램은 호스트에서 컴파일·검증된 뒤, 커널 모듈을 통해 디바이스에 로드된다. 런타임 오버헤드는 주로 훅 호출과 맵 동기화에 국한되며, 실험 결과 1~2 % 수준에 머문다.
평가에서는 LLM 추론 파이프라인, 그래프 신경망(GNN) 학습, 벡터 검색 등 네 가지 대표 워크로드를 선정했다. 메모리 프리패치·에비션 정책을 적용하면 페이지 폴트율이 70 % 이상 감소했고, 워프‑레벨 선점 스케줄러는 고우선 순위 요청의 99‑percentile 지연을 절반 이하로 줄였다. 특히 멀티‑테넌트 시나리오에서 동적 워크스틸링 스케줄러는 전체 시스템 처리량을 4.8배까지 끌어올렸다. 정책 적용 시 애플리케이션 바이너리를 수정하거나 재시작할 필요가 없다는 점도 큰 장점으로 부각된다.
전반적으로 gpu_ext는 “GPU를 위한 OS 정책 인터페이스”라는 새로운 패러다임을 제시한다. eBPF의 정적 검증·동적 로드 메커니즘을 GPU에 맞게 재구성함으로써, 기존의 사용자‑레벨 프레임워크가 제공하지 못했던 저레벨 가시성과 제어권을 안전하게 제공한다. 이는 앞으로 GPU 자원 관리가 점점 더 복잡해지는 데이터센터 환경에서, 정책을 빠르게 실험·배포하고, 다양한 워크로드에 맞춤형 최적화를 적용할 수 있는 기반이 될 것으로 기대된다.
댓글 및 학술 토론
Loading comments...
의견 남기기