<?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>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>
