오픈소스 대형 언어모델의 성능이 최근 몇 달 사이 빠르게 올라오면서, 그동안 폐쇄형 모델에 묶여 있던 기업들에게 실질적인 대안이 등장하고 있다. DeepSeek V4-Pro와 GLM5.2가 상용 최상위급에 근접한 지능을 보여준 데 이어, 이번에 공개된 Kimi K3는 오픈소스 진영이 또 한 단계 도약했음을 보여주는 사례로 거론된다. 다만 모델이 똑똑해질수록 몸집도 함께 불어난다는 점이 문제다. GLM5.2가 7,530억 파라미터, DeepSeek V4-Pro가 1.6조 파라미터인 데 비해 Kimi K3는 2.8조 파라미터에 달한다.
한 노드에 담기지 않는 모델
이 규모는 실무 배포 관점에서 곧바로 하드웨어 제약으로 이어진다. Kimi K3는 KV 캐시를 할당하기도 전에 1.5TB가 넘는 VRAM을 요구하며, 100만 토큰 컨텍스트를 위한 캐시까지 고려하면 부담은 더 커진다. GPU 8장으로 구성된 엔비디아 B200 노드 한 대로는 이 모델의 가중치조차 다 담을 수 없다. 남는 선택지는 GPU당 288GB VRAM을 갖춘 B300 노드로 서빙하거나, B200 노드 두 대를 묶어(TP16) 서빙하는 방식이다.
여기서 주목받는 것이 AMD의 MI355X다. 이 칩 역시 GPU당 288GB VRAM을 제공해 용량 측면에서 B300과 겨룰 수 있고, 가격은 GPU 기준 평균적으로 B300 대비 약 2.4배, B200 대비 약 1.7배 저렴하다. 문제는 늘 소프트웨어였다. 커널이 상대적으로 느리고 추론 프레임워크의 출시 당일 지원이 부족해, AMD 위에서 최신 모델을 돌리는 일은 그 자체로 엔지니어링 과제가 된다. 다만 Kimi K3의 경우 AMD가 출시 당일 지원을 제공하면서 초기 작업의 상당 부분이 이미 해소된 상태였다.
벤치마크가 말하는 것
측정 결과는 이 가격 격차가 실제 성능 대비 비용에서 얼마나 큰 의미를 갖는지 보여준다. 입력 1,024토큰·출력 400토큰 기준 벤치마크에서 MI355X는 노드당 952 tok/s, 단일 스트림 118 tok/s를 기록했다. 이는 TP16으로 구성한 B200 배포(16장 2노드 합산 498 tok/s, 노드 환산 약 249 tok/s) 대비 노드당 집계 처리량은 3.8배 이상, 단일 스트림 디코드는 1.3배 이상 높은 수치다. 물론 절대 집계 처리량만 보면 B300 노드가 MI355X보다 약 1.65배 앞서지만, 가격이 2.4배인 점을 감안하면 달러당 성능에서는 MI355X가 확실히 우위에 선다. 시간당 GPU 단가는 MI355X가 2.50달러, B300이 6.00달러, B200이 4.25달러로 계산됐다.
B200이 불리하게 보이는 데에는 구조적 이유가 있다. 세 구성 중 유일하게 두 노드에 걸쳐 있어 디코드 임계 경로에서 노드 간 all-reduce 비용(약 195Gb/s RoCE v2)을 치러야 하기 때문이다. 이는 Kimi K3가 8×192GB 단일 노드에 가중치와 100만 토큰 KV 풀을 동시에 담지 못해 생긴 결과이기도 하다. 뒤집어 말하면, HBM 용량에 집중한 MI355X의 설계가 실측 가능한 이점으로 드러나는 첫 사례가 바로 이 규모의 모델이라는 뜻이다.
두 개의 커널 문제, 두 개의 간단한 수정
Kimi K3가 기본 상태로 구동됐다고 해도 이 처리량에 도달하기까지는 손볼 곳이 있었다. 가장 큰 지렛대는 스펙큘레이티브 디코드였다. K3는 MTP나 EAGLE 같은 드래프트 텐서를 전혀 담고 있지 않아, 유일한 경로는 RadixArk의 외부 블록 확산 드래프트 Kimi-K3-DSpark뿐이다. 이 방식은 CUDA에서는 그냥 돌지만, ROCm에서는 첫 실제 요청에서 스케줄러가 무너졌다. sglang의 검증기가 조밀 경로에서 호출하는 top_k_renorm_prob 커널이 ROCm 빌드에는 정의돼 있지 않아 NameError를 일으킨 것이다. 해결책은 커스텀 커널이 아니라 PyTorch 함수 하나였다. 확률 벡터에서 상위 k개만 남기고 나머지를 0으로 만든 뒤 합이 1이 되도록 재정규화하는 정렬·마스킹·나눗셈 연산을, CUDA 빌드가 커널에서 얻던 것과 동일하게 ROCm 샘플링 분기에 넣어주면 됐다. 이 수정으로 단일 스트림 성능이 약 2.2배, 중간 부하에서 스트림당 약 1.7배, 최대 집계 처리량이 18% 향상됐고, 정점이 훨씬 높은 동시성(c64 대 c24)에서 형성됐다.
디코드가 아니라 첫 토큰까지의 시간
성능 논의는 디코드 tok/s에 쏠리기 쉽지만, 사용자가 실제로 체감하는 지표는 첫 토큰까지 걸리는 시간(TTFT)이다. 여기서 MI355X는 약점을 드러냈다. 172k 토큰짜리 콜드 프리필이 B300에서 약 23초인 데 비해 MI355X에서는 약 51초가 걸렸다. 100만 토큰 컨텍스트 모델에서는 거대한 프리필이 흔하고, GPU가 프리필에 수 분씩 매달리면 노드 전체가 무력화될 수 있다. 원인은 거의 전적으로 커널 하나였다. 빠른 AITER MLA 프리필 커널이 로드되지 않아 느린 범용 Triton 어텐션으로 되돌아간 것인데, 이 또한 커널 부재가 아니라 형상 불일치 문제였다. TP8에서 K3는 랭크당 12개의 어텐션 헤드를 주는데 AITER의 MLA 경로는 4, 8 또는 16의 배수를 전제로 만들어져 있었다. 헤드 수를 12에서 16으로 0-패딩한 뒤 빠른 커널을 돌리고 결과에서 실제 12개만 추출하는 방식으로 해결했고, 같은 콜드 프리필에서 프리필 속도가 약 2~3배 빨라졌다. 이는 집계 처리량이 아니라 사용자가 첫 토큰을 기다리는 시간을 줄이는 지렛대다. 전반적으로 이번 작업은 GLM5.2 때보다 프레임워크 관련 버그가 적었고 커스텀 커널도 필요하지 않았다는 점에서, AMD 위 최신 모델 서빙의 진입 장벽이 실제로 낮아지고 있음을 시사한다.