Kimi K3, which used to require 16 B200s, now fits on just 8 AMD cards

marsbitPublished on 2026-08-04Last updated on 2026-08-04

Abstract

This article highlights a key achievement for AMD in the AI hardware race. The company's MI355X GPUs, each with 288 GB of memory, successfully deployed the massive 2.8 trillion parameter Kimi K3 model on a single 8-GPU server. In contrast, the NVIDIA B200 (with 192 GB per card) required a two-server, 16-GPU setup to hold the model, leading to inter-node communication overhead. In performance tests for a 1024-input/400-output token task, the 8-card MI355X system achieved a total throughput of 952 tokens/s and a single-user generation speed of 118 tokens/s. This single-node throughput was approximately 3.8 times higher than the per-node average of the dual-node B200 setup (498 tokens/s total). While NVIDIA's B300 delivered higher absolute performance (1568 tokens/s on 8 cards), a cost-efficiency analysis based on assumed hourly rates showed MI355X offered better value per dollar. Notably, the deployment on AMD's ROCm software platform was relatively straightforward, requiring only minor fixes like patching a missing function for speculative decoding and a simple zero-padding workaround to optimize a prefill kernel for attention heads. This significantly reduced the Time-To-First-Token (TTFT). The article concludes that for extremely large models, memory capacity is becoming a critical differentiator. AMD's strategy of equipping cards with more HBM memory provides a tangible system advantage in single-node deployment efficiency and cost, posing a growing challenge to NVIDIA's...

This might be the moment AMD has been waiting for.

Recently, Wafer AI deployed Kimi K3 on AMD MI355X. The result is that a model that originally required 16 NVIDIA B200s running across two servers can now be deployed in a single AMD server equipped with 8 MI355X cards.

More importantly, it's not just about fitting the model.

In tests with a 1024-token input and 400-token output, the MI355X achieved a total throughput of 952 tokens/s, with single-user generation speed reaching 118 tokens/s.

Calculated on a per-node basis, its throughput is about 3.8 times that of the average per-node throughput of the 16-card B200 dual-node deployment. Its cost-performance ratio also surpasses that of the B200 and B300.

The most surprising part? ROCm didn't cause major headaches this time.

The model is too big, making memory more critical than compute power

Kimi K3 boasts 2.8 trillion parameters, requiring over 1.5 TB of memory just for model weights, not counting the KV Cache needed for its million-token context.

An 8-card B200 server offers 192 GB of memory per card, totaling about 1.5 TB. This means it's difficult to even fit the model weights completely, let alone leave space for KV Cache. Therefore, the B200 solution requires two servers with 16 GPUs.

The B300, with 288 GB of memory per card, can fit the model within a single node. Coincidentally, the AMD MI355X also features 288 GB of memory. Eight MI355X cards total about 2.3 TB, allowing the model to run on a single server.

This isn't just about using one fewer machine. When a model runs across nodes, generating each token may require network synchronization. Even with a ~195 Gb/s RoCE v2 network, cross-node communication can still slow down decoding.

Leveraging its larger memory, the MI355X keeps the entire model within a single node.

From the final results, the 8 MI355X cards achieved a peak total throughput of 952 tokens/s, with a single-stream generation speed of 118 tokens/s.

In comparison, the dual-node deployment with 16 B200s achieved a total throughput of 498 tokens/s, which translates to about 249 tokens/s per node on average.

This means the MI355X's single-node throughput is about 3.8 times that of the average single-node throughput of the B200 dual-node deployment. In terms of single-user generation speed, the MI355X's 118 tokens/s is also higher than the B200's 90 tokens/s.

The B300 remains the absolute performance leader. An 8-card B300 node achieved a total throughput of 1568 tokens/s and a single-stream generation speed of 172 tokens/s, with overall throughput roughly 1.65 times that of the MI355X.

But price changes the conclusion. Wafer calculated based on assumed hourly rates of $2.5 per MI355X card, $4.25 per B200, and $6 per B300.

Under this pricing assumption, the MI355X delivers about 48 tokens/s per dollar of peak throughput; the B200 delivers about 7 tokens/s; and the B300 delivers about 33 tokens/s.

The B300 is faster, but the MI355X offers better efficiency per unit cost. For data centers needing to run open models at scale, this may be more important than simply competing for the performance crown.

Even more surprising: ROCm was largely ready to go

For a long time, the biggest issue with AMD data center GPUs often hasn't been the hardware, but the software.

A model that runs directly on CUDA might require framework modifications, operator patches, or even low-level kernel rewrites to work on ROCm.

But the situation with Kimi K3 was different.

AMD provided near-launch-day support. Wafer stated that the model basically ran directly on the MI355X, with subsequent work focusing on a few compatibility issues and performance optimizations.

One issue arose in the speculative decoding stage. Kimi K3 itself does not provide the draft model parameters required for MTP or EAGLE, so Wafer used an external block diffusion draft model.

This setup ran directly on CUDA, but in the ROCm environment, the first real request caused a scheduler error. The reason was that a function named `top_k_renorm_prob` was missing from the ROCm branch.

What this function does is not complex: it selects the top-k values from a probability distribution, zeros out the others, and then renormalizes the retained probabilities.

Wafer ultimately patched this logic using a standard PyTorch function, without needing to write a GPU kernel or redesign the speculative decoding system.

After the fix, speculative decoding improved single-stream performance by about 2.2x, improved single-stream performance under moderate concurrency by about 1.7x, and increased peak total throughput by about 18%.

More importantly, the system could achieve peak throughput under higher concurrency.

First token was too slow, solved by just adding four zeros

Of course, throughput isn't everything in inference services. Another metric directly impacting real user experience is TTFT (Time To First Token), the wait time between sending a request and seeing the first token.

Initially, the MI355X didn't perform well on this metric. For a cold-start prefill task with about 172k tokens, the MI355X needed about 51 seconds, while the B300 only needed about 23 seconds.

For models supporting million-token contexts, prefill tasks can be enormous. If users have to wait dozens of seconds or more every time they process a long context, even high decoding speeds can't compensate for the poor experience.

Wafer eventually found that the performance gap almost entirely came from one attention kernel. In an 8-way tensor parallelism configuration, Kimi K3 allocates 12 attention heads per GPU. However, AMD's faster MLA prefill kernel in AITER only supports shapes that are multiples of 4, 8, or 16.

Twelve heads didn't match, so the system fell back to a slower, generic Triton implementation.

The solution was simple: pad the 12 attention heads to 16 with zeros, call the existing high-speed kernel, and then retrieve the actual 12 heads after computation. No model architecture changes, no writing new assembly kernels—just adding four zeros.

After optimization, the stable prefill speed of the AITER MLA kernel reached about 13,000 tokens/s, compared to the original Triton fallback path of about 4000-7000 tokens/s. As a result, cold prefill time was reduced by about two to three times.

This optimization doesn't change the final decoding throughput but significantly reduces the time users wait for the first token to appear.

This also illustrates that what seems like a large software gap between AMD and NVIDIA sometimes isn't a lack of underlying capability, but rather that existing high-speed kernels haven't yet covered a specific new model shape.

CUDA's moat remains, but a breach has appeared

One test certainly doesn't prove that AMD has caught up to NVIDIA across the board.

The B200 was forced into cross-node operation due to insufficient memory; the B300 still holds the absolute performance lead; and ROCm's toolchain, framework support, and developer ecosystem still lag behind CUDA.

But open models are rapidly entering the trillion-parameter era. When models become too large to fit in a single server, memory capacity is no longer just a number on a spec sheet—it directly impacts communication costs, deployment complexity, and final throughput.

AMD's strategy of equipping single cards with more HBM is becoming a tangible system advantage.

If AMD can continue to improve ROCm's stability, expand the shape support of its high-speed kernels, and provide more timely day-one support for new models, then data centers will have to seriously consider these GPUs. They're cheaper, have more memory, offer sufficient performance, and the software no longer requires months of tinkering.

What do you think?

Reference links:

https://x.com/wafer_ai/status/2083628389903315406

https://x.com/ChiragAsarpota/status/2083864019870634151

This article is from WeChat public account "Almost Human" (ID: almosthuman2014), author: Focus on LLMs

Trending Cryptos

Related Questions

QAccording to the article, how many AMD MI355X GPUs are needed to deploy the Kimi K3 model compared to NVIDIA B200 GPUs?

AThe article states that the Kimi K3 model, which originally required 16 NVIDIA B200 GPUs across two servers, can be deployed on a single server equipped with 8 AMD MI355X GPUs.

QWhat is the key hardware advantage of the AMD MI355X that allowed for single-server deployment of Kimi K3?

AThe key hardware advantage is the larger memory capacity. Each AMD MI355X GPU has 288 GB of HBM memory, providing a total of approximately 2.3 TB for an 8-card server. This is sufficient to hold the model's weights and KV cache in a single node, unlike the B200 which required cross-node deployment.

QWhat was the performance result for the AMD MI355X setup in terms of total throughput and single-user generation speed?

AIn the test with 1024 input tokens and 400 output tokens, the 8-card AMD MI355X setup achieved a total throughput of 952 tokens/s and a single-user generation speed of 118 tokens/s.

QHow does the cost efficiency (tokens per dollar) of the AMD MI355X compare to the NVIDIA B200 and B300, based on the price assumptions in the article?

ABased on the price assumptions ($2.5/hour for MI355X, $4.25/hour for B200, $6/hour for B300), the AMD MI355X provides approximately 48 tokens/s per dollar. This is higher than the B200's ~7 tokens/s per dollar and the B300's ~33 tokens/s per dollar, making it the most cost-efficient option according to the article.

QWhat was a significant software-related finding regarding running Kimi K3 on the AMD ROCm platform?

AA significant finding was that the model could run on the AMD MI355X with ROCm with relatively few issues. While a minor compatibility problem with a missing function in the ROCm branch for speculative decoding was encountered, it was fixed with a standard PyTorch function. The article highlights that the software stack did not require extensive reworking, which has historically been a challenge for AMD GPUs.

Related Reads

Trading

Spot

Hot Articles

Discussions

Welcome to the HTX Community. Here, you can stay informed about the latest platform developments and gain access to professional market insights. Users' opinions on the price of AI (AI) are presented below.

活动图片