본문으로 건너뛰기

ONNX Runtime 1.32.0, MoE 모델에서 CPU와 GPU 연산 분산

ONNX Runtime 1.32.0은 MoE 모델의 비활성 전문가 모듈을 CPU로 오프로드해 GPU 메모리 부담을 줄인다. 성능 트레이드오프는 환경별로 직접 측정해야 한다.

읽는 시간 3분 편집 방침

Microsoft가 ONNX Runtime용 CUDA 플러그인을 업데이트해. Mixture of Experts(MoE) 모델 일부를 GPU 메모리가 부족할 때도 실행할 수 있는 기능을 도입했다. 2024년 11월 14일에 릴리스된 CUDA 플러그인 0.4.0은. 사용 빈도가 낮은 전문가(expert) 모듈을 CPU 메모리로 오프로드하고 현재 처리에 필요한 모듈만 GPU에 유지한다. 이 기능을 사용하려면 ONNX Runtime 1.32.0이 필수다.

CPU-GPU 오프로드는 어떻게 작동하는가

Mixture of Experts 모델은 여러 개의 특화된 서브 네트워크, 즉 “전문가(expert)”로 구성된다. 입력에 따라 시스템은 그중 일부만 활성화한다. 새로운 expert offload 기능은 이 구조를 활용한다. 전문가 모듈을 시스템 메모리에 보관해 두고 필요할 때만 GPU로 전송함으로써. 모델 전체를 GPU에 올리는 데 필요한 VRAM 용량을 줄인다.

ONNX Runtime은 두 가지 모드를 제공한다. 자동 모드는 GPU에 여유 공간이 있으면 전문가를 GPU에 유지하고, 메모리가 부족하면 자동으로 하이브리드 실행 방식으로 전환한다. 강제 모드는 설정한 요건대로 모델을 처리할 수 없을 경우 세션 생성 자체를 실패시킨다. 두 모드 모두 모델 파일 수정 없이 세션 옵션만으로 설정 가능하다.

VRAM 절감 효과, 하지만 레이턴시 측정은 필수

사실, 이번 업데이트는 MoE 호환 모델을 실행할 수 있는 하드웨어 구성의 범위를 넓혀 준다. 다만 모든 모델이 임의의 GPU에서 동작한다는 의미는 아니다. 지원 범위는 QMoE, 호환되는 양자화(quantized) 모델 등 특정 노드와 형식에 한정된다.

성능 트레이드오프는 반드시 개별 환경에서 검증해야 한다. 연산 일부를 CPU로 이동하면 GPU 메모리 부담이 줄어들지만, 릴리스 노트는 레이턴시 증가의 구체적인 수치를 제시하지 않는다. 실제 결과는 모델, 양자화 방식, CPU 성능, 시스템 메모리 용량, GPU 사양에 따라 달라진다.

호환 버전 요건 확인

CUDA 플러그인 0.4.0은 ONNX Runtime 1.32.0과 함께 사용해야 한다. MoE 오프로드를 비롯한 일부 기능은 메인 런타임에 새로 도입된 기능에 의존하기 때문이다. Microsoft는 버전을 반드시 맞춰 사용할 것을 권고하며. 연산자 스키마가 불일치하면 잘못된 실행 결과나 비정상 종료가 발생할 수 있다고 경고한다.

이번 릴리스에는 GGUF 및 블록 팩킹 가중치 지원, 양자화 커널, 긴 컨텍스트 최적화, 추측 디코딩(speculative decoding) 개선도 포함됐다. 모델을 개발하거나 배포하는 엔지니어 입장에서 핵심은 GPU 메모리가 병목일 때 CPU와 GPU를 함께 활용할 수 있다는 점이다. 실제 용량과 속도 측면의 이점은 실제 하드웨어와 모델을 대상으로 한 벤치마크로 직접 검증해야 한다.

출처: ONNX Runtime CUDA Plugin EP 0.4.0 · ONNX Runtime 1.32.0

홍보 콘텐츠