23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
NVIDIA Dynamo는 GTC 2025에서 정식으로 발표된 high-throughput low-latency 오픈 소스 inference 프레임워크 입니다.
Dynamo를 활용하면 NVIDIA Blackwell GPU에서 DeepSeek-R1 모델 실행 시 사용자 처리량을 최대 30배까지 늘릴 수 있다고 합니다.
Dynamo는 Triton Inference Server 프레임워크의 후속이며, TensorRT-LLM, vLLM, SGLang을 포함한 주요 LLM engine을 backend로 지원하고, 다음과 같은 주요 feature들을 가지고 있습니다.
Disaggregated prefill & decode inference
Dynamic GPU scheduling
LLM-aware request routing
KV cache offloading
Accelerated data transfer
Dynamo 아키텍처 및 주요 feature들을 하나씩 살펴 보겠습니다.
Dynamo는 대규모 분산 추론 서비스를 가능케 하기 위해 User들의 request를 처리하기 위해 endpoint 역할을 하는 API Server, User들로부터 받은 request들을 스케줄하고 라우팅하는 Dynamo Planner와 Dynamo Smart Router, 프롬프트 계산에 따라 생성되는 KV cache 관리 기능인 Dynamo KV Cache Manager, Prefill/Decode 노드 분리하여 처리하는 Disaggregated Serving, 두 노드 간 KV cache 전송 위한 NVIDIA Inference Transfer Engine(NIXL) 기능으로 구성되어 있습니다.
기존 LLM 추론 시스템은 Prefill/Decode 단계를 동일한 GPU 혹은 동일 GPU 노드에서 수행하며,
이는 각 단계의 계산 특성(Prefill - Compute bound, Decode - 메모리 용량/대역폭 bound)으로 인해 자원 간섭 및 성능 저하 발생 가능성이 있습니다.
Dynamo는 Prefill과 Decode 단계를 disaggregation(분리)하여 각각 독립적인 GPU 또는 GPU 서버에서 실행함으로써 추론 서비스의 자원 효율화 및 성능 극대화 가능하며, 다음과 같은 효과를 얻을 수 있습니다.
Prefill과 Decode의 연산 특성에 따른 최적 자원(GPU) 할당 가능
각 단계가 독립적으로 실행되므로, 서로의 자원 사용에 영향을 주지 않아 성능 저하 방지
시스템의 TTFT(Time To First Token), TPOT(Time Per Output Token), Throughput(tokens/s) 성능 최적화 및 개선 가능
NVIDIA에서 제시한 성능 실험 결과를 보면 Dynamo의 Disaggregated Serving은 DeepSeek-R1 671B on NVIDIA GB200 NVL72(30배 개선), Llama 70B on NVIDIA HGX-H100(2.5배 개선) 에서 GPU 당 뛰어난 성능 개선 효과가 있음을 볼 수 있습니다.
Dynamo Planner는 분산 추론을 위해 Input sequence length와 Output sequence length에 따라 Prefill 및 Decode 단계의 GPU 리소스 배치를 최적화 합니다.
예를 들어, 긴 input sequence 와 짧은 output sequence가 발생하는 시나리오 경우, Prefill 단계에서 긴 input sequence를 계속 처리해야 되는 관계로 compute 병목이 발생할 수 있습니다.
이때 Dynamo Planner는 GPU 리소스를 Decode 단계 대비 Prefill 단계에 재배치 함으로써 compute 병목을 해소하여 TTFT (Time To First Token) 및 ITL (Inter Token Latency) 와 같은 SLO를 만족시킬 수 있습니다.
Dynamo Smart Router는 사용자 요청이 들어 왔을 때, 이전에 기 계산된 KV cache 들이 저장된 GPU 노드로 효율적으로 routing 함으로써 계산 집약적인 KV cache 재계산을 최소화 할 수 있으며, 이로 인해 기존 Random routing 대비 TTFT(70% 개선) 및 평균 E2E Request Latency(50%)를 개선할 수 있습니다.
관련 KV cache를 찾는 방법은 hash 값으로 저장된 Radix Tree 내부를 search하여 가능하며, KV cache 삽입/제거 위한 특화된 알고리즘 통해 GPU 메모리 상에 가장 관련성 있는 블록을 유지하여 GPU 메모리 효율을 높일 수 있습니다.
Inference prefill/decode 과정에서 input seq. length 및 output seq. length 증가에 따라 KV cache 크기도 선형적으로 증가하여 GPU 메모리 부족 현상이 생깁니다.
Dynamo distributed KV cache manager를 통해 GPU 메모리에 저장된 KV cache 중, 오래 되었거나, 엑세스 빈도가 낮은 KV cache 블록을 CPU 호스트 메모리, Local SSD, 네트워크 기반 오브젝트 스토리지 등으로 오프로딩하여 GPU 메모리 부족 문제를 해결할 수 있고, batch size 증가시켜 성능 개선이 가능하고 원활한 inference 서비스를 할 수 있습니다.
또한 Dynamo distributed KV cache manager는 PyTorch, SGLang, TensorRT-LLM, vLLM 등 다양한 backend engine을 지원하고, NVIDIA NVLink/Quantum 스위치/Spectrum 스위치를 사용하여 대규모 분산 클러스터에서 KV cache 스토리지를 확장할 수 있도록 특정 프레임워크에 구애 받지 않게 설계되었습니다.
NIXL은 GPU 노드 사이 혹은 GPU 사이에 다양한 계층의 메모리(DRAM, HBM)와 스토리지(파일, 오브젝트)에서 데이터를 빠르고 비동기적으로 이동하기 위한 데이터 이동 API(NIXL API)를 제공하는 고처리량, 저지연 통신 라이브러리입니다.
Disaggregated Serving 환경에서 NIXL을 사용하여 prefill 연산 노드에서 생성된 KV cache를 NVLink, Infiniband, Ethernet 등을 통해 decode 연산 노드로 빠르게 전송함으로써 추가 답변 token을 빠르게 생성할 수 있습니다.
NIXL은 UCX(Unified Communication X), GPUDirect Storage, S3와 같은 Backend API를 공통 API로 지원하여 사용 용이성을 제공합니다.
NVIDIA Triton Inference server 프레임워크의 후속인 NVIDIA Dynamo 프레임워크는 Disaggregated Serving, KV cache offloading, Inference Transfer engine 등 주요 feature 지원을 통해 다중 GPU 노드 기반 Inference 시스템 구축을 위해 뛰어난 확장 성능을 제공합니다.
더욱이 NVIDIA가 오픈 소스로 릴리즈를 하여 AI 연구자/개발자들에게 좋은 기회를 준 것 같습니다.
다음 블로그에서는 NVIDIA Dynamo를 클라우드 상에서 소규모로 구축하여 주요 기능들을 사용한 내용들을 포스팅 해보겠습니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.