vLLM, GPU 종류 안 가리는 '하드웨어 애그노스틱' 레이어 도입

3분 vLLMPyTorchGPULLM 추론
최근 30일 조회수 — 좋아요 —

핵심 요약

vLLM이 프런티어 모델의 하드웨어별 최적화 흐름 속에서도 다양한 가속기 지원을 유지하기 위한 새 레이어를 공개했다.

vLLM이 엔비디아 GPU 이외의 하드웨어에서도 최신 모델을 계속 돌릴 수 있도록 ‘하드웨어 애그노스틱(hardware-agnostic)’ 레이어를 새로 도입한다. PyTorch 블로그에 따르면 이는 vLLM이 최근 프런티어 모델을 지원하기 위해 torch.compile 기반 추상화를 버리고 하드웨어별로 손으로 최적화한 “플랫(flat)” 모델 구조로 옮겨가면서 생긴 부작용을 보완하기 위한 조치다.1

지금까지 vLLM은 다양한 모델을 다양한 하드웨어에서 돌리는 추상화 계층으로 성공을 거뒀다. model_executor/layers에 있는 공용 레이어와 torch.compile의 최적화·퓨전 기능을 조합해, 모델 정의 코드를 단순하게 유지하면서도 엔비디아 GPU, AMD GPU, 인텔 XPU, 구글 TPU, IBM 스파이어(Spyre), 화웨이 어센드(Ascend) 등 여러 플랫폼에서 고른 성능을 냈다.

문제는 최근 프런티어 오픈웨이트 모델들의 구조가 빠르게 갈라지고 있다는 점이다. 딥시크 V4와 Kimi K3는 백만 토큰 컨텍스트를 지원하지만 그 방식이 서로 완전히 다른 어텐션 메커니즘을 쓴다. 이런 모델을 기존 공용 레이어로 끼워 맞추려면 새 커널마다 torch 라이브러리 연산으로 등록하고 가짜(fake) 구현과 뮤테이션 어노테이션까지 붙여 풀그래프(fullgraph) 컴파일이 가능하게 만들어야 하는데, 이 작업량이 모델을 추가하는 개발자, 특히 자체 모델을 직접 들고 오는 고급 사용자에게 고스란히 부담으로 돌아간다. 여기에 엔비디아 블랙웰(Blackwell) GPU와 GB300 NVL72 같은 랙 스케일 시스템은 연산과 통신을 효과적으로 겹치기 위해 정교한 커널 엔지니어링을 요구한다.

PyTorch 블로그는 클로드 코드(Claude Code), 오픈AI 코덱스(Codex) 같은 코딩 에이전트의 등장도 이런 흐름을 부추긴 요인으로 지목한다. 이들 에이전트는 특정 모델과 특정 하드웨어에 맞춘 최적화를 설계하는 데 뛰어나지만, 그 변경이 다른 모델이나 다른 가속기에 어떤 영향을 미치는지까지 신경 쓸 필요가 없을 때 가장 잘 작동한다는 것이다.

이런 이유로 vLLM 커뮤니티는 기존 추상화 일부를 해체하고, vllm/models/ 아래에 하드웨어별 모델 정의인 “플랫” 모델을 유지하기 시작했다. 플랫 모델은 torch.compile 대신 모델과 하드웨어에 특화된 커스텀 퓨전과 최적화를 직접 쓴다. 최근 몇 달간 vLLM에 추가된 프런티어 모델은 모두 이 플랫 모델 방식을 쓰고 있고, 앞으로는 기존 레이어와 연산 자체가 torch.compile과 근본적으로 호환되지 않는 방향으로 리팩터링될 가능성이 크다고 블로그는 밝혔다.

이 변화는 최신 GPU 벤치마크에서 경쟁력을 유지하는 데는 필요하지만, 오래된 GPU나 트리 밖(out-of-tree) 가속기처럼 다양한 하드웨어를 쓰는 사용자에게는 불리할 수 있다. 이를 보완하기 위해 도입하는 것이 하드웨어 애그노스틱 레이어다. 엔비디아 H100 GPU에서 측정한 결과, 이 레이어를 쓴 총 토큰 처리량은 최근 모델 세 종에 대한 기하평균 기준으로 네이티브 구현 대비 3.4% 이내 차이에 그쳤다고 블로그는 밝혔다.

블로그는 현재 vLLM이 vllm/models/ 아래의 신규 플랫 모델, vllm/model_executor/models의 레거시 모델, 트랜스포머(Transformers) 모델링 백엔드를 임포트하는 방식까지 세 가지 모델 정의 방식을 함께 운영하고 있다고 설명하는데, 이 구조를 구체적으로 어떻게 정리할지에 대한 후속 내용은 제공된 자료에 포함되어 있지 않다.

Footnotes

  1. PyTorch Blog, “Hardware-Agnostic Models in vLLM” ↩

읽기 목록은 이 브라우저에 저장됩니다.

출처

  1. Hardware-Agnostic Models in vLLM — PyTorch Blog

이 글은 위 출처를 근거로 자동 생성된 뒤 발행됐습니다. 원문을 함께 확인해 주세요. 교차 보도 없이 단독 출처로 작성됐습니다.