Blackwell에서 Qwen 호스팅

NVIDIA GB200 NVL72 랙에서 Qwen3 235B를 서비스하여 모델 정확도를 유지하면서 추론 비용을 절감하는 방법을 소개합니다.

작성자Perplexity Research

72-way NVLink로 상호 연결된 NVIDIA Blackwell GPU를 탑재한 NVIDIA GB200 NVL72 랙은 대규모 MoE(Mixture-of-Experts) 모델 배포에 독보적으로 적합합니다. 이 블로그 게시물에서는 Perplexity 트래픽의 일부를 지원하는 학습 후 Qwen3 235B 모델을 서비스하기 위한 추론 설정을 설명합니다. NVIDIA Blackwell GPU의 고급 텐서 코어와 고속 상호 연결을 활용하기 위해 당사의 사내 추론 엔진을 어떻게 조정했는지 보여드립니다. 이 하드웨어를 통해 기반 모델의 정확도를 저하시키지 않으면서 더 낮은 비용으로 더 많은 트래픽을 처리합니다.

GB200 NVL72에 배포

GB200 NVL72 랙은 2개의 ARM 기반 NVIDIA Grace CPU와 4개의 Blackwell 기반 GPU(각각 180GB HBM 장착)를 포함한 18개 노드로 구성됩니다. 72개의 GPU는 NVLink와 18개의 NVLink Switch ASIC을 통해 상호 연결되어 임의의 두 피어 간에 1800GB/s의 대역폭을 제공하며, 조 단위 파라미터 모델을 호스팅할 수 있는 충분한 메모리를 공유합니다. 또한 ConnectX-7 InfiniBand 어댑터는 랙 내 노드와 인접 랙 전체에서 추가로 400Gb/s의 대역폭을 제공합니다.

트래픽을 처리하기 위해 당사는 Qwen 모델을 학습 후 서비스하기로 결정했습니다. 이 블로그 게시물에서는 Qwen3 235B에 초점을 맞추지만, 논의된 많은 서비스 기법 및 성능 특성은 당사가 마이그레이션 중인 새로운 Qwen3.5 397B 및 122B 모델과 유사합니다. 병렬화 측면에서 선형 어텐션(linear attention)은 전체 셀프 어텐션(full self attention)과 유사하며, 기존 MoE 레이어 구현을 쉽게 조정하여 새로운 게이트 텀(gate terms)을 수용할 수 있습니다. 처리량을 극대화하면서 일관된 디코딩 속도를 유지하기 위해, 프리필(prefill)과 디코드(decode)를 분리하고 두 노드 유형에 대해 서로 다른 병렬화 전략을 배포하기로 했습니다. 프리필러-디코더 간 통신은 InfiniBand를 통해 처리되며, NVLink 대역폭은 프리필러와 디코더 내부 통신을 위해 예약됩니다. 이 블로그 게시물에서 살펴본 행렬 곱셈 및 장치 간 통신 수행 시 Blackwell 장치의 성능 특성이 사용되는 샤딩(sharding) 전략을 결정합니다. NVIDIA Hopper GPU와 비교했을 때, 스트리밍 멀티프로세서(SM) 수 증가, 메모리 대역폭 향상, 피어 투 피어 지연 시간 단축으로 인해 커널별 성능 향상을 확인했습니다.

프리필과 디코드를 분리하고, 프리필러와 디코더 간에는 InfiniBand를, 각 배포 내에서는 NVLink를 사용합니다.

분리형 프리필을 구현하는 당사의 TransferEngine은 프리필러와 디코더 전반에 걸쳐 임의적이며 불일치할 수 있는 샤딩을 처리했습니다. KV 캐시는 HND 순서로 메모리에 레이아웃되며, 헤드는 선행 차원에 있고 토큰은 연속적으로 유지되어 프리필러의 샤딩된 KV 캐시가 디코더 노드로 전송되는 동안 인플라이트(in-flight) 방식으로 추가 분할되거나 연결될 수 있습니다.

프리필러

프리필러 노드는 요청의 입력 토큰을 수신하여 KV 캐시를 채우고, 이를 디코더로 전송하여 텍스트 생성을 계속합니다. 프리필은 시퀀스에 속한 수천 개의 토큰이 동시에 처리되므로 연산 집약적입니다.

결과적으로 텐서 병렬 배포가 적합하며, 모델은 단일 GB200 노드 내의 4개 GPU에 걸쳐 샤딩되고 프로젝션과 전문가는 샤딩된다(TP=4, EP=4)는 것을 발견했습니다. 어텐션과 MLP 모두 연산 제한적이므로, 전문가와 어텐션 헤드를 별도의 랭크에 분산시켜 병렬화의 이점을 얻습니다. 추가적인 병렬화는 각 랭크에 더 적은 전문가(32개 대신 16개)를 호스팅하여 얻는 처리량 향상이 8방향 올리듀스(all-reduce)의 추가 비용과 이더넷을 통한 통신이 필요한 호스트 측 코드 분할의 오버헤드를 상쇄하지 못하므로, 수익 감소를 초래했을 것입니다.

Qwen3 235B는 4개의 키-값 헤드만 가지고 있어, 8개의 장치를 사용할 경우 k 및 v 프로젝션을 랭크 쌍 전반에 걸쳐 복제해야 합니다. 각 랭크에 가중치를 저장하는 데 필요한 메모리 양을 줄여 KV 캐시의 토큰 공간을 확보하기 위해 더 공격적인 샤딩을 고려할 수도 있었습니다. 그러나 더 광범위한 배포는 가치가 없다는 결론을 내렸습니다.

약 6000 토큰의 입력 길이를 가정하면, 128개의 전문가 각각에는 약 6000 * 8 / 128 = 375개의 토큰이 라우팅되어 MoE GEMM에 대한 밀집 문제를 보장합니다. 이는 이미 장치의 연산 처리량을 포화시키므로, 프리필에는 데이터 병렬화가 필요하지 않습니다.

어텐션 비용이 이차적으로 증가함에도 불구하고, 프리필러는 일관된 처리량을 제공하여 노드가 초당 처리할 수 있는 입력 토큰 수에 대한 대략적인 추정을 가능하게 합니다. 요청에서 입력 토큰의 총 수를 추적하는 메트릭에 의존하여, 프리필러 노드 수를 확장하여 전체 프리필 처리량을 그에 맞게 조정할 수 있습니다. 큐잉을 방지하기 위해 프리필러 복제본 수는 수신된 총 입력 토큰 수와 일치시킵니다.

디코더

디코더 노드는 프리필러로부터 KV 캐시를 수신하여 토큰을 하나씩 생성합니다. 디코드는 일반적으로 메모리 제한적입니다. 입력 토큰이 적을 경우 행렬 곱셈은 HBM에서 텐서 코어로 가중치를 로드하는 비용에 의해 전적으로 제한됩니다. 다른 샤딩 전략을 채택하는 것 외에도 연산과 메모리 액세스를 더 잘 병렬화하기 위해 여러 커널을 조정해야 합니다.

프리필과 달리 샤딩 어텐션은 더 이상 이점이 없습니다. 어텐션 헤드를 여러 장치로 분할하는 것은 단일 장치 내에서의 병렬화 기회가 줄어든다는 것을 의미하기 때문입니다. 결과적으로 데이터 병렬화와 전문가 병렬화만 사용됩니다. 전문가들은 여러 장치에 걸쳐 샤딩되지만, 각 장치는 고유한 KV 캐시와 요청을 관리합니다. 텐서 병렬화가 없으면 장치당 토큰별 KV 캐시 크기가 더 커집니다. 그러나 단일 노드에 더 적은 전문가를 배치함으로써 메모리의 스페이스가 확보됩니다. 8-GPU 노드의 단일 NVLink 도메인 내에서 텐서 병렬화를 제한했던 Hopper와 달리, Blackwell에서는 최대 16개의 장치를 사용하여 도메인 내 여러 노드로 확장하는 것이 유익하다는 것을 발견했습니다.

처리량을 최대화하기 위해 디코더는 더 많은 수의 요청을 동시에 처리합니다. 추가 요청은 MoE 레이어 및 기타 프로젝션에서 최소한의 오버헤드를 발생시키지만, 어텐션 비용을 불균형하게 증가시킵니다. 합리적인 최소 디코딩 속도를 유지하기 위해 디코더 노드 수는 디코더당 배치 크기를 특정 임계값 미만으로 유지하도록 확장됩니다.

이전 Hopper 배포와 유사하게, 디코딩 속도를 높이기 위해 사내에서 훈련된 MTP 레이어를 사용하여 추측 디코딩(speculative decoding)을 사용합니다. 다행히 기반 하드웨어와 프로그래밍 프레임워크가 충분히 유사하여 두 아키텍처 간에 구현을 완전히 공유할 수 있습니다.

노드 내 및 노드 간 통신

GB200 NVL72와 이전 Hopper 노드의 주요 차이점은 이전의 8개 장치 제한을 넘어서는 피어 투 피어 통신을 가능하게 하는 대규모 NVLink 도메인입니다. Blackwell 장치가 8-GPU 노드에 배포되었음에도 불구하고, 더 느린 InfiniBand 네트워크와 비교하여 NVLink를 통해 여러 노드로 확장하는 것에는 큰 가치가 있습니다.

프리필러 노드에서는 어텐션 레이어 내의 올리듀스 통신과 올리듀스와 매우 유사한 전문가 병렬 리덕션에 의존합니다. 4개의 GPU에 걸쳐 NVLink와 NVIDIA SHARP(Scalable Hierarchical Aggregation and Reduction Protocol)를 모두 활용합니다. 피어 투 피어 대역폭 외에도 NVLink 스위치에서의 리덕션을 활용하여 지연 시간을 추가로 줄이고 빠른 브로드캐스트를 구현합니다. 디코더 노드에서는 NVLink를 통한 사용자 지정 올투올(all-to-all) 디스패치 및 결합 구현이 사용됩니다. 커널은 CuTeDSL과 cuMem 매핑 또는 멀티캐스트 매핑을 사용하여 사내에서 구현되었습니다.

올리듀스(All-Reduce)

프리필러는 어텐션 레이어의 출력 프로젝션에서 올리듀스 작업을 수행하여 참여 랭크 전반에 걸쳐 샤딩된 헤드의 기여도를 합산합니다. 텐서 병렬화는 올리듀스 오버헤드 비용이 더 작은 행렬 곱셈 문제의 지연 시간 감소로 상쇄될 때만 효과적입니다. 이 가정은 일반적으로 프리필에 적용됩니다.

데이터센터급 NVIDIA HGX H200 및 GB200 NVL72 시스템에서 GPU는 일반적으로 NVLink 스위치를 통해 연결됩니다. 라우팅 외에도 스위치는 SHARP를 통해 연결된 장치 전반에서 리덕션 작업을 수행할 수 있습니다. CUDA API를 사용하여 메모리 매핑을 생성하고 멀티캐스트 그룹에 등록한 후, 커널은 multicast.ld_reduce 및 multicast.st를 사용하여 스위치를 통해 값을 집계하고 브로드캐스트할 수 있습니다. 다른 커널로 융합될 수 있는 기반과 재사용 가능한 구성 요소를 만들기 위해, 내부적으로 이러한 기본 요소를 사용하는 CuTeDSL 올리듀스 커널을 유지 관리합니다.

B 바이트를 줄이는 N개의 GPU가 있는 시스템에서, 단순한 구현은 피어가 다른 모든 피어로부터 값을 로드하여 총 N * (N - 1) * B 바이트의 읽기 트래픽을 발생시킵니다. 더 효율적인 구현은 리덕션할 데이터를 피어 간에 분할하여 각 피어가 입력의 일부를 줄인 다음 나머지 피어에 브로드캐스트하는 방식입니다. 이는 피어로 읽히고 나머지 피어로 브로드캐스트되는 (N - 1) * (B / N) 바이트를 발생시켜 총 (N - 1) * B * 2번의 읽기 및 쓰기를 수행하여 스위치 트래픽을 줄입니다.

GPU 측 누적과 스위치 지원 리덕션을 사용하는 NVSwitch 올리듀스 트래픽.

SHARP를 사용하면 리덕션과 브로드캐스트를 더 효율적으로 수행할 수 있습니다. 로컬 누적을 위해 장치로 (N - 1) * (B / N) 바이트를 읽어들이는 대신, 스위치 자체가 피어의 데이터를 사용하여 리덕션을 수행하므로 스위치에서 B / N 바이트만 이동합니다. 브로드캐스트의 경우도 마찬가지로 GPU와 스위치 간 NVLink 채널을 통한 트랜잭션 수가 크게 줄어듭니다. SHARP가 없으면 누적 장치는 스위치와 NVLink를 통해 (N - 1) * (B / N)번의 트랜잭션을 수행하며, 스위치는 피어로부터 동일한 양의 데이터를 읽어 총 2 * (N - 1) * (B / N)번의 트랜잭션을 수행합니다. SHARP를 사용하면 GPU와 스위치 간에 B / N번의 트랜잭션이 수행되고, 피어와는 추가로 (N - 1) * (B / N)번의 트랜잭션이 수행되어 총 B번의 트랜잭션이 발생합니다.

SHARP는 알고리즘에 대한 간단한 하드웨어 구현을 제공하므로 유용한 도구입니다. 전송이 이론적으로 N / (2 * (N - 1)) 분율(4개 피어 시 33%로 계산)만큼 감소함에도 불구하고, 실제로는 H200 및 GB200 NVL72 시스템 모두에서 프리필 및 디코드 지연 시간이 10% 개선되는 것을 관찰했습니다.

TP=4 및 16K 토큰에서 H200과 GB200의 NVLink 및 NVLS 디스패치 지연 시간.

MoE 디스패치 - 결합

MoE 모델의 경우 디스패치 및 결합 커널은 후속 MoE GEMM 문제를 위해 피어 간 토큰을 이동 및 그룹화하며, 결합 시 가중 누적을 수행합니다. 당사는 기존 디스패치 및 결합 커널을 CuTeDSL로 포팅하고 블록 할당을 조정하며 프리필과 디코드 간에 공격적으로 전문화하여 Blackwell에 맞게 조정했습니다.

전문가 병렬(Expert Parallel)

전문가 병렬(EP) 커널은 프리필러에서 사용됩니다. 입력이 모든 랭크에 복제되므로 디스패치 커널은 현재 랭크의 전문가에게 라우팅될 토큰을 선택하기만 하면 됩니다. 라우팅 정보를 집계하고 MoE GEMM의 입력으로 사용되는 버퍼에 토큰을 준비합니다. 결합 커널은 먼저 현재 랭크의 전문가에게 라우팅된 토큰의 기여도 간 로컬 누적을 수행한 다음, 모든 랭크에 걸쳐 올리듀스를 수행합니다.

디코드의 경우 전체 커널이 하나로 융합됩니다. 라우팅 및 올리듀스는 로컬 결합 단계보다 더 적은 블록을 필요로 하므로 프리필 커널은 여러 커널로 분할됩니다. CuTeDSL을 사용하면 SHARP 및 NVLink 올리듀스와 피어 투 피어 동기화를 위한 일반 라이브러리를 구축하여 올리듀스 및 전문가 병렬 커널 모두에 구성할 수 있습니다.

전문가 병렬 구성 전반에서 H200과 GB200의 전문가 병렬 프리필 디스패치 및 결합 지연 시간.

성능 측면에서 볼 때 향상된 전송 속도, 더 높은 메모리 대역폭, 더 나은 연산 처리량 덕분에 Blackwell이 Hopper보다 훨씬 빠르다는 것을 확인했습니다. GB200(EP=8)에서 8개의 장치와 여러 노드에 걸쳐 샤딩되면, 각 장치에서 로컬 누적이 훨씬 더 적은 토큰으로 실행되고 SHARP를 사용하면 더 많은 랭크에 걸친 리덕션 비용이 더 잘 확장되므로 커널이 더 빨라집니다. 그러나 실제로는 이러한 속도 향상이 모든 커널에서 보편적이지 않기 때문에 병렬화를 4개의 장치로 제한합니다.

데이터 병렬 및 전문가 병렬

데이터 병렬 및 전문가 병렬(DP-EP) 커널은 데이터 병렬 디코더에 사용됩니다. 모든 랭크에서 전문가에게 서로 다른 토큰을 브로드캐스트하여 결과를 원래 랭크로 전송하고 누적합니다. 희소 올투올(sparse all-to-all) 문제를 구현하므로 전적으로 NVLink에 의존합니다.

Hopper에서 이 커널은 단일 노드의 NVLink 도메인 내 8개 장치로 제한됩니다. 그러나 GB200 시스템에서는 전체 랙에 걸쳐 확장할 수 있습니다. 코드의 대부분은 재사용됩니다. 유일한 차이점은 초기 설정을 위해 IMEX를 통해 피어 정보를 교환하는 fabric 핸들을 사용하는 것입니다.

데이터 병렬 및 전문가 병렬 구성 전반에서 GB200의 디스패치 및 결합 지연 시간.

디코드 중에 발생하는 전송 크기가 작기 때문에 NVLink 대역폭을 포화시키기에는 거리가 멀며 지연 시간 제한적입니다. 지연 시간은 수십 마이크로초 단위이며 피어 수가 증가해도 비교적 안정적으로 유지되어, 상당한 추가 지연 시간 없이 더 많은 장치에 걸쳐 배포를 확장할 수 있습니다.

MoE GEMM

MoE 모델은 모든 전문가와 모든 토큰을 곱하는 비용을 여러 장치에 걸쳐 쉽게 병렬화할 수 있으므로 전문가 병렬화의 이점을 누립니다. 프리필러에 텐서 병렬화를 적용하면, 각 랭크가 더 적은 연산을 수행해야 하므로 밀집 문제에 대한 이점이 매우 분명합니다. 디코드의 경우, 더 많은 수의 병렬 요청이 각 전문가에게 더 많은 토큰을 라우팅하여 문제를 밀집시키므로 데이터 병렬화가 전문가 병렬화 이상의 추가 이점을 제공합니다.

당사의 구현에서는 현재 행렬 곱셈을 위해 CUTLASS CUDA/C++ 커널에 의존하고 있습니다. 디코더에 대한 최적의 샤딩 전략을 결정하기 위해 다양한 양자화 방식과 병렬화 수준을 사용하여 희소 디코드 입력에 대해 벤치마킹했습니다. 아래 벤치마크에서는 모든 전문가가 단일 토큰으로 활성화됩니다.

H200과 GB200의 전문가 병렬 구성 및 양자화 방식 전반에서의 그룹 MoE GEMM 지연 시간.

128개의 전문가를 16개 이상의 랭크로 확장하면 2개의 전문가를 곱하는 비용이 4개를 곱하는 비용보다 크게 낮지 않기 때문에 CUTLASS에서 수익이 감소한다는 것을 발견했습니다. 차선책인 블록 스케일링 전략에서도 Blackwell은 Hopper보다 확실한 개선을 보여줍니다. 디스패치/결합의 EP=8과 EP=16 사이의 지연 시간 증가는 GEMM 비용의 10us 이상의 감소에 의해 상쇄되므로, 종단 간 벤치마크에서도 확인된 바와 같이 GB200 시스템에서 디코더를 16개 랭크로 샤딩하는 것은 정당합니다.

양자화

Blackwell은 새로운 8비트 및 4비트 양자화 방식에 대한 하드웨어 지원을 도입합니다. 텐서별 또는 블록별 스케일링 요인에 의존하던 Hopper와 달리, Blackwell은 최상의 프리필 및 디코드 처리량을 달성하기 위해 마이크로스케일링(microscaling)을 필요로 합니다. DeepSeek나 Kimi와 같은 모델에 사용되는 블록 스케일링 방식도 사용할 수 있지만, 마이크로스케일링이 더 효율적입니다.

당사는 모델 미세 조정 후 가중치를 정적으로 변환하여 MXFP8 양자화 방식으로 Qwen3 235B를 배포했습니다. 정확도 영향은 확률적 양자화를 사용한 블록 스케일링의 영향과 유사했지만, MoE GEMM 마이크로벤치마크에서 나타난 바와 같이 성능은 훨씬 향상되었습니다. 또한 MXFP4 및 NVFP4 양자화 방식을 고려했으나, Quantization-Aware Training(양자화 인식 훈련) 없이는 Hopper에서 Blackwell로의 초기 전환에 정확도 영향이 너무 컸습니다. 향후 연구에서 이러한 형식을 더 철저히 탐구할 계획입니다.

종단 간 성능

Blackwell Qwen3 235B 배포의 디코더를 벤치마킹하고 이전 Hopper 배포와 비교했습니다. 이 설정에서 병렬화의 영향을 집중적으로 파악하기 위해 두 배포 모두에서 블록 스케일링을 고려했습니다. 디코드 성능을 분리하기 위해 두 아키텍처에 대해 TP=4 프리필러를 분리했습니다. 아래 그림은 당사의 MTP 레이어가 제공하는 현실적인 드래프트 수용률을 가정했을 때의 디코딩 처리량을 나타냅니다.

H200 및 GB200 전문가 병렬 구성 전반에서, 드래프트 수락 길이 0.8을 가정한 Qwen3 235B FP8 디코딩 속도와 GPU당 처리량.

Hopper에서는 특히 EFA 어댑터의 InfiniBand 지연 시간이 상당히 느리기 때문에 8개 이상의 GPU에 걸쳐 배포를 샤딩하는 것은 실행 불가능합니다. 그러나 Blackwell에서는 더 큰 NVLink 도메인 덕분에 훨씬 더 높은 처리량을 달성합니다.

기존 Hopper 커널을 일반화하고 NVLink 기반 커널의 성능을 높여 초기 Blackwell 구현을 달성했습니다. 양자화 개선과 파이프라인의 다른 커널에 대한 디코드 성능 및 프리필 처리량 미세 조정을 통해 Qwen 서비스 비용을 추가로 절감할 예정입니다.

참고 문헌

Transfer Engine 블로그 게시물

CuTeDSL 블로그 게시물

Prefill-Disagg 블로그 게시물

추측 디코딩(Speculative Decoding) 블로그 게시물

CUTLASS

NVLink

인용

BibTeX
@online{perplexity2026HostingQwenOnBlackwell,
  author = {{Perplexity} and Nandor Licker and Kevin Hu and Bex Brooker and Erin McKnight},
  title = {{Hosting Qwen on Blackwell}},
  date = {2026-05-12},
  url = {https://www.perplexity.ai/hub/blog/hosting-qwen-on-blackwell}
}