vLLM, NIXL EP로 Elastic Expert Parallelism에서 거의 제로 다운타임 스케일링 달성

vLLM은 NIXL EP와 2단계 재구성 흐름을 구현하여 Elastic Expert Parallelism(EP)을 거의 제로 다운타임으로 도입했습니다. 이를 통해 대규모 언어 모델이 서빙 성능을 중단하지 않고 GPU 리소스를 확장할 수 있습니다.

Expert Parallelism에서 기존 스케일링의 과제

전통적으로 vLLM 서비스를 확장하려면 전체 모델 복제본을 추가/제거하거나 다른 GPU 수로 엔진을 재시작해야 했습니다. 이 과정은 상당한 서빙 다운타임을 초래했으며, 이는 프로덕션 추론 워크로드에서 허용되지 않습니다.

예를 들어, DeepSeek V4 Pro를 16개에서 20개 GB200 GPU로 확장하기 위해 vLLM을 재시작하면 197초 동안 서비스 중단이 발생했습니다. 전체 재시작을 피하려는 이전의 시도조차도 상당한 일시 중지를 초래했습니다: 16개에서 20개 GPU로 확장하는 데 100초, 16개 GPU로 다시 축소하는 데 56초가 걸렸습니다.

Elastic EP 재구성 아키텍처

새로운 Elastic EP 시스템은 재구성 흐름을 배경 준비와 짧은 커밋이라는 두 가지 별개의 단계로 재구성합니다. 이 아키텍처는 기존 워커가 필요한 변경 사항이 배경에서 준비되는 동안 계속 요청을 서빙하도록 보장합니다.

배경 준비: 기존 워커는 별도의 배경 스레드를 활용하여 대상 통신을 준비하고 워밍업하며, 모델 가중치를 전송하고, 실행 세부 정보(예: 자동 튜닝 결과)를 참여 워커와 동기화합니다. 동시에 참여 워커는 초기화하고, 모델 가중치를 수신하며, 통신 및 GPU 실행을 준비합니다.

짧은 커밋 단계: 커밋 단계에서 vLLM은 스케줄러를 잠시 일시 중지하고, 준비된 토폴로지를 활성화한 후 서빙을 재개합니다. 이 일시 중지는 아래에 자세히 설명된 기술 혁신으로 최소화됩니다.

NIXL EP: 통신 확장 제자리에서

vLLM의 기존 EP 통신 백엔드는 고정 멤버십을 사용했으며, 이는 랭크를 추가/제거하려면 완전히 새로운 통신 인스턴스를 생성해야 함을 의미했습니다. 이로 인해 두 가지 주요 문제가 발생했습니다: 이전 및 새 인스턴스를 유지하여 통신 메모리 사용량이 증가하고, 이전에 캡처된 CUDA 그래프가 무효화된다는 점입니다.

NIXL EP는 Elastic EP를 위해 특별히 설계되어, 동일한 NIXL 에이전트, 버퍼 및 연결을 재사용하면서 랭크를 제자리에서 추가/제거함으로써 이러한 문제를 해결합니다. 이를 통해 기존 워커가 계속 서빙하는 동안 새 피어가 연결될 수 있습니다.

중요하게도, NIXL EP는 재구성 전반에 걸쳐 캡처된 EP 디스패치 및 결합 항목을 유효하게 유지합니다. 이는 CUDA 그래프의 무효화를 방지하며, 이전에는 비동기 준비에도 불구하고 커밋 단계에서 워밍업과 그래프 구성을 반복해야 했으며, 확장 시 58초, 축소 시 44초의 일시 중지가 발생했습니다.

기존 워커에서 CUDA 그래프 보존

CUDA 그래프는 GPU 작업을 기록하여 vLLM이 CPU에서 작업을 반복적으로 시작하지 않고도 순방향 패스를 재생할 수 있게 합니다. 스케일링 중 이러한 그래프를 보존하려면 커뮤니케이터 객체 이상의 안정성을 유지해야 합니다.

이를 위해 vLLM은 재구성 중에 캡처된 인수, 실행 구성, 입력 및 출력 텐서 주소를 안정적으로 유지하기 위해 여러 변경 사항을 구현했습니다:

  • 유지된 워커는 다른 활성 EP 크기로 재구축하는 대신 융합 MoE 실행 객체를 재사용합니다.
  • 그래프에 표시되는 워크스페이스 및 디스패치 출력의 주소와 레이아웃은 안정적으로 유지되어 캡처된 전문가 커널이 올바른 포인터와 오프셋을 사용하도록 보장합니다.
  • 전문가 라우팅 텐서의 백킹 저장소가 보존되어 Expert Parallel Load Balancing(EPLB)이 캡처된 커널이 사용하는 텐서를 이동하지 않고 매핑 내용을 변경할 수 있습니다.

이러한 변경으로 유지된 워커는 확장 및 축소 후에도 기존 CUDA 그래프를 재사용할 수 있습니다.

참여 워커를 위한 독립적 준비

참여 워커는 일반적으로 준비를 위해 다른 워커가 모델 순방향 패스에 참여해야 합니다. NIXL EP를 사용하면 각 참여 워커가 워밍업 및 그래프 준비 중에 모든 원격 EP 피어를 일시적으로 마스킹할 수 있습니다. 이 격리를 통해 참여 워커는 EP 통신에 로컬 랭크만 활성화하여 더미 배치를 실행하고 CUDA 그래프를 캡처할 수 있습니다.

이 수정을 통해 참여 워커는 기존 워커가 준비 프로세스에 참여할 필요 없이 CUDA 그래프를 캡처할 수 있으며, 이는 기존 워커가 실제 요청을 서빙하는 동안 중요합니다.

DeepSeek V4 Pro 성능 벤치마크

GB200 GPU(TP=1, DP/EP 크기 16 및 20)에서 DeepSeek V4 Pro를 사용한 실험은 NIXL EP가 달성한 서빙 다운타임의 극적인 감소를 보여주었습니다.

지표 A: 차단 B: 비동기 준비 C: 비동기 준비 + 그래프 재사용
16~20 GPU: 다운타임 99.62초 58.04초 0.82초
20~16 GPU: 다운타임 56.25초 44.07초 1.96초
16~20 GPU: 총 시간 99.72초 97.27초 92.34초
20~16 GPU: 총 시간 56.21초 51.46초 9.32초

NIXL EP를 활용하는 구성 C는 거의 제로 다운타임을 달성하여 확장 일시 중지를 58.04초에서 0.82초로, 축소 일시 중지를 44.07초에서 1.96초로 줄였습니다.

또한, 요청 부하가 증가하는 엔드투엔드 서빙 시나리오에서 Elastic EP는 스케일링 과정 내내 롤링 p95 시간-투-퍼스트-토큰이 5초 미만이라는 서비스 수준 목표(SLO)를 유지했습니다. 준비 중에는 Elastic EP가 정적 16-GPU 배포의 서빙 성능과 일치했으며, 스케일링 후에는 복구된 20-GPU 배포의 성능과 일치했습니다.

향후 방향

vLLM 팀은 Elastic EP 기능을 더욱 강화하기 위해 몇 가지 다음 단계를 계획했습니다:

  • Dynamo Snapshot으로 웜 워커 복원: Dynamo Snapshot을 통합하면 참여 워커가 초기화된 프로세스 및 CUDA 상태를 복원할 수 있어 컴파일, 커널 워밍업, 그래프 구성을 반복할 필요가 없어집니다.
  • 최첨단 EP 통신: 팀은 Elastic EP 및 내결함성에 대한 완전한 지원을 유지하면서 NIXL EP로 최첨단 디스패치 및 컴바인 성능을 달성하는 것을 목표로 합니다.
  • 오케스트레이터 통합: 다음 단계는 Elastic EP를 오케스트레이터 자동 스케일러에 연결하여 vLLM을 Dynamo 및 llm-d와 같은 시스템과 통합하는 것입니다.

NIXL EP: 제자리 통신 확장

vLLM의 기존 EP 통신 백엔드는 고정 멤버십을 사용했습니다. 즉, 랭크를 추가/제거하려면 완전히 새로운 통신 인스턴스를 생성해야 했습니다. 이로 인해 두 가지 주요 문제가 발생했습니다: 이전 및 새 인스턴스를 유지하여 통신 메모리 사용량이 증가하고, 이전에 캡처된 CUDA 그래프가 무효화된다는 것입니다.

NIXL EP는 Elastic EP를 위해 특별히 설계되어, 동일한 NIXL 에이전트, 버퍼 및 연결을 재사용하면서 랭크를 제자리에서 추가/제거함으로써 이러한 문제를 해결합니다. 이를 통해 기존 워커가 계속 서빙하는 동안 새 피어가 연결될 수 있습니다.

결정적으로, NIXL EP는 재구성 전반에 걸쳐 캡처된 EP 디스패치 및 결합 항목을 유효하게 유지합니다. 이는 CUDA 그래프의 무효화를 방지하며, 이전에는 비동기 준비 중에도 커밋 단계에서 워밍업과 그래프 구성을 반복해야 했으며, 확장 시 58초, 축소 시 44초의 일시 중지가 발생했습니다.

기존 워커에서 CUDA 그래프 보존

CUDA 그래프는 GPU 연산을 기록하여 vLLM이 CPU에서 연산을 반복적으로 시작하지 않고도 순방향 패스를 재생할 수 있게 합니다. 스케일링 중 이러한 그래프를 보존하려면 커뮤니케이터 객체 이상의 안정성을 유지해야 합니다.

이를 위해 vLLM은 재구성 중에 캡처된 인수, 실행 구성, 입력 및 출력 텐서 주소를 안정적으로 유지하기 위해 여러 변경 사항을 구현했습니다:

  • 유지된 워커는 다른 활성 EP 크기에 맞게 재구축하는 대신 융합 MoE 실행 객체를 재사용합니다.
  • 그래프에 표시되는 워크스페이스 및 디스패치 출력의 주소와 레이아웃은 안정적으로 유지되어 캡처된 전문가 커널이 올바른 포인터와 오프셋을 사용하도록 보장합니다.
  • 전문가 라우팅 텐서의 백킹 저장소가 보존되어 Expert Parallel Load Balancing(EPLB)이 캡처된 커널이 사용하는 텐서를 이동하지 않고 매핑 내용을 변경할 수 있습니다.

이러한 변경으로 유지된 워커는 확장 및 축소 후에도 기존 CUDA 그래프를 재사용할 수 있습니다.

참여 워커를 위한 독립적 준비

참여 워커는 일반적으로 준비를 위해 다른 워커가 모델 순방향 전달에 참여해야 합니다. NIXL EP는 각 참여 워커가 워밍업 및 그래프 준비 중에 모든 원격 EP 피어를 일시적으로 마스킹할 수 있게 합니다. 이 격리를 통해 참여 워커는 EP 통신에 로컬 랭크만 활성화하여 더미 배치를 실행하고 CUDA 그래프를 캡처할 수 있습니다.

이 수정을 통해 참여 워커는 기존 워커가 준비 프로세스에 참여할 필요 없이 CUDA 그래프를 캡처할 수 있으며, 이는 기존 워커가 실제 요청을 서빙하는 동안 중요합니다.

DeepSeek V4 Pro 성능 벤치마크

GB200 GPU(TP=1, DP/EP 크기 16 및 20)에서 DeepSeek V4 Pro를 사용한 실험은 NIXL EP가 서빙 다운타임을 극적으로 줄였음을 보여주었습니다.

지표 A: 차단 B: 비동기 준비 C: 비동기 준비 + 그래프 재사용
16~20 GPU: 다운타임 99.62초 58.04초 0.82초
20~16 GPU: 다운타임 56.25초 44.07초 1.96초
16~20 GPU: 총 시간 99.72초 97.27초 92.34초
20~16 GPU: 총 시간 56.21초 51.46초 9.32초

NIXL EP를 활용하는 구성 C는 거의 제로 다운타임을 달성하여 확장 일시 중지를 58.04초에서 0.82초로, 축소 일시 중지를 44.07초에서 1.96초로 줄였습니다.

또한, 요청 부하가 증가하는 엔드투엔드 서빙 시나리오에서 Elastic EP는 스케일링 과정 내내 롤링 p95 시간-투-퍼스트-토큰이 5초 미만이라는 서비스 수준 목표(SLO)를 유지했습니다. 준비 중에는 Elastic EP가 정적 16-GPU 배포의 서빙 성능과 일치했으며, 스케일링 후에는 복구된 20-GPU 배포의 성능과 일치했습니다.

향후 방향

vLLM 팀은 Elastic EP 기능을 더욱 강화하기 위해 몇 가지 다음 단계를 계획했습니다:

  • Dynamo Snapshot으로 웜 워커 복원: Dynamo Snapshot을 통합하면 참여 워커가 초기화된 프로세스 및 CUDA 상태를 복원할 수 있어 컴파일, 커널 워밍업, 그래프 구성을 반복할 필요가 없어집니다.
  • 최첨단 EP 통신: 팀은 Elastic EP 및 내결함성에 대한 완전한 지원을 유지하면서 NIXL EP로 최첨단 디스패치 및 결합 성능을 달성하는 것을 목표로 합니다.
  • 오케스트레이터 통합: 다음 단계는 Elastic EP를 오케스트레이터 자동 확장기와 연결하여 vLLM을 Dynamo 및 llm-d와 같은 시스템과 통합하는 것입니다.

요약

vLLM은 NIXL EP와 비동기 준비를 도입하여 Elastic Expert Parallelism(EP)에서 거의 제로 다운타임 스케일링을 달성했습니다. 이를 통해 스케일링 일시 중지를 수 분에서 2초 미만으로 줄였습니다.

제목

vLLM, NIXL EP로 Elastic Expert Parallelism에서 거의 제로 다운타임 스케일링 달성

Sources