<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nick K</title>
    <description>The latest articles on DEV Community by Nick K (@nick_k_gpus_market).</description>
    <link>https://dev.to/nick_k_gpus_market</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4069899%2F45553905-694e-4235-a8f8-48ecf0e69b9d.png</url>
      <title>DEV Community: Nick K</title>
      <link>https://dev.to/nick_k_gpus_market</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nick_k_gpus_market"/>
    <language>en</language>
    <item>
      <title>Kimi K3 Is 2.8T Parameters. That’s Not the Hardest Part of Serving It.</title>
      <dc:creator>Nick K</dc:creator>
      <pubDate>Sun, 16 Aug 2026 18:12:21 +0000</pubDate>
      <link>https://dev.to/nick_k_gpus_market/kimi-k3-is-28t-parameters-thats-not-the-hardest-part-of-serving-it-1dme</link>
      <guid>https://dev.to/nick_k_gpus_market/kimi-k3-is-28t-parameters-thats-not-the-hardest-part-of-serving-it-1dme</guid>
      <description>&lt;p&gt;When I first looked at &lt;strong&gt;Kimi K3&lt;/strong&gt;, the obvious number was &lt;strong&gt;2.8 trillion parameters&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That sounds like the whole deployment story.&lt;/p&gt;

&lt;p&gt;It isn't.&lt;/p&gt;

&lt;p&gt;After digging through the checkpoint, the architecture, and the current vLLM serving recipes, I think the more interesting story is this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Kimi K3 is a good example of how modern LLM deployment is becoming a &lt;strong&gt;memory-layout and systems-engineering problem&lt;/strong&gt;, not simply a parameter-count problem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kimi K3 is a Mixture-of-Experts model with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2.8T total parameters&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;roughly &lt;strong&gt;104B active parameters per token&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;896 routed experts&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;16 experts selected per token&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;native multimodal support&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;1,048,576-token context window&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yet the released model is nowhere near a hypothetical 5.6 TB BF16 checkpoint.&lt;/p&gt;

&lt;p&gt;The reason is one of the first interesting deployment details.&lt;/p&gt;

&lt;h2&gt;
  
  
  The model already arrives quantized
&lt;/h2&gt;

&lt;p&gt;Kimi K3 was trained to use &lt;strong&gt;MXFP4 weights with MXFP8 activations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That matters.&lt;/p&gt;

&lt;p&gt;The public checkpoint is roughly &lt;strong&gt;1.56 TB&lt;/strong&gt;, so you are not taking a giant BF16 model and deciding afterward whether to quantize it enough to make deployment practical.&lt;/p&gt;

&lt;p&gt;The low-precision representation is part of the model's intended inference path.&lt;/p&gt;

&lt;p&gt;That's a meaningful shift.&lt;/p&gt;

&lt;p&gt;For infrastructure planning, the question becomes less:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Which community quant should I download?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and more:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Which hardware can execute the model's native format efficiently?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That immediately pushes you toward newer accelerators with the memory capacity and kernels required for MXFP4.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sparse compute does not mean sparse storage
&lt;/h2&gt;

&lt;p&gt;This is probably the easiest thing to misunderstand about large MoE models.&lt;/p&gt;

&lt;p&gt;Kimi K3 only activates around &lt;strong&gt;104B parameters for each token&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's great for compute.&lt;/p&gt;

&lt;p&gt;But it does &lt;strong&gt;not&lt;/strong&gt; mean you only need enough GPU memory for 104B parameters.&lt;/p&gt;

&lt;p&gt;The other experts still exist.&lt;/p&gt;

&lt;p&gt;Their weights still have to be available.&lt;/p&gt;

&lt;p&gt;So there are really two different numbers to think about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compute per token:&lt;/strong&gt; ~104B active parameters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weights that need to live somewhere:&lt;/strong&gt; the full ~1.56 TB checkpoint.&lt;/p&gt;

&lt;p&gt;That distinction is why a 2.8T MoE can have reasonable per-token compute while still requiring datacenter-scale hardware to self-host.&lt;/p&gt;




&lt;h2&gt;
  
  
  The current practical floor is still an 8-GPU machine
&lt;/h2&gt;

&lt;p&gt;This is where the model stops looking like something you casually spin up on a spare inference server.&lt;/p&gt;

&lt;p&gt;Current vLLM guidance starts with &lt;strong&gt;8× GB300&lt;/strong&gt; on NVIDIA.&lt;/p&gt;

&lt;p&gt;For AMD, the documented ROCm path starts with &lt;strong&gt;8× MI355X or MI350X&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;vLLM's launch documentation also describes &lt;strong&gt;16× B200&lt;/strong&gt; as a supported configuration.&lt;/p&gt;

&lt;p&gt;So even though the model is heavily compressed, we're still talking about roughly &lt;strong&gt;two terabytes of aggregate accelerator memory before you start thinking seriously about serving headroom&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that last part matters.&lt;/p&gt;

&lt;p&gt;Weight capacity is only the beginning.&lt;/p&gt;




&lt;h2&gt;
  
  
  A 1M context window changes the memory conversation
&lt;/h2&gt;

&lt;p&gt;Kimi K3 supports more than &lt;strong&gt;one million tokens of context&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's tempting to see that number and immediately launch vLLM with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--max-model-len&lt;/span&gt; 1048576
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's probably not how most production deployments should start.&lt;/p&gt;

&lt;p&gt;Every context token has a serving cost.&lt;/p&gt;

&lt;p&gt;Longer sequences mean more cache state, lower concurrency, and less room for simultaneous requests.&lt;/p&gt;

&lt;p&gt;Kimi K3 does make long context more interesting than a conventional Transformer because its architecture isn't simply one giant stack of ordinary full-attention layers.&lt;/p&gt;

&lt;p&gt;It uses a hybrid design:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;69 Kimi Delta Attention layers + 24 Gated MLA layers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kimi Delta Attention maintains recurrent state rather than allowing a conventional KV cache to grow identically at every layer.&lt;/p&gt;

&lt;p&gt;The periodic full-attention layers still need their own KV state.&lt;/p&gt;

&lt;p&gt;That means vLLM has to manage &lt;strong&gt;two different kinds of cache state inside the same model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This isn't just an architecture curiosity.&lt;/p&gt;

&lt;p&gt;It affects how prefix caching, scheduling, memory allocation, and long-context serving actually work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prefix caching gets weird with recurrent attention
&lt;/h2&gt;

&lt;p&gt;Normal prefix caching is conceptually simple.&lt;/p&gt;

&lt;p&gt;If multiple requests share:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;system prompt
+
large common document
+
user-specific question
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you don't want to recompute the common prefix every time.&lt;/p&gt;

&lt;p&gt;With a normal Transformer, you can reuse cached KV blocks.&lt;/p&gt;

&lt;p&gt;Kimi K3 complicates this because the KDA layers maintain recurrent state while the full-attention layers maintain regular token-level KV state.&lt;/p&gt;

&lt;p&gt;vLLM therefore had to make its cache manager understand both.&lt;/p&gt;

&lt;p&gt;This is one of the things I find more interesting about Kimi K3 than the 2.8T headline.&lt;/p&gt;

&lt;p&gt;New model architectures are increasingly forcing serving engines to become architecture-aware systems rather than generic "load weights and run attention" frameworks.&lt;/p&gt;




&lt;h2&gt;
  
  
  The basic vLLM command is surprisingly normal
&lt;/h2&gt;

&lt;p&gt;Once the infrastructure is ready, the user-facing part still looks familiar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vllm serve moonshotai/Kimi-K3 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tensor-parallel-size&lt;/span&gt; 8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--trust-remote-code&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--load-format&lt;/span&gt; fastsafetensors &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-prefix-caching&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-auto-tool-choice&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tool-call-parser&lt;/span&gt; kimi_k3 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--reasoning-parser&lt;/span&gt; kimi_k3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That gives you an OpenAI-compatible endpoint.&lt;/p&gt;

&lt;p&gt;The complexity is mostly underneath:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MXFP4 kernels&lt;/li&gt;
&lt;li&gt;expert routing&lt;/li&gt;
&lt;li&gt;hybrid attention&lt;/li&gt;
&lt;li&gt;prefix caching&lt;/li&gt;
&lt;li&gt;tensor/expert parallelism&lt;/li&gt;
&lt;li&gt;GPU-to-GPU communication&lt;/li&gt;
&lt;li&gt;multimodal input handling&lt;/li&gt;
&lt;li&gt;tool-call parsing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which is exactly what an inference engine should hide from the application developer.&lt;/p&gt;




&lt;h2&gt;
  
  
  The most interesting optimization might be speculative decoding
&lt;/h2&gt;

&lt;p&gt;For interactive applications, fitting the model isn't enough.&lt;/p&gt;

&lt;p&gt;A model can technically run and still feel painfully slow to users.&lt;/p&gt;

&lt;p&gt;vLLM's Kimi K3 work includes support for &lt;strong&gt;DSpark speculative decoding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of asking the full 2.8T model to generate every next token sequentially, a smaller draft model proposes several candidates and Kimi K3 verifies them.&lt;/p&gt;

&lt;p&gt;The published GB300 benchmark is pretty dramatic:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Without DSpark:&lt;/strong&gt; 118 output tokens/sec/user&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With DSpark:&lt;/strong&gt; 370 output tokens/sec/user&lt;/p&gt;

&lt;p&gt;That's roughly a &lt;strong&gt;3.14× improvement&lt;/strong&gt; in that single-user benchmark.&lt;/p&gt;

&lt;p&gt;The speculative configuration uses seven proposed tokens:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--speculative-config&lt;/span&gt; &lt;span class="s1"&gt;'{
  "model":"Inferact/Kimi-K3-DSpark",
  "method":"dspark",
  "num_speculative_tokens":7,
  "attention_backend":"FLASHINFER_MLA",
  "draft_sample_method":"probabilistic",
  "rejection_sample_method":"block"
}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To me, this is an important part of the deployment story.&lt;/p&gt;

&lt;p&gt;We spend a lot of time comparing quantization formats and GPU memory.&lt;/p&gt;

&lt;p&gt;But once a huge model already fits, &lt;strong&gt;decode strategy can have a bigger effect on user experience than shaving another few percent from the checkpoint&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Production Kimi K3 is really a topology problem
&lt;/h2&gt;

&lt;p&gt;An 8-GPU box answers:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can I load and serve this model?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It doesn't automatically answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can I serve hundreds of agent sessions economically?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At higher traffic levels, Kimi K3 starts becoming a cluster architecture problem.&lt;/p&gt;

&lt;p&gt;You have several dimensions to work with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tensor parallelism&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Split model operations across GPUs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expert parallelism&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Distribute MoE experts across devices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data parallelism&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run additional replicas for concurrency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prefill/decode disaggregation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let different GPU groups specialize in processing prompts and generating tokens.&lt;/p&gt;

&lt;p&gt;Once you cross machine boundaries, networking becomes part of model performance too.&lt;/p&gt;

&lt;p&gt;vLLM's K3 recipes explicitly distinguish between high-bandwidth NVLink-style deployments and RDMA-connected multi-node setups.&lt;/p&gt;

&lt;p&gt;At that point, saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This cluster has enough VRAM"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;isn't enough.&lt;/p&gt;

&lt;p&gt;You need to know &lt;strong&gt;where that VRAM is and how quickly the GPUs can communicate&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I would decide before renting GPUs
&lt;/h2&gt;

&lt;p&gt;If I were planning a Kimi K3 deployment today, I wouldn't start by asking "what is the cheapest cluster with 1.56 TB of VRAM?"&lt;/p&gt;

&lt;p&gt;I'd start with four workload questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. How much context do I actually need?
&lt;/h3&gt;

&lt;p&gt;If requests normally stay below 32K or 64K, don't reserve resources as though every request will consume 1M tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Is the workload latency-sensitive?
&lt;/h3&gt;

&lt;p&gt;Interactive coding agents may benefit enormously from speculative decoding.&lt;/p&gt;

&lt;p&gt;Batch workloads may care more about aggregate throughput.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How much concurrency do I expect?
&lt;/h3&gt;

&lt;p&gt;One developer testing K3 and a production agent platform serving hundreds of sessions are completely different deployments.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Am I optimizing for minimum hardware or production efficiency?
&lt;/h3&gt;

&lt;p&gt;The smallest cluster that loads a model isn't necessarily the cluster with the best cost per token.&lt;/p&gt;

&lt;p&gt;That's especially true for MoE models where communication and expert routing start dominating scaling decisions.&lt;/p&gt;




&lt;h2&gt;
  
  
  My main takeaway
&lt;/h2&gt;

&lt;p&gt;Kimi K3 is interesting partly because it's enormous.&lt;/p&gt;

&lt;p&gt;But the more useful lesson is what it says about the next generation of open models.&lt;/p&gt;

&lt;p&gt;We are moving from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;parameter count
→ precision
→ VRAM
→ launch server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;toward something more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model architecture
→ native numerical format
→ memory topology
→ cache architecture
→ parallelism strategy
→ interconnect
→ speculative decoding
→ workload-specific context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's a much more complicated deployment stack.&lt;/p&gt;

&lt;p&gt;It's also a much more interesting one.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;2.8T-parameter open-weight model&lt;/strong&gt; would have sounded almost absurd to self-host not long ago.&lt;/p&gt;

&lt;p&gt;Today, it can be served through an OpenAI-compatible vLLM endpoint.&lt;/p&gt;

&lt;p&gt;You just need a couple of terabytes of very fast GPU memory first. :)&lt;/p&gt;




&lt;p&gt;I put together a more infrastructure-focused breakdown with the checkpoint sizes, verified GPU layouts, vLLM configurations, and deployment recipes here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full Kimi K3 deployment guide:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://blog.gpus.market/deploying-kimi-k3-with-vllm-verified-gpu-pods-quants-and-serving-recipes" rel="noopener noreferrer"&gt;https://blog.gpus.market/deploying-kimi-k3-with-vllm-verified-gpu-pods-quants-and-serving-recipes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>llm</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Deploying Qwen3.8-2.4T-A95B with vLLM: Verified GPU Pods, Quants, and Serving Recipes</title>
      <dc:creator>Nick K</dc:creator>
      <pubDate>Sat, 15 Aug 2026 03:19:40 +0000</pubDate>
      <link>https://dev.to/nick_k_gpus_market/deploying-qwen38-24t-a95b-with-vllm-verified-gpu-pods-quants-and-serving-recipes-g8a</link>
      <guid>https://dev.to/nick_k_gpus_market/deploying-qwen38-24t-a95b-with-vllm-verified-gpu-pods-quants-and-serving-recipes-g8a</guid>
      <description>&lt;p&gt;Qwen3.8-2.4T-A95B is a 2.4-trillion-parameter Mixture-of-Experts model with roughly 95B parameters active for each token. If you're planning to self-host it, the first thing to know is that this is a genuinely large distributed model: even the low-precision checkpoints are measured in terabytes.&lt;/p&gt;

&lt;p&gt;The official open checkpoint is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qwen/Qwen3.8-2.4T-A95B
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model has 512 routed experts and selects 10 of them per token alongside one shared expert. Its 92-layer backbone mixes 69 Gated DeltaNet linear-attention layers with 23 full-attention layers, with full attention appearing every fourth layer.&lt;/p&gt;

&lt;p&gt;Native context is &lt;strong&gt;262,144 tokens&lt;/strong&gt;, with an extended configuration available up to roughly &lt;strong&gt;1.01 million tokens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The open checkpoint is text-only and always uses reasoning. This is different from Qwen's hosted &lt;code&gt;Qwen3.8-Max&lt;/code&gt; service, which adds features such as vision input and non-thinking mode.&lt;/p&gt;

&lt;p&gt;For GPU deployment, the main decision is not whether 2.4T parameters will somehow fit. It is &lt;strong&gt;which precision format gives you a documented configuration on the hardware you actually have&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the checkpoint that matches your GPUs
&lt;/h2&gt;

&lt;p&gt;The practical options today are:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your GPUs&lt;/th&gt;
&lt;th&gt;Checkpoint&lt;/th&gt;
&lt;th&gt;Documented setup&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;8× B300&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Inferact/Qwen3.8-2.4T-A95B-NVFP4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TP8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;8× GB300&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Inferact/Qwen3.8-2.4T-A95B-NVFP4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TP8 across two NVL4 trays&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;16× B300&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Qwen/Qwen3.8-2.4T-A95B-FP8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TP16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;16× GB300&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Qwen/Qwen3.8-2.4T-A95B-FP8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TP16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;12× GB300&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Qwen/Qwen3.8-2.4T-A95B-FP8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TP4 × PP3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;8× MI355X&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Inferact/Qwen3.8-2.4T-A95B-MXFP4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TP8&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The full BF16 checkpoint is roughly &lt;strong&gt;4.45 TiB&lt;/strong&gt;. The official FP8 version is around &lt;strong&gt;2.27 TiB&lt;/strong&gt;, while the NVFP4 checkpoint used in the NVIDIA eight-GPU recipe is around &lt;strong&gt;1.32 TiB&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is why NVFP4 is the most approachable NVIDIA deployment if your goal is simply to get Qwen3.8 running without moving immediately to a 16-GPU cluster.&lt;/p&gt;

&lt;p&gt;H100, H200, A100, B200 and smaller GPU configurations are not included here. Current vLLM material contains sizing information for some of those GPUs, but not equivalent end-to-end serving recipes. This guide does not turn memory estimates into deployment claims.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before starting the model
&lt;/h2&gt;

&lt;p&gt;The current vLLM recipe recommends a recent nightly build rather than an older stable release.&lt;/p&gt;

&lt;p&gt;Create an environment with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv venv
&lt;span class="nb"&gt;source&lt;/span&gt; .venv/bin/activate

uv pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-U&lt;/span&gt; vllm &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--extra-index-url&lt;/span&gt; https://wheels.vllm.ai/nightly

uv pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-U&lt;/span&gt; &lt;span class="s2"&gt;"transformers&amp;gt;=5.4.0"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you have a working build, pin it. Qwen3.8 relies on recently added model and kernel support, so continuously upgrading a production server to whatever nightly happens to be current is unnecessary risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running Qwen3.8 on 8× B300 or GB300
&lt;/h2&gt;

&lt;p&gt;For NVIDIA, the smallest documented configuration uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Inferact/Qwen3.8-2.4T-A95B-NVFP4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with eight GPUs.&lt;/p&gt;

&lt;p&gt;Start with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vllm serve Inferact/Qwen3.8-2.4T-A95B-NVFP4 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tensor-parallel-size&lt;/span&gt; 8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--max-model-len&lt;/span&gt; 262144 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--kv-cache-dtype&lt;/span&gt; fp8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--reasoning-parser&lt;/span&gt; qwen3 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-auto-tool-choice&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tool-call-parser&lt;/span&gt; qwen3_coder &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--speculative-config&lt;/span&gt; &lt;span class="s1"&gt;'{"method":"mtp","num_speculative_tokens":3}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This configuration applies to an eight-GPU B300 system and is also documented across eight GB300 GPUs spanning two NVL4 trays.&lt;/p&gt;

&lt;p&gt;vLLM's optimized NVFP4 path also uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--linear-backend&lt;/span&gt; flashinfer_cutedsl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;but that flag depends on having the matching FlashInfer environment. Add it when reproducing the corresponding vLLM container/software stack rather than assuming every vLLM installation has the required backend.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep MTP enabled when you benchmark
&lt;/h3&gt;

&lt;p&gt;Qwen3.8 contains a built-in Multi-Token Prediction head. vLLM's published results show that using three speculative tokens can make a substantial difference.&lt;/p&gt;

&lt;p&gt;On its low-latency tests:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FP8 TP16
Without MTP: 130 output tok/s/user
MTP-3:       307 output tok/s/user

NVFP4 TP8
Without MTP: 133 output tok/s/user
MTP-3:       304 output tok/s/user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those are measurements from vLLM's hardware and workload, not promised performance for every server. They do make MTP-3 worth testing from the beginning:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--speculative-config&lt;/span&gt; &lt;span class="s1"&gt;'{"method":"mtp","num_speculative_tokens":3}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using only one speculative token performed much less convincingly in the same testing. vLLM measured 64.8% acceptance for MTP-1, and at higher concurrency the extra speculative work could actually hurt throughput.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running the official FP8 checkpoint
&lt;/h2&gt;

&lt;p&gt;If you want Qwen's official FP8 checkpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qwen/Qwen3.8-2.4T-A95B-FP8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the documented low-latency configuration moves to &lt;strong&gt;16 GPUs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;On B300, that normally means two eight-GPU nodes using TP16.&lt;/p&gt;

&lt;p&gt;The head node runs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vllm serve Qwen/Qwen3.8-2.4T-A95B-FP8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tensor-parallel-size&lt;/span&gt; 16 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--nnodes&lt;/span&gt; 2 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--node-rank&lt;/span&gt; 0 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--master-addr&lt;/span&gt; &lt;span class="nv"&gt;$HEAD_ADDR&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--max-model-len&lt;/span&gt; 262144 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--kv-cache-dtype&lt;/span&gt; fp8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--reasoning-parser&lt;/span&gt; qwen3 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-auto-tool-choice&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tool-call-parser&lt;/span&gt; qwen3_coder &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--speculative-config&lt;/span&gt; &lt;span class="s1"&gt;'{"method":"mtp","num_speculative_tokens":3}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second node uses the same distributed configuration with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--node-rank&lt;/span&gt; 1 &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--headless&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only rank 0 should expose the API server.&lt;/p&gt;

&lt;p&gt;There is also a verified &lt;strong&gt;12× GB300&lt;/strong&gt; FP8 configuration using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TP4 × PP3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Why not TP12? Qwen3.8 has 64 full-attention heads, so its tensor-parallel size needs to divide 64. TP12 does not.&lt;/p&gt;

&lt;p&gt;vLLM verified the TP4 × PP3 layout on 12 GB300 GPUs, including model loading, CUDA graph capture and generation. It is a useful option when you have three four-GPU GB300 trays, although the ordinary TP8 and TP16 setups remain simpler.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running it on AMD
&lt;/h2&gt;

&lt;p&gt;The documented AMD route uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Inferact/Qwen3.8-2.4T-A95B-MXFP4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;on &lt;strong&gt;8× MI355X&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vllm serve Inferact/Qwen3.8-2.4T-A95B-MXFP4 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tensor-parallel-size&lt;/span&gt; 8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-auto-tool-choice&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tool-call-parser&lt;/span&gt; qwen3_coder &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--reasoning-parser&lt;/span&gt; qwen3 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--speculative-config&lt;/span&gt; &lt;span class="s1"&gt;'{"method":"mtp","num_speculative_tokens":3}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One difference from the NVIDIA command is worth preserving: the current vLLM recipe does not recommend blindly adding FP8 KV cache to this ROCm setup.&lt;/p&gt;

&lt;p&gt;Do not assume:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--kv-cache-dtype&lt;/span&gt; fp8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;works with every ROCm/vLLM combination. Add it only after confirming it on the exact software build running on the node.&lt;/p&gt;

&lt;p&gt;AMD also publishes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;amd/Qwen3.8-2.4T-A95B-Quark-MXFP4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for MI350 and MI355 hardware.&lt;/p&gt;

&lt;p&gt;In that conversion, routed experts use OCP MXFP4 while components such as attention, routers, the shared expert, LM head and MTP layer remain at higher precision.&lt;/p&gt;

&lt;p&gt;AMD's published GSM8K reproduction reported:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FP8 baseline: 97.49
MXFP4:        97.49
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That result was reproduced with SGLang at TP8 on MI35x hardware. It is evidence for the quality of AMD's quantization, not a vLLM throughput benchmark.&lt;/p&gt;

&lt;h2&gt;
  
  
  How much context should you actually allocate?
&lt;/h2&gt;

&lt;p&gt;The open checkpoint natively supports:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;262,144 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and can be extended to about:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1,010,000 tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with vLLM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;VLLM_ALLOW_LONG_MAX_MODEL_LEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--max-model-len&lt;/span&gt; 1010000 &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--hf-overrides&lt;/span&gt; &lt;span class="s1"&gt;'{"max_position_embeddings":1010000}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is little reason to enable 1M context automatically.&lt;/p&gt;

&lt;p&gt;Long context consumes memory that could otherwise be used for concurrent requests. vLLM's own NVFP4 testing illustrates the tradeoff: a configuration sized around the 262K window could hold roughly 25 concurrent requests in the available KV-cache budget, while a much shorter workload around 8K input plus 1K output allowed hundreds.&lt;/p&gt;

&lt;p&gt;If you're serving repository-scale coding agents, very long context may be worth the cost. If most requests are 10K or 20K tokens, reserving for one million tokens mostly reduces how many users the GPUs can serve at once.&lt;/p&gt;

&lt;p&gt;Set:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--max-model-len&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for the workload you actually expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reasoning and tool calling
&lt;/h2&gt;

&lt;p&gt;Qwen3.8 is a reasoning model. The open checkpoint does not expose a normal non-thinking mode.&lt;/p&gt;

&lt;p&gt;It supports three reasoning-effort settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;xhigh
medium
low
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;xhigh&lt;/code&gt; is the default.&lt;/p&gt;

&lt;p&gt;Qwen also preserves thinking across turns by default, which matters for agentic sessions where earlier reasoning and tool interactions are part of the ongoing context.&lt;/p&gt;

&lt;p&gt;Start vLLM with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--reasoning-parser&lt;/span&gt; qwen3 &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--enable-auto-tool-choice&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--tool-call-parser&lt;/span&gt; qwen3_coder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Qwen's recommended generation settings include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;temperature = 1.0
top_p = 0.95
top_k = 20
min_p = 0.0
presence_penalty = 0.0
repetition_penalty = 1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A normal OpenAI-compatible client looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:8000/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;EMPTY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Inferact/Qwen3.8-2.4T-A95B-NVFP4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Review this distributed queue design and identify its failure modes.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;top_p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.95&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;16384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For hard coding and agent tasks, leave enough output budget for the reasoning trace. An aggressive &lt;code&gt;max_tokens&lt;/code&gt; limit can terminate the generation before the model reaches its final answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loading a model this large
&lt;/h2&gt;

&lt;p&gt;At Qwen3.8's scale, startup time becomes part of operating the server.&lt;/p&gt;

&lt;p&gt;vLLM's NVFP4 testing found that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--load-format&lt;/span&gt; fastsafetensors &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--safetensors-load-strategy&lt;/span&gt; lazy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;reduced model load time from &lt;strong&gt;545 seconds to 306 seconds&lt;/strong&gt; on the shared storage used in that test.&lt;/p&gt;

&lt;p&gt;That result will vary with storage performance, but persistent model storage is clearly preferable to downloading or repeatedly copying a terabyte-scale checkpoint whenever a machine restarts.&lt;/p&gt;

&lt;p&gt;vLLM also uses a larger engine startup timeout:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;VLLM_ENGINE_READY_TIMEOUT_S&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3600
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And don't make your own readiness decision solely from whether the process is alive. Send a small request to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/v1/chat/completions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and verify that the model can actually generate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which GPU setup should you use?
&lt;/h2&gt;

&lt;p&gt;If you're renting GPUs specifically for Qwen3.8-2.4T-A95B, the current documented choices are fairly straightforward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8× B300 + NVFP4&lt;/strong&gt; is the simplest NVIDIA configuration in the current vLLM recipe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8× GB300 + NVFP4&lt;/strong&gt; gives you the equivalent Grace Blackwell path across two NVL4 trays.&lt;/p&gt;

&lt;p&gt;Use &lt;strong&gt;16× B300 or GB300 + FP8&lt;/strong&gt; when you specifically want the official FP8 checkpoint and have enough hardware for TP16.&lt;/p&gt;

&lt;p&gt;If you have three GB300 trays, &lt;strong&gt;12× GB300 FP8 with TP4 × PP3&lt;/strong&gt; is an upstream-verified alternative.&lt;/p&gt;

&lt;p&gt;On AMD, use &lt;strong&gt;8× MI355X + MXFP4&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;H100, H200, A100, B200 and smaller GPU counts are intentionally not recommended here. There may be enough aggregate memory in some of those configurations, but the current sources do not provide the same reproducible end-to-end deployment evidence.&lt;/p&gt;

&lt;p&gt;For Qwen3.8, choosing the GPUs is only part of the deployment. The exact quant, tensor-parallel layout, KV-cache budget, vLLM build, network topology and MTP configuration all affect whether the resulting server is useful once real traffic starts hitting it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Qwen
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Qwen3.8-2.4T-A95B official model card&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://huggingface.co/Qwen/Qwen3.8-2.4T-A95B" rel="noopener noreferrer"&gt;https://huggingface.co/Qwen/Qwen3.8-2.4T-A95B&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Official FP8 checkpoint&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://huggingface.co/Qwen/Qwen3.8-2.4T-A95B-FP8" rel="noopener noreferrer"&gt;https://huggingface.co/Qwen/Qwen3.8-2.4T-A95B-FP8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  vLLM
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Official Qwen3.8-2.4T-A95B deployment recipe&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://recipes.vllm.ai/Qwen/Qwen3.8-2.4T-A95B" rel="noopener noreferrer"&gt;https://recipes.vllm.ai/Qwen/Qwen3.8-2.4T-A95B&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;vLLM Qwen3.8 launch notes and benchmarks&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://vllm.ai/blog/2026-08-12-qwen3.8" rel="noopener noreferrer"&gt;https://vllm.ai/blog/2026-08-12-qwen3.8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  NVIDIA / Inferact
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Qwen3.8 NVFP4 checkpoint&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://huggingface.co/Inferact/Qwen3.8-2.4T-A95B-NVFP4" rel="noopener noreferrer"&gt;https://huggingface.co/Inferact/Qwen3.8-2.4T-A95B-NVFP4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Qwen3.8 MXFP4 checkpoint&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://huggingface.co/Inferact/Qwen3.8-2.4T-A95B-MXFP4" rel="noopener noreferrer"&gt;https://huggingface.co/Inferact/Qwen3.8-2.4T-A95B-MXFP4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AMD
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;AMD Qwen3.8 Quark MXFP4 checkpoint&lt;/strong&gt;
&lt;a href="https://huggingface.co/amd/Qwen3.8-2.4T-A95B-Quark-MXFP4" rel="noopener noreferrer"&gt;https://huggingface.co/amd/Qwen3.8-2.4T-A95B-Quark-MXFP4&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>nvidia</category>
      <category>qwen</category>
    </item>
  </channel>
</rss>
