<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>8820 Archives - OpenZeka EN Blog</title>
	<atom:link href="https://blog.openzeka.com/en/tag/8820/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.openzeka.com/en/tag/8820/</link>
	<description>NVIDIA Jetson Developer Kits &#38;Edge Devices</description>
	<lastBuildDate>Wed, 26 Aug 2026 10:23:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://blog.openzeka.com/en/wp-content/uploads/2026/06/cropped-favicon-32x32-3-66x66.webp</url>
	<title>8820 Archives - OpenZeka EN Blog</title>
	<link>https://blog.openzeka.com/en/tag/8820/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Qwen3.8-27B on DGX Spark — 48 tok/s</title>
		<link>https://blog.openzeka.com/en/qwen3-8-27b-on-dgx-spark-48-tok-s/</link>
		
		<dc:creator><![CDATA[Enhar]]></dc:creator>
		<pubDate>Wed, 26 Aug 2026 10:23:50 +0000</pubDate>
				<category><![CDATA[Generative AI]]></category>
		<category><![CDATA[8669]]></category>
		<category><![CDATA[8673]]></category>
		<category><![CDATA[8820]]></category>
		<category><![CDATA[9043]]></category>
		<guid isPermaLink="false">https://blog.openzeka.com/en/?p=1977</guid>

					<description><![CDATA[<p>Qwen3.8-27B is a 27-billion-parameter language model r ... Continue Reading→</p>
<p>The post <a href="https://blog.openzeka.com/en/qwen3-8-27b-on-dgx-spark-48-tok-s/">Qwen3.8-27B on DGX Spark — 48 tok/s</a> appeared first on <a href="https://blog.openzeka.com/en">OpenZeka EN Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:1331.2px;margin-left: calc(-4% / 2 );margin-right: calc(-4% / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-1"><p>Qwen3.8-27B is a 27-billion-parameter language model released by Alibaba in August 2026. With a score of 52 on the Artificial Analysis Intelligence Index, it ranks first in its class among open-weight models under 40B parameters.</p>
<p>In this tutorial, you will run Qwen3.8-27B-NVFP4 on a single DGX Spark using the SGLang inference engine and the DFlash2 draft model for speculative decoding, reaching a generation speed of 48 tokens per second. SGLang loads the model&#8217;s trained weights into GPU memory and exposes an API that accepts external requests. sparkrun manages the Docker container and automates distribution of the model files.</p>
<p>The Spark can be used directly as a computer by connecting a monitor and keyboard, or it can operate as a server accessed remotely from another computer. In this tutorial, we will connect to the Spark remotely, set up the required software, and launch the model.</p>
<p>This tutorial is divided into four sections:</p>
<ul>
<li><strong>Setup:</strong> Pulling the Docker image and preparing the recipe</li>
<li><strong>Running:</strong> Starting, monitoring, and testing the model with sparkrun</li>
<li><strong>Benchmark:</strong> Performance measurements at different concurrency levels</li>
<li><strong>Shutdown:</strong> Stopping the services</li>
</ul>
<h2>Setup</h2>
<h3>1. Connecting to the Spark</h3>
<p>If this is your first time connecting to the Spark remotely, you first need to find its IP address. Connect a monitor and keyboard to the Spark, log in, and run the following command in a terminal:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-1 > .CodeMirror, .fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-1 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_1" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_1" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_1" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">ip route get 1.1.1.1 | grep -oP 'src \K\S+'</textarea></div><div class="fusion-text fusion-text-2"><p>&nbsp;</p>
<p>The command returns the IP address of the Spark&#8217;s default network interface:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-2 > .CodeMirror, .fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-2 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_2" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_2" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_2" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">192.168.1.148</textarea></div><div class="fusion-text fusion-text-3"><p>&nbsp;</p>
<p>Make a note of this address; throughout the tutorial, you will use it in place of <code></code>. Alternatively, you can find the IP address through the NVIDIA Sync application.</p>
<p>Make sure your computer is connected to the same network as the Spark. Then open a terminal on your computer and connect to the Spark over SSH:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-3 > .CodeMirror, .fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-3 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_3" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_3" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_3" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">ssh nvidia@<spark-ip></textarea></div><div class="fusion-text fusion-text-4"><p>&nbsp;</p>
<p><strong><a style="color: #00bc5e;" href="https://blog.openzeka.com/en/local-gpt-oss-120b-serving-on-dgx-spark-with-sparkrun/">Previous tutorials</a> </strong>covered the sparkrun installation process step by step. This tutorial assumes that sparkrun is already installed.</p>
<h3>2. Pulling the Docker Image</h3>
<p>Qwen3.8-27B&#8217;s hybrid architecture and DFlash2 speculative decoding feature requires a specialized SGLang image. This image is built from the SGLang mainline codebase and includes the required DFlash2 kernel patches.</p>
<p>Run the following command to pull the Docker image prepared by OpenZeka:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-4 > .CodeMirror, .fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-4 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_4" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_4" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_4" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">docker pull registry.cordata.ai/spark-cluster/sglang-qwen38-27b-dflash2:latest</textarea></div><div class="fusion-text fusion-text-5"><p>&nbsp;</p>
<p>Verify the image:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-5 > .CodeMirror, .fusion-syntax-highlighter-5 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-5 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_5" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_5" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_5" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">docker images registry.cordata.ai/spark-cluster/sglang-qwen38-27b-dflash2:latest</textarea></div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-6 > .CodeMirror, .fusion-syntax-highlighter-6 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-6 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_6" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_6" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_6" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">REPOSITORY                                            TAG       IMAGE ID        CREATED          SIZE
registry.cordata.ai/spark-cluster/sglang-qwen38-27b-dflash2      latest    c14312a66    2 minutes ago    57.3GB</textarea></div><div class="fusion-text fusion-text-6"><h3>3. Preparing the Recipe</h3>
<p>A recipe is a YAML file that defines how sparkrun should launch the model. The model, Docker image, SGLang flags, and memory settings are collected in a single file. For Qwen3.8-27B, this recipe runs the model on a single Spark with NVFP4 quantization, accelerates inference with DFlash2 speculative decoding using SGLang&#8217;s <code>--speculative-num-draft-tokens 8</code> configuration, and includes Mamba memory parameters specific to Qwen3.8&#8217;s hybrid architecture.</p>
<p>Save the recipe file using the following command:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-7 > .CodeMirror, .fusion-syntax-highlighter-7 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-7 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_7" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_7" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_7" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">cat > ~/qwen38-27b-dflash2.yaml << 'RECIPE'
# Qwen3.8-27B NVFP4 + DFlash2
# Usage:
#   sparkrun run ~/qwen38-27b-dflash2.yaml --rootful --no-follow --no-rm
recipe_version: "2"
model: RadixArk/Qwen3.8-27B-NVFP4-BF16-LMHead
runtime: sglang
container: registry.cordata.ai/spark-cluster/sglang-qwen38-27b-dflash2:latest

max_nodes: 1

metadata:
  model_dtype: nvfp4
  kv_dtype: fp8
  description: Qwen3.8-27B NVFP4 (BF16-LMHead) + DFlash2 — Ultimate single-Spark

defaults:
  port: 8000
  host: 0.0.0.0
  tensor_parallel: 1
  gpu_memory_utilization: 0.50
  served_model_name: qwen3.8-27b
  attention_backend: flashinfer
  speculative_algorithm: DFLASH
  speculative_draft_model_path: z-lab/Qwen3.8-27B-DFlash2
  speculative_num_draft_tokens: 8

env:
  HF_HUB_OFFLINE: "0"
  TORCHINDUCTOR_CACHE_DIR: /cache/inductor
  HF_HOME: /cache/huggingface
  HF_HUB_CACHE: /cache/huggingface/hub

command: |
  python3 -m sglang.launch_server \
    --trust-remote-code \
    --model-path {model} \
    --tp-size {tensor_parallel} \
    --served-model-name {served_model_name} \
    --mem-fraction-static {gpu_memory_utilization} \
    --attention-backend {attention_backend} \
    --chunked-prefill-size 8192 \
    --disable-prefill-cuda-graph \
    --kv-cache-dtype fp8_e4m3 \
    --mamba-ssm-dtype bfloat16 \
    --mamba-full-memory-ratio 4.21 \
    --mamba-radix-cache-strategy extra_buffer \
    --max-mamba-cache-size 64 \
    --max-running-requests 16 \
    --context-length 262144 \
    --speculative-algorithm {speculative_algorithm} \
    --speculative-draft-model-path {speculative_draft_model_path} \
    --speculative-draft-model-revision 50307d4c4cde6860d4eee73e2547cd786fe8e8a4 \
    --speculative-num-draft-tokens {speculative_num_draft_tokens} \
    --reasoning-parser qwen3 \
    --tool-call-parser qwen3_coder \
    --sampling-defaults model \
    --enable-metrics \
    --enable-cache-report \
    --stream-interval 1 \
    --host {host} \
    --port {port}
RECIPE
</textarea></div><div class="fusion-text fusion-text-7"><p>&nbsp;</p>
<p>Verify the file:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-8 > .CodeMirror, .fusion-syntax-highlighter-8 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-8 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_8" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_8" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_8" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">cat ~/qwen38-27b-dflash2.yaml</textarea></div><div class="fusion-text fusion-text-8"><p>&nbsp;</p>
<p>You should see the recipe file you just saved.</p>
<h2>Running</h2>
<h3>4. Pre-Launch Checks</h3>
<p>Verify that sparkrun parses the recipe correctly and that the memory budget is appropriate:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-9 > .CodeMirror, .fusion-syntax-highlighter-9 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-9 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_9" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_9" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_9" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">sparkrun show ~/qwen38-27b-dflash2.yaml
</textarea></div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-10 > .CodeMirror, .fusion-syntax-highlighter-10 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-10 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_10" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_10" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_10" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">Name:         /home/nvidia/qwen38-27b-dflash2.yaml
Description:  Qwen3.8-27B NVFP4 (packed FP4) + DFlash2 — Ultimate single-Spark
Runtime:      sglang
Model:        RadixArk/Qwen3.8-27B-NVFP4-BF16-LMHead
Container:    registry.cordata.ai/spark-cluster/sglang-qwen38-27b-dflash2:latest
Nodes:        1

.....
.....
.....

VRAM Estimation:
  Model dtype:      nvfp4
  KV cache dtype:   fp8
  Architecture:     64 layers, 4 KV heads, 256 head_dim
  Model weights:    21.9 GB
  Tensor parallel:  1
  Per-GPU total:    21.9 GB
  DGX Spark fit:    YES

  GPU Memory Budget:
    gpu_memory_utilization: 50%
    Usable GPU memory:     60.5 GB (121 GB x 50%)
    Available for KV:      38.6 GB
    Max context tokens:    478,483
</textarea></div><div class="fusion-text fusion-text-9"><p>&nbsp;</p>
<p>sparkrun has parsed the recipe correctly and confirms that the configuration fits on the DGX Spark with <code>DGX Spark fit: YES</code>.</p>
<h3>5. Starting the Model</h3>
<p>Now start the model:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-11 > .CodeMirror, .fusion-syntax-highlighter-11 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-11 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_11" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_11" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_11" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">sparkrun run ~/qwen38-27b-dflash2.yaml --rootful --no-follow --no-rm
</textarea></div><div class="fusion-text fusion-text-10"><p>&nbsp;</p>
<p>sparkrun automatically synchronizes the image and models to the Spark, skipping any resources that are already present, and then starts the container.</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-12 > .CodeMirror, .fusion-syntax-highlighter-12 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-12 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_12" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_12" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_12" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">sparkrun v0.3.4

Runtime:   sglang
Image:     registry.cordata.ai/spark-cluster/sglang-qwen38-27b-dflash2:latest
Model:     RadixArk/Qwen3.8-27B-NVFP4-BF16-LMHead
Mode:      solo
Platform:  DGX Spark (NVIDIA GB10, NCCL)
Scheduler: occupancy-sparse

VRAM Estimation:
  Model dtype:      nvfp4
  KV cache dtype:   fp8
  Architecture:     64 layers, 4 KV heads, 256 head_dim
  Model weights:    21.9 GB
  Tensor parallel:  1
  Per-GPU total:    21.9 GB
  DGX Spark fit:    YES

  GPU Memory Budget:
    gpu_memory_utilization: 50%
    Usable GPU memory:     60.5 GB (121 GB x 50%)
    Available for KV:      38.6 GB
    Max context tokens:    478,483

Hosts:     default cluster 'default'
  Target:  <spark-ip>

[1/6] Preparing
  done (0.0s)
[2/6] Building — skipped (no builder)
[3/6] Distributing resources
  Distributing image registry.cordata.ai/spark-cluster/sglang-qwen38-27b-dflash2:latest to 1 host(s)
  Distributing model RadixArk/Qwen3.8-27B-NVFP4-BF16-LMHead to 1 host(s)
  Distributing model z-lab/Qwen3.8-27B-DFlash2 to 1 host(s)
  done (2.5s)
[4/6] Syncing tuning configs
  done (0.0s)
[5/6] Launching sglang runtime
  Step 1/3: Detecting InfiniBand
  Step 2/3: Launching container
  Step 3/3: Executing serve command
  done (7.5s)
[6/6] Post-launch hooks — skipped
</textarea></div><div class="fusion-text fusion-text-11"><p>&nbsp;</p>
<p>sparkrun successfully completed all six steps and reports <code>Mode: solo</code>. It synchronized the image and both models—the target model and the draft model—to the Spark.</p>
<p>Downloading the model files and bringing SGLang to a ready state may take several minutes. During this process, SGLang loads the model weights into GPU memory, initializes the DFlash2 draft model, and captures CUDA graphs.</p>
<h3>6. Monitoring the Logs</h3>
<p>To monitor the SGLang logs, run:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-13 > .CodeMirror, .fusion-syntax-highlighter-13 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-13 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_13" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_13" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_13" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">sparkrun logs ~/qwen38-27b-dflash2.yaml
</textarea></div><div class="fusion-text fusion-text-12"><p>&nbsp;</p>
<p>You should see output similar to the following:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-14 > .CodeMirror, .fusion-syntax-highlighter-14 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-14 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_14" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_14" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_14" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">[2026-08-25 10:43:59] DFLASH only supports speculative_num_steps == 1; overriding speculative_num_steps=3 to 1.
[2026-08-25 10:44:17] Load weight begin. avail mem=113.57 GB
[2026-08-25 10:49:26] Load weight end. elapsed=308.46 s, type=Qwen3_5ForConditionalGeneration, quant=modelopt_mixed, quant_algo=MIXED_PRECISION, avail mem=91.44 GB, mem usage=22.14 GB.
[2026-08-25 10:49:31] Load weight begin. avail mem=91.23 GB
[2026-08-25 10:49:59] Load weight end. elapsed=28.12 s, type=DFlash2DraftModel, avail mem=87.82 GB, mem usage=3.41 GB.
[2026-08-25 10:50:00] Initialized DFLASH draft runner. attention_backend=flashinfer, model=DFlash2DraftModel, block_size=8, draft_window_size=None, compact_cache=False
[2026-08-25 10:50:00] DFLASH draft runner ready. mask_token=<|MASK|>, mask_token_id=248070, mask_token_id_override=248070, noise_embed_scale=1.0
[2026-08-25 10:50:00] DFLASH fused KV materialization enabled. n_layers=5, num_kv_heads=8, head_dim=128
[2026-08-25 10:50:00] max_running_requests is capped to 12 by the mamba state cache (max_mamba_cache_size=64, 5 state slots per request). To raise it: increase --mamba-full-memory-ratio or --max-mamba-cache-size, or halve the state size with --mamba-ssm-dtype bfloat16.
[2026-08-25 10:50:00] Mamba Cache is allocated. max_mamba_cache_size: 64, conv_state size: 0.18GB, ssm_state size: 4.57GB intermediate_ssm_state_cache size: 7.31GB intermediate_conv_window_cache size: 0.12GB
[2026-08-25 10:50:15] Capture target verify CUDA graph begin. backend=full, num_tokens_per_req=8, bs=[1, 2, 3, 4, 5, 6, 7, 8, 10, 12], avail mem=54.20 GB
[2026-08-25 10:50:18] Capture target verify CUDA graph end. elapsed=3.53 s, mem usage=0.71 GB, avail mem=53.49 GB.
[2026-08-25 10:50:18] DFLASH draft greedy head kept eager (reason=quantized lm_head).
[2026-08-25 10:50:18] Capture draft verify CUDA graph begin. backend=full, num_tokens_per_req=8, bs=[1, 2, 3, 4, 5, 6, 7, 8, 10, 12], avail mem=53.49 GB
[2026-08-25 10:50:22] Capture draft verify CUDA graph end. elapsed=3.36 s, mem usage=0.74 GB, avail mem=52.74 GB.
[2026-08-25 10:50:22] max_total_num_tokens=460797, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=12, context_len=262144, available_gpu_mem=52.74 GB
[2026-08-25 10:50:22] INFO:     Application startup complete.
[2026-08-25 10:50:25] The server is fired up and ready to roll!
</textarea></div><div class="fusion-text fusion-text-13"><p>&nbsp;</p>
<p>Once you see <code>Application startup complete.</code> and <code>The server is fired up and ready to roll!</code>, the model server is ready.</p>
<h3>7. Health Check</h3>
<p>Verify that the server is running:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-15 > .CodeMirror, .fusion-syntax-highlighter-15 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-15 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_15" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_15" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_15" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">curl -s -o /dev/null -w "HTTP %{http_code}" http://<spark-ip>:8000/health
</textarea></div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-16 > .CodeMirror, .fusion-syntax-highlighter-16 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-16 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_16" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_16" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_16" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">HTTP 200
</textarea></div><div class="fusion-text fusion-text-14"><p>&nbsp;</p>
<p>An <code>HTTP 200</code> response indicates that the server is healthy.</p>
<p>Qwen3.8-27B is now running and being served from port 8000 on the Spark.</p>
<h2>Benchmark</h2>
<p>We benchmarked Qwen3.8-27B running on a single Spark at different concurrency levels. The measurements record average TTFT (Time to First Token—the latency until the first output token is returned) and average TPS (Tokens Per Second—the token generation rate).</p>
<ul>
<li><strong>Concurrency 1</strong> &#8212; Avg. TTFT: 232 ms, Avg. TPS: 47.9 tok/s</li>
<li><strong>Concurrency 2</strong> &#8212; Avg. TTFT: 320 ms, Avg. TPS: 39.8 tok/s</li>
<li><strong>Concurrency 4</strong> &#8212; Avg. TTFT: 343 ms, Avg. TPS: 35.6 tok/s</li>
<li><strong>Concurrency 8</strong> &#8212; Avg. TTFT: 389 ms, Avg. TPS: 27.6 tok/s</li>
</ul>
<p>At concurrency 1, the model generates an average of 47.9 tokens per second. Even at concurrency 8, it remains above 25 tokens per second while keeping TTFT below 400 ms, making the configuration suitable for workloads with high request concurrency.</p>
<p>The measurements were collected using the <a href="https://github.com/CordatusAI/llm-benchmark">CordatusAI LLM Benchmark Tool</a>: 128 input tokens, 128 output tokens, averaged over 10 rounds per concurrency level, with the validity criterion <code>TTFT &lt; 1000 ms AND TPS &gt;= 15 tok/s</code>. The tool, developed by CordatusAI, is a benchmarking application for testing LLM servers that expose OpenAI-compatible APIs.</p>
<h2>Shutdown</h2>
<p>When you are finished, stop the model:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-17 > .CodeMirror, .fusion-syntax-highlighter-17 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-17 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_17" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_17" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_17" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">sparkrun stop ~/qwen38-27b-dflash2.yaml
</textarea></div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-18 > .CodeMirror, .fusion-syntax-highlighter-18 > .CodeMirror .CodeMirror-gutters {background-color:#2b2b2b;}</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-18 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:rgba(242,243,245,0);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_18" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_18" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_18" data-readOnly="nocursor" data-lineNumbers="" data-lineWrapping="" data-theme="oceanic-next" data-mode="text/x-sh">Workload stopped on 1 host(s).
</textarea></div><div class="fusion-text fusion-text-15"><p>&nbsp;</p>
<p>This command stops the container and releases the memory it was using. The container, Docker image, and model files remain on disk, so you do not need to download them again the next time you start the service. Simply run the <code>sparkrun run</code> command from Step 5 again.</p>
</div></div></div></div></div>
<p>The post <a href="https://blog.openzeka.com/en/qwen3-8-27b-on-dgx-spark-48-tok-s/">Qwen3.8-27B on DGX Spark — 48 tok/s</a> appeared first on <a href="https://blog.openzeka.com/en">OpenZeka EN Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
