Kimi K3 Hit Hacker News After MI355X Beat B300 on Performance per Dollar
- Ethan Carter

- Aug 3
- 14 min read
Kimi K3 reached hacker news after Wafer reported that eight AMD MI355X GPUs served the model at roughly 952 output tokens per second. The system trailed an eight-GPU Nvidia B300 node in aggregate throughput. Yet Wafer’s rental assumptions gave AMD the better performance-per-dollar result.
That distinction matters because Kimi K3 is unusually demanding. Moonshot AI’s open-weight model contains approximately 2.8 trillion parameters, with about 104 billion activated for each token. Its checkpoint occupies more than 1.5 terabytes before the serving system reserves memory for runtime state and long prompts.
A standard eight-GPU B200 node cannot comfortably hold that deployment as configured. Wafer therefore compared one MI355X node with a B300 node and a two-node B200 setup. The result challenges Nvidia’s advantage through a narrow but commercially important question: which platform delivers acceptable Kimi K3 inference at the lowest infrastructure cost?
The Hacker News Claim Is About Economics, Not an Absolute Speed Win
Wafer did not report that MI355X was faster than B300. It reported that MI355X produced more throughput for each unit of hourly infrastructure spending.
The distinction is easy to lose in a headline. According to Wafer’s benchmark post, its eight-GPU MI355X node reached 952 aggregate output tokens per second. The same test recorded 1,568 tokens per second from an eight-GPU B300 configuration.
That gives Nvidia a substantial raw throughput advantage. The B300 node also delivered 172 tokens per second in a single stream, compared with 118 on MI355X. A buyer optimizing exclusively for maximum output from one node would still favor B300 under these results.
Wafer reached a different conclusion after applying hourly rental estimates. Its calculation placed MI355X ahead on aggregate throughput per unit of spending. The company described the AMD accelerator as the performance-per-dollar winner, not the overall performance winner.
The benchmark used prompts containing 1,024 input tokens and requested 400 output tokens. That workload is useful because it captures ordinary text-generation behavior without becoming a long-context stress test. It does not represent every production workload.
The B200 comparison adds another layer. Kimi K3 required 16 B200 GPUs across two nodes in Wafer’s configuration. That deployment produced 498 aggregate tokens per second, or about 249 per node.
Cross-node communication imposed a penalty because the GPUs had to coordinate model execution over a network. Wafer said that connection operated through RoCE v2, an Ethernet-based protocol for transferring data directly between systems with low CPU involvement.
The unfavorable B200 result therefore reflects topology as well as silicon. The model did not fit into one eight-GPU B200 node with Wafer’s required memory allocation. Splitting it across two nodes introduced communication into the decode path.
That constraint is central to the story. Kimi K3 turns memory capacity into an architectural advantage before software tuning even begins. Both MI355X and B300 provide 288 GB of high-bandwidth memory per GPU, enough for a single eight-GPU node to become viable.
The discussion on hacker news focused on whether this result weakens Nvidia’s software moat. A single vendor benchmark cannot settle that broader question. It does show that memory capacity and rental economics can override conventional GPU rankings for a specific model.
It also changes how buyers should read accelerator comparisons. Peak arithmetic performance matters, but it is only one input. Model size, quantization, memory placement, framework support, concurrency, latency, networking, and utilization can determine the actual bill.
For Kimi K3, the first victory belongs to the platform that can hold the model without an awkward multi-node split. AMD clears that threshold with one MI355X node. Nvidia clears it with B300, while B200 becomes less attractive for this specific configuration.
The result is therefore narrower and more useful than a sweeping declaration that AMD has caught Nvidia. It identifies one workload where AMD’s design choices become financially meaningful.
Kimi K3 Turns Memory Capacity Into the Deciding Constraint
Kimi K3 makes accelerator memory a deployment requirement, not a specification buyers can treat as secondary.
Moonshot AI describes Kimi K3 as a 2.8-trillion-parameter mixture-of-experts model. A mixture-of-experts model routes each token through only part of its network, reducing active computation while retaining a much larger pool of learned parameters.
The K3 technical paper says the model activates approximately 104 billion parameters per token. It selects 16 routed experts from a pool of 896. This sparsity limits computation, but it does not eliminate the need to store the complete expert weights.
Every request can route tokens toward different experts. The serving system must therefore keep the broader checkpoint accessible across the GPU group. That checkpoint creates the memory requirement that shapes Wafer’s comparison.
AMD’s own deployment guide estimates a loader-aware checkpoint size of approximately 1.56 TB. Under eight-way tensor parallelism, each MI355X holds about 191 GiB of model weights.
Tensor parallelism splits large model operations across several GPUs. Each accelerator computes one portion, then exchanges intermediate results with its peers. Keeping all eight GPUs in one server generally reduces the communication penalty compared with spanning multiple machines.
AMD estimates that known runtime state for one sequence at the model’s maximum context adds about 14.4 GiB per GPU. The combined known allocation reaches approximately 205.4 GiB, leaving about 82.6 GiB on each MI355X before other overhead.
That remaining memory must absorb communication buffers, temporary workspaces, allocator fragmentation, framework state, and other production costs. It can also support batching, which groups requests so the GPUs perform more useful work together.
Moonshot gives Kimi K3 a one-million-token context window. A context window is the maximum amount of text and other tokenized input the model can consider during one interaction. Supporting that theoretical maximum requires more memory than serving short prompts.
Kimi Delta Attention helps contain this growth. It uses a fixed-size recurrent state for many layers instead of maintaining a conventional key-value cache everywhere. A key-value cache stores prior attention data so the model does not recompute the entire sequence for every generated token.
Kimi K3 still includes layers that maintain token-dependent cache state. Long prompts therefore continue to consume meaningful memory. The architecture reduces the burden without making long context free.
AMD’s MI355X and Nvidia’s B300 both offer 288 GB of HBM per GPU in their standard eight-GPU platforms. Nvidia’s B300 architecture lists 2.3 TB of memory across the node, matching the broad capacity class of AMD’s platform.
B200 offers less memory per GPU. Eight devices can be sufficient for many models, but Wafer says that configuration could not accommodate Kimi K3 with its intended long-context memory pool. Moving to 16 GPUs solves capacity while adding networking costs and operational complexity.
This is the deeper reversal behind the hacker news interest. Nvidia’s B200 remains a high-end accelerator, but Kimi K3 can make the surrounding system topology more important than the chip’s familiar market position.
The same principle applies beyond this model. Open-weight models let operators choose their own hardware, serving framework, quantization, and request scheduler. Larger checkpoints make those choices increasingly dependent on memory capacity.
A company planning internal coding agents, document analysis, or research automation may expect long prompts and sustained generation. Such teams should model memory demand before comparing accelerator throughput.
Maintaining a searchable engineering knowledge base can also make those evaluations easier to reproduce. Configuration notes, profiling results, deployment changes, and failure reports otherwise scatter across local documents and chat threads.
Kimi K3 does not prove that memory is the only moat. It shows that memory can decide which platforms enter the competition at all.
Speculative Decoding Closed Part of AMD’s Software Gap
The MI355X result depended on software repair and serving optimization, even though Wafer did not need to write a new GPU kernel for its main decode improvement.
Wafer started from AMD’s day-one Kimi K3 support. That baseline already loaded the model on eight MI355X GPUs and exposed it through a compatible inference server. Getting from functional deployment to competitive throughput still required engineering work.
The largest decode improvement came from speculative decoding. This technique uses a smaller draft model to predict several future tokens. The main model then verifies those candidates together, reducing the number of expensive sequential decoding steps.
Kimi K3 did not ship with its own draft tensors for the speculative methods commonly integrated into frontier models. Wafer instead used Kimi-K3-DSpark, an external block-diffusion draft model published by RadixArk.
The CUDA version reportedly ran without the same interruption. On ROCm, AMD’s software platform for GPU computing, the first production request triggered a missing-function error inside SGLang’s token-verification path.
SGLang is an open-source serving framework that schedules model requests, manages memory, and runs optimized kernels. Its CUDA build imported a top-k probability-renormalization function. The ROCm branch did not provide an equivalent definition for the tested path.
Top-k sampling keeps only the most likely token candidates before selecting the next output. Renormalization rescales their remaining probabilities so they sum to one. The missing operation was mathematically simple, but its absence crashed the request scheduler.
Wafer implemented the operation with standard PyTorch primitives. The function sorted probabilities, retained the highest-ranked candidates, masked the rest, and rescaled the remaining values.
That repair reportedly increased single-stream performance by approximately 2.2 times. At moderate load, per-stream performance improved by roughly 1.7 times. Peak aggregate throughput rose 18 percent.
These gains illustrate why hardware specifications do not directly predict production inference. The accelerator executes the operations, but the serving stack decides whether requests reach efficient code paths.
Nvidia’s CUDA platform benefits from years of framework integration and developer attention. New inference techniques often appear there first. Bugs receive broader exposure, while libraries tend to assume CUDA behavior before adding other backends.
AMD has invested heavily in ROCm and its supporting libraries. The Kimi K3 deployment shows progress because the missing feature required a compact software correction rather than months of low-level kernel work.
Yet the bug still matters. A request path that crashes under real traffic is not a cosmetic inconvenience. It represents testing, maintenance, and operational risk that infrastructure teams must price into deployment decisions.
Wafer’s result also depended on reaching high concurrency. Concurrency measures how many sequences the server processes at once. More concurrent requests can raise total throughput by filling the accelerator with useful work.
Speculative decoding shifted the system’s peak throughput toward a higher concurrency setting. That outcome suits a shared service receiving many requests. It may matter less for an application that needs one response immediately.
This difference separates aggregate throughput from interactivity. Aggregate throughput measures the total tokens produced across all users. Interactivity measures how quickly each individual stream advances.
The MI355X node’s 952-token aggregate result is valuable for a busy service. Its 118-token single stream tells a different story. B300 remained faster for one stream and for the node overall.
The mechanism therefore supports a practical conclusion, not a universal one. AMD hardware offered favorable economics after Wafer repaired a framework gap and configured speculative decoding around an external draft model.
Other teams must determine whether they can reproduce that stack. They need compatible framework versions, the same model representation, stable sampling behavior, and sufficient request volume.
They also need engineers who can diagnose backend-specific failures. A missing function can be easy to fix after someone identifies it. Discovering the precise failure under production load can take much longer.
That is why the hacker news claim should not be reduced to a hardware score. It is evidence that AMD’s software disadvantage can sometimes be bounded and repaired. It does not show that the disadvantage has disappeared.
B300 Still Leads Where Latency and Density Matter Most
Nvidia’s B300 remained the stronger choice when the objective shifted from infrastructure efficiency to maximum throughput or minimum waiting time.
Wafer measured 1,568 aggregate output tokens per second from the B300 node. That was about 65 percent above the MI355X node’s 952-token result under the tested setup.
The B300 also reached 172 tokens per second in a single stream. MI355X reached 118. For interactive coding, live agents, or customer-facing chat, that difference can influence how responsive the product feels.
The comparison becomes more challenging during prefill. Prefill is the phase when the model processes the user’s existing prompt before generating its first output token. Long documents and large code repositories make this stage especially important.
Wafer tested an identical cold prompt containing about 172,000 tokens. The MI355X configuration initially needed roughly 51 seconds to process it, compared with about 23 seconds on B300.
That gap exceeds the difference seen during ordinary decoding. A user may accept a modestly slower stream once text starts moving. Waiting much longer before the first token can make an application feel stalled.
Wafer traced most of the AMD prefill gap to an attention-kernel fallback. Kimi K3 assigned 12 attention heads to each GPU under eight-way tensor parallelism. AMD’s faster AITER kernel supported other head-count shapes, so the framework selected slower generic Triton code.
AITER is AMD’s library of optimized AI operators. Triton is a language and compiler used to write portable GPU kernels. A generic Triton path can simplify compatibility, but it may not match a hardware-specific assembly implementation.
Wafer padded the 12-head input to 16 heads, ran the optimized kernel, and removed the artificial outputs afterward. This shape adjustment reportedly increased steady-state prefill throughput to about 13,000 tokens per second.
The earlier fallback ranged from roughly 4,000 to 7,000 tokens per second. Wafer described the repair as a twofold to threefold prefill improvement.
Importantly, that optimization did not raise the headline decode result. It targeted time to first token, or TTFT, which measures how long users wait before generation begins.
The episode shows both sides of AMD’s position. The hardware had an efficient kernel capable of much better performance. The framework failed to select it because Kimi K3 produced an unsupported shape.
Nvidia benefits when these mismatches have already been anticipated in CUDA libraries. AMD benefits when developers can adapt existing kernels without designing new ones. Buyers must decide how much integration work they can tolerate.
B300 also offers higher per-GPU aggregate performance in Wafer’s test. That density can matter where rack space, power delivery, networking ports, or data-center availability constrain deployment.
A lower-cost GPU is not automatically cheaper at the service level. Operators must include server utilization, power, networking, engineering time, spare capacity, failure recovery, and software maintenance.
If one B300 node can absorb traffic that requires more AMD nodes, the surrounding infrastructure can narrow the initial performance-per-dollar advantage. Conversely, an application with moderate latency requirements may save more by accepting AMD’s lower peak.
The right comparison is a service-level objective, not a chip-level slogan. A service-level objective defines the latency, availability, and throughput a system must consistently deliver.
Teams should compare both platforms at the same target interactivity. They should also measure identical prompt lengths, output lengths, cache behavior, concurrency, quantization, and uptime expectations.
A benchmark optimized independently on each platform can answer which system performs best after expert tuning. A benchmark using identical software can answer how portable the stack is. Those are different questions.
Wafer’s test leans toward the first. It tuned the MI355X path and compared the resulting service with its Nvidia deployments. That reflects how an operator might pursue the best available economics, but it complicates strict architectural attribution.
B300 remains the faster platform in the published numbers. MI355X earns attention because the lower rental assumption more than compensates for that difference under Wafer’s selected workload.
That is a meaningful competitive result. It is not a transfer of Nvidia’s performance crown.
What the Benchmark Does Not Establish
The published results remain a company-run snapshot, with limited methodological detail and no independent reproduction attached to the headline claim.
Wafer builds GPU optimization and inference products. It also offers hosted model access. The company has clear expertise, but it has a commercial interest in showing that software work can unlock alternatives to Nvidia.
That does not invalidate the benchmark. It means readers should treat the measurements as reported results from the operator, rather than neutral industry certification.
The benchmark post identifies prompt length, requested output, hardware configurations, throughput, and selected optimization work. It does not provide a complete reproducibility package within the article.
Important details remain unclear. The post does not fully specify every software revision, warm-up procedure, request distribution, measurement duration, output verification step, or power measurement.
The B300 configuration also used disaggregated context processing, according to Wafer’s comparison label. Disaggregation separates prompt processing from token generation so each stage can use suitable resources. That can affect both performance and system design.
The MI355X entry used eight-way tensor parallelism. The B200 deployment used 16 GPUs across two nodes. The B300 entry combined eight-way tensor parallelism with disaggregated processing.
These are practical deployments, but they are not perfectly symmetrical configurations. Each platform encountered different memory and topology constraints. That asymmetry is partly the point, yet it limits conclusions about chip architecture alone.
The performance-per-dollar result also depends on rental assumptions. GPU markets vary across cloud providers, contract lengths, regions, availability, and reservation models. A buyer with discounted Nvidia capacity can reach a different conclusion.
The shared writing rules prevent listing specific commercial prices here. The important fact is that Wafer assumed MI355X capacity cost materially less per GPU-hour than B300. Its economic verdict follows directly from that premise.
Availability matters too. A theoretically attractive accelerator provides no savings if a team cannot reserve enough nodes in the required region. Nvidia’s broader cloud presence can reduce procurement friction.
Model behavior presents another uncertainty. Speculative decoding accelerates generation only when the draft model predicts tokens the main model accepts. Acceptance rates can change across coding, prose, mathematics, languages, and sampling settings.
Wafer’s short-input benchmark may therefore produce different gains from an agent processing a large repository. Long-context research, customer support, and batch extraction can each shift the balance between prefill and decode.
The model itself is also new. Moonshot released Kimi K3’s weights on July 27, 2026, only days before Wafer published its July 31 measurements. Frameworks, quantizations, and optimized kernels remain early.
AMD’s initial guide was deliberately cautious. It validated loading and basic correctness on eight MI355X GPUs, but it did not claim peak throughput, token latency, or kernel efficiency.
Wafer supplied that next layer of performance work. Independent teams should now reproduce the result with open scripts and clearly defined service targets.
The comparison should also extend beyond B300. Nvidia’s newer systems, future AMD accelerators, and specialized inference hardware will change the available options. Software releases can move today’s ranking without replacing any chips.
There is also a quality question. Low-precision formats and speculative methods should preserve output behavior within defined tolerances. A speed result needs correctness checks, particularly when sampling changes can hide subtle differences.
Moonshot’s model uses mixed low-precision representations to reduce memory and compute demands. Those choices are part of its intended architecture. Implementations must still confirm that each backend produces acceptable results across representative tasks.
The most defensible reading is conditional: under Wafer’s workload, software stack, and rental assumptions, MI355X delivered the stronger performance-per-dollar result.
The least defensible reading is that AMD has broadly defeated Nvidia in AI inference. The published evidence does not support that conclusion.
Three Signals Will Decide Whether AMD Can Repeat the Win
AMD’s Kimi K3 result becomes strategically important only if it survives independent testing, broader workloads, and routine framework releases.
The first signal is reproducibility. Independent operators should run Kimi K3 on MI355X and B300 with published configurations, identical prompts, verified outputs, and matched latency targets.
A repeated performance-per-dollar advantage would strengthen Wafer’s claim. Large differences across teams would suggest that the result depends heavily on specialized tuning or favorable infrastructure terms.
Reproduction should cover more than peak aggregate throughput. Tests need time to first token, per-user decode speed, sustained concurrency, error rates, memory utilization, power use, and long-running stability.
They should also report the complete cost model without assuming one public rental snapshot represents every buyer. Contracted capacity and owned infrastructure can change the calculation.
The second signal is whether ROCm improvements enter standard serving frameworks. Wafer’s top-k repair and padded prefill path solved concrete problems, but private patches create maintenance obligations.
If SGLang, AITER, vLLM, and related projects absorb comparable fixes, more teams can reproduce the result without carrying custom branches. That would convert one operator’s expertise into a broader ecosystem gain.
Fast upstream support would also reduce the risk that a framework update breaks an optimized path. Infrastructure buyers value repeatability because production systems live far longer than benchmark runs.
If fixes remain fragmented, Nvidia’s software advantage stays intact even when AMD hardware looks favorable. CUDA’s moat includes documentation, debugging tools, library coverage, experienced developers, and predictable framework behavior.
The third signal is performance on production-shaped workloads. Kimi K3’s one-million-token context invites tasks involving large repositories, document collections, research histories, and extended agent sessions.
Those workloads increase the importance of prefill, cache management, request scheduling, and memory fragmentation. Wafer already showed that AMD’s initial cold-prefill result lagged B300 before an optimized kernel path was enabled.
A broader win would require MI355X to remain competitive across short chat prompts, long documents, code agents, multimodal inputs, and mixed traffic. It must also maintain acceptable latency while the node handles many users.
If AMD performs well across those conditions, hardware buyers gain meaningful leverage. They can negotiate against a credible second platform and deploy large open-weight models without accepting an automatic Nvidia premium.
If the advantage disappears outside short-input throughput tests, MI355X will remain a workload-specific option. That can still produce valuable deployments, but it will not fundamentally weaken Nvidia’s position.
The wider lesson from hacker news is that open-weight models are turning inference into a systems contest. Model developers define the architecture, chipmakers supply memory and compute, while framework teams determine how much of that capacity becomes usable.
Kimi K3 intensifies that contest because its checkpoint forces buyers to confront memory limits immediately. It also rewards platforms that can support low-precision computation, efficient expert routing, and large context state.
Developers should watch benchmark repositories and framework release notes. Infrastructure teams should run their own traffic traces instead of relying on a single tokens-per-second figure.
Enterprise buyers should demand comparisons at the latency their applications require. They should include engineering labor and operational risk alongside accelerator rental assumptions.
The current evidence gives AMD a credible result and Nvidia a clear warning. B300 remains faster, while MI355X reportedly offers stronger economics for Wafer’s Kimi K3 deployment.
The next question is whether that advantage becomes ordinary. Track independent benchmarks, upstream software support, and long-context production tests before treating one hacker news result as a lasting shift.


