{
  "@context": "https://schema.org",
  "@id": "https://aggr.aymericbeaumet.com/items/zml-ai/2026-07-08-zml-llmd-alpha/#webpage",
  "@type": [
    "WebPage",
    "ArchiveComponent"
  ],
  "articleBody": "Today we’re releasing ZML/LLMD. It’s a self-contained inference server that runs LLaMa, Gemma, Qwen and Mistral LLMs transparently on **5 architectures**: **NVIDIA CUDA**, **AMD ROCm**, **Google TPU**, **Intel oneAPI** and **Apple Metal**.\n\n![](https://zml.ai/posts/llmd/llmd1.png)\n\n## Modern serving features\n\nZML/LLMD supports modern serving features: **continuous batching**, **paged attention**, **tensor parallel sharding**, **prefix caching**, **tool calling** and does so on **all platforms**.\n\nMetrics are also exposed in the Prometheus format via the `/metrics` endpoint.\n\n## Supported models\n\nZML/LLMD alpha ships with support for the following models:\n\n- Qwen 2, 3, 3.5 and 3.6 series (dense and MoE)\n- Gemma 3 and 4 series (dense and MoE)\n- LFM2.5 series\n- Mistral 3 and Ministral series\n- LLaMa 2 and 3 series\n\nDeepSeek, Kimi, GLM, MiniMax and StepFun models are coming soon.\n\n## Native HuggingFace, S3 and GCS support\n\nBuilt on ZML, ZML/LLMD has native support for ZML’s VFS subsystem, which allows for zero-copy loading of models from HuggingFace (`hf://`), S3 (`s3://`), and GCS (`gs://`). This means that you can load models directly from these sources without having to download them first, saving time and storage space. Authentication is handled with the standard environment or paths for each backend.\n\nFor instance, loading from HuggingFace is as simple as using the `hf://` prefix on any flag that expects a path:\n\n```bash\n$ docker run -p 8000:8000 --shm-size=256GB --gpus=all -e HF_TOKEN -it zmlai/llmd:cuda \\\n    --model=hf://Qwen/Qwen3-8B\n```\n\nNotice we’re also passing the `HF_TOKEN` environment variable to authenticate.\n\n## DFlash speculative decoding\n\nZML/LLMD alpha ships with native support for DFlash on Gemma 4 series and soon Qwen series models. DFlash is a new speculative decoding algorithm that can speed up tok/s/user by **up to 10x** on supported models.\n\nTo use it, just pass the `--dflash-model` flag when launching LLMD:\n\n```bash\n$ docker run -p 8000:8000 --shm-size=256GB --gpus=all -e HF_TOKEN -it zmlai/llmd:cuda \\\n    --model=hf://google/gemma-4-31B-it \\\n    --dflash-model=hf://z-lab/gemma-4-31B-it-DFlash\n```\n\nOne nice benefit of ZML’s programming model is the compounding of features across platforms. For instance, DFlash transparently runs very well on Intel and Apple GPUs.\n\nRead about DFlash [on the Z-Lab blog](https://z-lab.ai/projects/dflash/) and the [currently released DFlash drafters](https://huggingface.co/collections/z-lab/dflash).\n\n## Optimized Docker image\n\nOn each platform, ZML/LLMD ships the platform runtime as part of the image in a sandboxed manner. Per file optimization reduces image sizes by 5-10x. On top of that careful ordering of layers and custom compression improves `docker pull` time by using download/extraction overlapping.\n\nThe result is a small image that can be pulled and run in seconds:\n\n```bash\n$ time docker pull zmlai/llmd:cuda\ncuda: Pulling from zmlai/llmd\n...\nStatus: Downloaded newer image for zmlai/llmd:cuda\ndocker.io/zmlai/llmd:cuda\n\nreal    0m13.766s\nuser    0m0.021s\nsys     0m0.022s\n```\n\n| Platform   | Image                       | Size       |\n| ---------- | --------------------------- | ---------- |\n| **CUDA**   | `zmlai/llmd:cuda`           | **1.7 GB** |\n| **ROCm**   | `zmlai/llmd:rocm`           | **3.9 GB** |\n| **TPU**    | `zmlai/llmd:tpu`            | **280 MB** |\n| **OneAPI** | `zmlai/llmd:oneapi`         | **350 MB** |\n| **Metal**  | `brew install zml/zml/llmd` | **140 MB** |\n\nEach image ships with everything it needs to run. For instance on Metal the Apple Metal compiler is shipped in the archive, or ROCm itself in the AMD image.\n\n### Built-in CUDA Compatibility\n\nOn the CUDA platform, ZML/LLMD ships with the [CUDA Compatibility layer](https://docs.nvidia.com/deploy/cuda-compatibility/latest/why-cuda-compatibility.html) transparently built-in that enables ZML/LLMD to run on a wide range of driver versions without intervention.\n\nThis feature doesn’t require any special configuration as the probe is done automatically at runtime. It is also fully sandboxed and doesn’t require any system libraries to be installed.\n\n## Automatic sharding support\n\nZML/LLMD supports tensor parallel inference on all platforms. It automatically shards the model across multiple devices and handles the communication between them transparently.\n\nCurrently only tensor or expert parallel sharding is supported. More control will be added in the near future, for instance pipeline parallelism.\n\n## Python-free Execution Path\n\nZML/LLMD runs on ZML’s own ML framework, ZML, built with Zig, MLIR, OpenXLA. It compiles binaries and runtimes ahead of time into a single, hermetic artifact. Since the ZML programming model is explicit compilation passes, once compiled, there are no hidden compilation happening in the hot path. Latencies are flat and predictable.\n\n## Performance\n\n### google/gemma-4-26B-A4B-it (bs=16)\n\n| NVIDIA H100x2 | Avg     | Min   | Max    | P50    | P75    | P90   | P95   | P99    | P99.9 |\n| ------------- | ------- | ----- | ------ | ------ | ------ | ----- | ----- | ------ | ----- |\n| TTFT (ms)     | 127.64  | 70.39 | 162.08 | 141.91 | 142.04 | 142.1 | 143.1 | 158.28 | 161.7 |\n| ITL (ms)      | 12.03   | 0.01  | 85.58  | 11.67  | 12.28  | 13.14 | 16.35 | 68.24  | 74.42 |\n| Total tok/s   | 1317.93 |       |        |        |        |       |       |        |       |\n\n| Intel B70x2 | Avg    | Min    | Max    | P50    | P75   | P90    | P95    | P99    | P99.9   |\n| ----------- | ------ | ------ | ------ | ------ | ----- | ------ | ------ | ------ | ------- |\n| TTFT (ms)   | 426.05 | 117.36 | 1027.4 | 375.38 | 375.4 | 612.75 | 850.48 | 992.01 | 1023.86 |\n| ITL (ms)    | 81.83  | 0.03   | 499.75 | 81.62  | 82.72 | 83.7   | 84.17  | 84.6   | 279.99  |\n| Total tok/s | 179.31 |        |        |        |       |        |        |        |         |\n\n| AMD MI300X  | Avg    | Min  | Max    | P50   | P75    | P90    | P95    | P99    | P99.9  |\n| ----------- | ------ | ---- | ------ | ----- | ------ | ------ | ------ | ------ | ------ |\n| TTFT (ms)   | 101.86 | 36.3 | 145.35 | 109.7 | 109.76 | 110.39 | 116.76 | 139.63 | 144.77 |\n| ITL (ms)    | 18.52  | 0.02 | 69.33  | 18.4  | 18.82  | 19.12  | 19.26  | 40.41  | 47.75  |\n| Total tok/s | 858.8  |      |        |       |        |        |        |        |        |\n\n| M3 Max      | Avg     | Min     | Max     | P50     | P75    | P90     | P95    | P99     | P99.9   |\n| ----------- | ------- | ------- | ------- | ------- | ------ | ------- | ------ | ------- | ------- |\n| TTFT (ms)   | 2364.71 | 1840.79 | 2608.73 | 2411.42 | 2411.5 | 2470.67 | 2539.7 | 2594.92 | 2607.35 |\n| ITL (ms)    | 67.01   | 25.81   | 196.99  | 67.02   | 70.63  | 74.5    | 77.41  | 85.19   | 104.45  |\n| Total tok/s | 109.59  |         |         |         |        |         |        |         |         |\n\n### google/gemma-4-31B-it + z-lab/gemma-4-31B-it-DFlash (bs=16)\n\n| TPU v6ex4   | Avg    | Min   | Max    | P50    | P75    | P90    | P95    | P99    | P99.9  |\n| ----------- | ------ | ----- | ------ | ------ | ------ | ------ | ------ | ------ | ------ |\n| TTFT (ms)   | 137.64 | 25.36 | 187.67 | 137.79 | 137.82 | 158.75 | 187.17 | 187.57 | 187.66 |\n| ITL (ms)    | 16.73  | 0.01  | 345.35 | 0.02   | 0.08   | 71.85  | 73.76  | 75.63  | 323.83 |\n| Total tok/s | 943.7  |       |        |        |        |        |        |        |        |\n\n| AMD MI300X  | Avg    | Min   | Max    | P50    | P75    | P90    | P95    | P99    | P99.9  |\n| ----------- | ------ | ----- | ------ | ------ | ------ | ------ | ------ | ------ | ------ |\n| TTFT (ms)   | 254.95 | 57.23 | 368.84 | 268.09 | 268.14 | 268.23 | 283.34 | 351.74 | 367.13 |\n| ITL (ms)    | 21.51  | 0.01  | 140.15 | 0.02   | 0.03   | 91.55  | 93.82  | 109.29 | 139.67 |\n| Total tok/s | 731.8  |       |        |        |        |        |        |        |        |\n\n### Qwen/Qwen3.6-27B (bs=8)\n\n| M3 Max      | Avg    | Min     | Max     | P50     | P75     | P90     | P95     | P99     | P99.9   |\n| ----------- | ------ | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- |\n| TTFT (ms)   | 6052.4 | 2684.92 | 7285.46 | 6408.14 | 6408.16 | 6671.36 | 6978.41 | 7224.05 | 7279.32 |\n| ITL (ms)    | 183.96 | 3.33    | 876.88  | 183.83  | 185.05  | 186.34  | 187.62  | 196.88  | 208.71  |\n| Total tok/s | 33.5   |         |         |         |         |         |         |         |         |\n\n| AMD MI300X  | Avg    | Min  | Max    | P50    | P75    | P90    | P95    | P99    | P99.9  |\n| ----------- | ------ | ---- | ------ | ------ | ------ | ------ | ------ | ------ | ------ |\n| TTFT (ms)   | 259.71 | 68.5 | 357.55 | 241.55 | 270.58 | 357.51 | 357.54 | 357.55 | 357.55 |\n| ITL (ms)    | 30.97  | 0.01 | 115.9  | 31.02  | 31.15  | 31.24  | 31.29  | 31.42  | 34.38  |\n| Total tok/s | 511.6  |      |        |        |        |        |        |        |        |\n\n### Fast cold start\n\nZML/LLMD has been designed from the ground up to have fast cold start times, as shown here with Qwen 3.6-27B BF16:\n\n## Give it a try\n\nRun ZML/LLMD and point your favorite harness to it.\n\n**NVIDIA**\n\n```bash\ndocker run -p 8000:8000 --shm-size=256GB --gpus=all -e HF_TOKEN -it zmlai/llmd:cuda \\\n    --model=hf://Qwen/Qwen3.6-27B\n```\n\n**AMD**\n\n```bash\ndocker run -p 8000:8000 --device=/dev/kfd --device=/dev/dri -e HF_TOKEN -it zmlai/llmd:rocm \\\n    --model=hf://Qwen/Qwen3.6-27B\n```\n\n**Intel**\n\n```bash\ndocker run -p 8000:8000 --device=/dev/dri -e HF_TOKEN -it zmlai/llmd:oneapi \\\n    --model=hf://Qwen/Qwen3.6-27B\n```\n\n**Google TPU**\n\n```bash\ndocker run --net=host --privileged -e HF_TOKEN -it zmlai/llmd:tpu \\\n    --model=hf://Qwen/Qwen3.6-27B\n```\n\n**Apple Metal**\n\n```bash\nbrew install zml/zml/llmd\nllmd --model=hf://Qwen/Qwen3.6-27B\n```\n",
  "authors": [],
  "captured_at": "2026-09-08T10:17:10.166315+00:00",
  "category": "ai",
  "content_html": "<p>Today we’re releasing ZML/LLMD. It’s a self-contained inference server that runs LLaMa, Gemma, Qwen and Mistral LLMs transparently on <strong>5 architectures</strong>: <strong>NVIDIA CUDA</strong>, <strong>AMD ROCm</strong>, <strong>Google TPU</strong>, <strong>Intel oneAPI</strong> and <strong>Apple Metal</strong>.</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://zml.ai/posts/llmd/llmd1.png\" alt=\"\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<h2>Modern serving features</h2>\n<p>ZML/LLMD supports modern serving features: <strong>continuous batching</strong>, <strong>paged attention</strong>, <strong>tensor parallel sharding</strong>, <strong>prefix caching</strong>, <strong>tool calling</strong> and does so on <strong>all platforms</strong>.</p>\n<p>Metrics are also exposed in the Prometheus format via the <code>/metrics</code> endpoint.</p>\n<h2>Supported models</h2>\n<p>ZML/LLMD alpha ships with support for the following models:</p>\n<ul>\n<li>Qwen 2, 3, 3.5 and 3.6 series (dense and MoE)</li>\n<li>Gemma 3 and 4 series (dense and MoE)</li>\n<li>LFM2.5 series</li>\n<li>Mistral 3 and Ministral series</li>\n<li>LLaMa 2 and 3 series</li>\n</ul>\n<p>DeepSeek, Kimi, GLM, MiniMax and StepFun models are coming soon.</p>\n<h2>Native HuggingFace, S3 and GCS support</h2>\n<p>Built on ZML, ZML/LLMD has native support for ZML’s VFS subsystem, which allows for zero-copy loading of models from HuggingFace (<code>hf://</code>), S3 (<code>s3://</code>), and GCS (<code>gs://</code>). This means that you can load models directly from these sources without having to download them first, saving time and storage space. Authentication is handled with the standard environment or paths for each backend.</p>\n<p>For instance, loading from HuggingFace is as simple as using the <code>hf://</code> prefix on any flag that expects a path:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">$</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> docker run<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>p</span> 8000:8000<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>shm-size</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>256GB<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>gpus</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>all<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>e</span> HF_TOKEN<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>it</span> zmlai/llmd:cuda <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>model</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>hf://Qwen/Qwen3-8B</span>\n</span></span></code></pre>\n<p>Notice we’re also passing the <code>HF_TOKEN</code> environment variable to authenticate.</p>\n<h2>DFlash speculative decoding</h2>\n<p>ZML/LLMD alpha ships with native support for DFlash on Gemma 4 series and soon Qwen series models. DFlash is a new speculative decoding algorithm that can speed up tok/s/user by <strong>up to 10x</strong> on supported models.</p>\n<p>To use it, just pass the <code>--dflash-model</code> flag when launching LLMD:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">$</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> docker run<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>p</span> 8000:8000<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>shm-size</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>256GB<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>gpus</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>all<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>e</span> HF_TOKEN<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>it</span> zmlai/llmd:cuda <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>model</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>hf://google/gemma-4-31B-it <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>dflash-model</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>hf://z-lab/gemma-4-31B-it-DFlash</span>\n</span></span></code></pre>\n<p>One nice benefit of ZML’s programming model is the compounding of features across platforms. For instance, DFlash transparently runs very well on Intel and Apple GPUs.</p>\n<p>Read about DFlash <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://z-lab.ai/projects/dflash/\">on the Z-Lab blog</a> and the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/collections/z-lab/dflash\">currently released DFlash drafters</a>.</p>\n<h2>Optimized Docker image</h2>\n<p>On each platform, ZML/LLMD ships the platform runtime as part of the image in a sandboxed manner. Per file optimization reduces image sizes by 5-10x. On top of that careful ordering of layers and custom compression improves <code>docker pull</code> time by using download/extraction overlapping.</p>\n<p>The result is a small image that can be pulled and run in seconds:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">$</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> time docker pull zmlai/llmd:cuda</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">cuda:</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> Pulling from zmlai/llmd</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">...</span></span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Status:</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> Downloaded newer image for zmlai/llmd:cuda</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">docker.io/zmlai/llmd:cuda</span></span>\n\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">real</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\">    0m13.766s</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">user</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\">    0m0.021s</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">sys</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\">     0m0.022s</span>\n</span></span></code></pre>\n<table>\n<thead>\n<tr>\n<th>Platform</th>\n<th>Image</th>\n<th>Size</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>CUDA</strong></td>\n<td><code>zmlai/llmd:cuda</code></td>\n<td><strong>1.7 GB</strong></td>\n</tr>\n<tr>\n<td><strong>ROCm</strong></td>\n<td><code>zmlai/llmd:rocm</code></td>\n<td><strong>3.9 GB</strong></td>\n</tr>\n<tr>\n<td><strong>TPU</strong></td>\n<td><code>zmlai/llmd:tpu</code></td>\n<td><strong>280 MB</strong></td>\n</tr>\n<tr>\n<td><strong>OneAPI</strong></td>\n<td><code>zmlai/llmd:oneapi</code></td>\n<td><strong>350 MB</strong></td>\n</tr>\n<tr>\n<td><strong>Metal</strong></td>\n<td><code>brew install zml/zml/llmd</code></td>\n<td><strong>140 MB</strong></td>\n</tr>\n</tbody>\n</table>\n<p>Each image ships with everything it needs to run. For instance on Metal the Apple Metal compiler is shipped in the archive, or ROCm itself in the AMD image.</p>\n<h3>Built-in CUDA Compatibility</h3>\n<p>On the CUDA platform, ZML/LLMD ships with the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.nvidia.com/deploy/cuda-compatibility/latest/why-cuda-compatibility.html\">CUDA Compatibility layer</a> transparently built-in that enables ZML/LLMD to run on a wide range of driver versions without intervention.</p>\n<p>This feature doesn’t require any special configuration as the probe is done automatically at runtime. It is also fully sandboxed and doesn’t require any system libraries to be installed.</p>\n<h2>Automatic sharding support</h2>\n<p>ZML/LLMD supports tensor parallel inference on all platforms. It automatically shards the model across multiple devices and handles the communication between them transparently.</p>\n<p>Currently only tensor or expert parallel sharding is supported. More control will be added in the near future, for instance pipeline parallelism.</p>\n<h2>Python-free Execution Path</h2>\n<p>ZML/LLMD runs on ZML’s own ML framework, ZML, built with Zig, MLIR, OpenXLA. It compiles binaries and runtimes ahead of time into a single, hermetic artifact. Since the ZML programming model is explicit compilation passes, once compiled, there are no hidden compilation happening in the hot path. Latencies are flat and predictable.</p>\n<h2>Performance</h2>\n<h3>google/gemma-4-26B-A4B-it (bs=16)</h3>\n<table>\n<thead>\n<tr>\n<th>NVIDIA H100x2</th>\n<th>Avg</th>\n<th>Min</th>\n<th>Max</th>\n<th>P50</th>\n<th>P75</th>\n<th>P90</th>\n<th>P95</th>\n<th>P99</th>\n<th>P99.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTFT (ms)</td>\n<td>127.64</td>\n<td>70.39</td>\n<td>162.08</td>\n<td>141.91</td>\n<td>142.04</td>\n<td>142.1</td>\n<td>143.1</td>\n<td>158.28</td>\n<td>161.7</td>\n</tr>\n<tr>\n<td>ITL (ms)</td>\n<td>12.03</td>\n<td>0.01</td>\n<td>85.58</td>\n<td>11.67</td>\n<td>12.28</td>\n<td>13.14</td>\n<td>16.35</td>\n<td>68.24</td>\n<td>74.42</td>\n</tr>\n<tr>\n<td>Total tok/s</td>\n<td>1317.93</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<table>\n<thead>\n<tr>\n<th>Intel B70x2</th>\n<th>Avg</th>\n<th>Min</th>\n<th>Max</th>\n<th>P50</th>\n<th>P75</th>\n<th>P90</th>\n<th>P95</th>\n<th>P99</th>\n<th>P99.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTFT (ms)</td>\n<td>426.05</td>\n<td>117.36</td>\n<td>1027.4</td>\n<td>375.38</td>\n<td>375.4</td>\n<td>612.75</td>\n<td>850.48</td>\n<td>992.01</td>\n<td>1023.86</td>\n</tr>\n<tr>\n<td>ITL (ms)</td>\n<td>81.83</td>\n<td>0.03</td>\n<td>499.75</td>\n<td>81.62</td>\n<td>82.72</td>\n<td>83.7</td>\n<td>84.17</td>\n<td>84.6</td>\n<td>279.99</td>\n</tr>\n<tr>\n<td>Total tok/s</td>\n<td>179.31</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<table>\n<thead>\n<tr>\n<th>AMD MI300X</th>\n<th>Avg</th>\n<th>Min</th>\n<th>Max</th>\n<th>P50</th>\n<th>P75</th>\n<th>P90</th>\n<th>P95</th>\n<th>P99</th>\n<th>P99.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTFT (ms)</td>\n<td>101.86</td>\n<td>36.3</td>\n<td>145.35</td>\n<td>109.7</td>\n<td>109.76</td>\n<td>110.39</td>\n<td>116.76</td>\n<td>139.63</td>\n<td>144.77</td>\n</tr>\n<tr>\n<td>ITL (ms)</td>\n<td>18.52</td>\n<td>0.02</td>\n<td>69.33</td>\n<td>18.4</td>\n<td>18.82</td>\n<td>19.12</td>\n<td>19.26</td>\n<td>40.41</td>\n<td>47.75</td>\n</tr>\n<tr>\n<td>Total tok/s</td>\n<td>858.8</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<table>\n<thead>\n<tr>\n<th>M3 Max</th>\n<th>Avg</th>\n<th>Min</th>\n<th>Max</th>\n<th>P50</th>\n<th>P75</th>\n<th>P90</th>\n<th>P95</th>\n<th>P99</th>\n<th>P99.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTFT (ms)</td>\n<td>2364.71</td>\n<td>1840.79</td>\n<td>2608.73</td>\n<td>2411.42</td>\n<td>2411.5</td>\n<td>2470.67</td>\n<td>2539.7</td>\n<td>2594.92</td>\n<td>2607.35</td>\n</tr>\n<tr>\n<td>ITL (ms)</td>\n<td>67.01</td>\n<td>25.81</td>\n<td>196.99</td>\n<td>67.02</td>\n<td>70.63</td>\n<td>74.5</td>\n<td>77.41</td>\n<td>85.19</td>\n<td>104.45</td>\n</tr>\n<tr>\n<td>Total tok/s</td>\n<td>109.59</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3>google/gemma-4-31B-it + z-lab/gemma-4-31B-it-DFlash (bs=16)</h3>\n<table>\n<thead>\n<tr>\n<th>TPU v6ex4</th>\n<th>Avg</th>\n<th>Min</th>\n<th>Max</th>\n<th>P50</th>\n<th>P75</th>\n<th>P90</th>\n<th>P95</th>\n<th>P99</th>\n<th>P99.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTFT (ms)</td>\n<td>137.64</td>\n<td>25.36</td>\n<td>187.67</td>\n<td>137.79</td>\n<td>137.82</td>\n<td>158.75</td>\n<td>187.17</td>\n<td>187.57</td>\n<td>187.66</td>\n</tr>\n<tr>\n<td>ITL (ms)</td>\n<td>16.73</td>\n<td>0.01</td>\n<td>345.35</td>\n<td>0.02</td>\n<td>0.08</td>\n<td>71.85</td>\n<td>73.76</td>\n<td>75.63</td>\n<td>323.83</td>\n</tr>\n<tr>\n<td>Total tok/s</td>\n<td>943.7</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<table>\n<thead>\n<tr>\n<th>AMD MI300X</th>\n<th>Avg</th>\n<th>Min</th>\n<th>Max</th>\n<th>P50</th>\n<th>P75</th>\n<th>P90</th>\n<th>P95</th>\n<th>P99</th>\n<th>P99.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTFT (ms)</td>\n<td>254.95</td>\n<td>57.23</td>\n<td>368.84</td>\n<td>268.09</td>\n<td>268.14</td>\n<td>268.23</td>\n<td>283.34</td>\n<td>351.74</td>\n<td>367.13</td>\n</tr>\n<tr>\n<td>ITL (ms)</td>\n<td>21.51</td>\n<td>0.01</td>\n<td>140.15</td>\n<td>0.02</td>\n<td>0.03</td>\n<td>91.55</td>\n<td>93.82</td>\n<td>109.29</td>\n<td>139.67</td>\n</tr>\n<tr>\n<td>Total tok/s</td>\n<td>731.8</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3>Qwen/Qwen3.6-27B (bs=8)</h3>\n<table>\n<thead>\n<tr>\n<th>M3 Max</th>\n<th>Avg</th>\n<th>Min</th>\n<th>Max</th>\n<th>P50</th>\n<th>P75</th>\n<th>P90</th>\n<th>P95</th>\n<th>P99</th>\n<th>P99.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTFT (ms)</td>\n<td>6052.4</td>\n<td>2684.92</td>\n<td>7285.46</td>\n<td>6408.14</td>\n<td>6408.16</td>\n<td>6671.36</td>\n<td>6978.41</td>\n<td>7224.05</td>\n<td>7279.32</td>\n</tr>\n<tr>\n<td>ITL (ms)</td>\n<td>183.96</td>\n<td>3.33</td>\n<td>876.88</td>\n<td>183.83</td>\n<td>185.05</td>\n<td>186.34</td>\n<td>187.62</td>\n<td>196.88</td>\n<td>208.71</td>\n</tr>\n<tr>\n<td>Total tok/s</td>\n<td>33.5</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<table>\n<thead>\n<tr>\n<th>AMD MI300X</th>\n<th>Avg</th>\n<th>Min</th>\n<th>Max</th>\n<th>P50</th>\n<th>P75</th>\n<th>P90</th>\n<th>P95</th>\n<th>P99</th>\n<th>P99.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTFT (ms)</td>\n<td>259.71</td>\n<td>68.5</td>\n<td>357.55</td>\n<td>241.55</td>\n<td>270.58</td>\n<td>357.51</td>\n<td>357.54</td>\n<td>357.55</td>\n<td>357.55</td>\n</tr>\n<tr>\n<td>ITL (ms)</td>\n<td>30.97</td>\n<td>0.01</td>\n<td>115.9</td>\n<td>31.02</td>\n<td>31.15</td>\n<td>31.24</td>\n<td>31.29</td>\n<td>31.42</td>\n<td>34.38</td>\n</tr>\n<tr>\n<td>Total tok/s</td>\n<td>511.6</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3>Fast cold start</h3>\n<p>ZML/LLMD has been designed from the ground up to have fast cold start times, as shown here with Qwen 3.6-27B BF16:</p>\n<h2>Give it a try</h2>\n<p>Run ZML/LLMD and point your favorite harness to it.</p>\n<p><strong>NVIDIA</strong></p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">docker</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> run<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>p</span> 8000:8000<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>shm-size</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>256GB<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>gpus</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>all<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>e</span> HF_TOKEN<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>it</span> zmlai/llmd:cuda <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>model</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>hf://Qwen/Qwen3.6-27B</span>\n</span></span></code></pre>\n<p><strong>AMD</strong></p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">docker</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> run<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>p</span> 8000:8000<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>device</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>/dev/kfd<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>device</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>/dev/dri<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>e</span> HF_TOKEN<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>it</span> zmlai/llmd:rocm <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>model</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>hf://Qwen/Qwen3.6-27B</span>\n</span></span></code></pre>\n<p><strong>Intel</strong></p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">docker</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> run<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>p</span> 8000:8000<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>device</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>/dev/dri<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>e</span> HF_TOKEN<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>it</span> zmlai/llmd:oneapi <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>model</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>hf://Qwen/Qwen3.6-27B</span>\n</span></span></code></pre>\n<p><strong>Google TPU</strong></p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">docker</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> run<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>net</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>host<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>privileged</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>e</span> HF_TOKEN<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>it</span> zmlai/llmd:tpu <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>model</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>hf://Qwen/Qwen3.6-27B</span>\n</span></span></code></pre>\n<p><strong>Apple Metal</strong></p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">brew</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> install zml/zml/llmd</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">llmd</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>model</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>hf://Qwen/Qwen3.6-27B</span>\n</span></span></code></pre>\n",
  "content_markdown": "Today we’re releasing ZML/LLMD. It’s a self-contained inference server that runs LLaMa, Gemma, Qwen and Mistral LLMs transparently on **5 architectures**: **NVIDIA CUDA**, **AMD ROCm**, **Google TPU**, **Intel oneAPI** and **Apple Metal**.\n\n![](https://zml.ai/posts/llmd/llmd1.png)\n\n## Modern serving features\n\nZML/LLMD supports modern serving features: **continuous batching**, **paged attention**, **tensor parallel sharding**, **prefix caching**, **tool calling** and does so on **all platforms**.\n\nMetrics are also exposed in the Prometheus format via the `/metrics` endpoint.\n\n## Supported models\n\nZML/LLMD alpha ships with support for the following models:\n\n- Qwen 2, 3, 3.5 and 3.6 series (dense and MoE)\n- Gemma 3 and 4 series (dense and MoE)\n- LFM2.5 series\n- Mistral 3 and Ministral series\n- LLaMa 2 and 3 series\n\nDeepSeek, Kimi, GLM, MiniMax and StepFun models are coming soon.\n\n## Native HuggingFace, S3 and GCS support\n\nBuilt on ZML, ZML/LLMD has native support for ZML’s VFS subsystem, which allows for zero-copy loading of models from HuggingFace (`hf://`), S3 (`s3://`), and GCS (`gs://`). This means that you can load models directly from these sources without having to download them first, saving time and storage space. Authentication is handled with the standard environment or paths for each backend.\n\nFor instance, loading from HuggingFace is as simple as using the `hf://` prefix on any flag that expects a path:\n\n```bash\n$ docker run -p 8000:8000 --shm-size=256GB --gpus=all -e HF_TOKEN -it zmlai/llmd:cuda \\\n    --model=hf://Qwen/Qwen3-8B\n```\n\nNotice we’re also passing the `HF_TOKEN` environment variable to authenticate.\n\n## DFlash speculative decoding\n\nZML/LLMD alpha ships with native support for DFlash on Gemma 4 series and soon Qwen series models. DFlash is a new speculative decoding algorithm that can speed up tok/s/user by **up to 10x** on supported models.\n\nTo use it, just pass the `--dflash-model` flag when launching LLMD:\n\n```bash\n$ docker run -p 8000:8000 --shm-size=256GB --gpus=all -e HF_TOKEN -it zmlai/llmd:cuda \\\n    --model=hf://google/gemma-4-31B-it \\\n    --dflash-model=hf://z-lab/gemma-4-31B-it-DFlash\n```\n\nOne nice benefit of ZML’s programming model is the compounding of features across platforms. For instance, DFlash transparently runs very well on Intel and Apple GPUs.\n\nRead about DFlash [on the Z-Lab blog](https://z-lab.ai/projects/dflash/) and the [currently released DFlash drafters](https://huggingface.co/collections/z-lab/dflash).\n\n## Optimized Docker image\n\nOn each platform, ZML/LLMD ships the platform runtime as part of the image in a sandboxed manner. Per file optimization reduces image sizes by 5-10x. On top of that careful ordering of layers and custom compression improves `docker pull` time by using download/extraction overlapping.\n\nThe result is a small image that can be pulled and run in seconds:\n\n```bash\n$ time docker pull zmlai/llmd:cuda\ncuda: Pulling from zmlai/llmd\n...\nStatus: Downloaded newer image for zmlai/llmd:cuda\ndocker.io/zmlai/llmd:cuda\n\nreal    0m13.766s\nuser    0m0.021s\nsys     0m0.022s\n```\n\n| Platform   | Image                       | Size       |\n| ---------- | --------------------------- | ---------- |\n| **CUDA**   | `zmlai/llmd:cuda`           | **1.7 GB** |\n| **ROCm**   | `zmlai/llmd:rocm`           | **3.9 GB** |\n| **TPU**    | `zmlai/llmd:tpu`            | **280 MB** |\n| **OneAPI** | `zmlai/llmd:oneapi`         | **350 MB** |\n| **Metal**  | `brew install zml/zml/llmd` | **140 MB** |\n\nEach image ships with everything it needs to run. For instance on Metal the Apple Metal compiler is shipped in the archive, or ROCm itself in the AMD image.\n\n### Built-in CUDA Compatibility\n\nOn the CUDA platform, ZML/LLMD ships with the [CUDA Compatibility layer](https://docs.nvidia.com/deploy/cuda-compatibility/latest/why-cuda-compatibility.html) transparently built-in that enables ZML/LLMD to run on a wide range of driver versions without intervention.\n\nThis feature doesn’t require any special configuration as the probe is done automatically at runtime. It is also fully sandboxed and doesn’t require any system libraries to be installed.\n\n## Automatic sharding support\n\nZML/LLMD supports tensor parallel inference on all platforms. It automatically shards the model across multiple devices and handles the communication between them transparently.\n\nCurrently only tensor or expert parallel sharding is supported. More control will be added in the near future, for instance pipeline parallelism.\n\n## Python-free Execution Path\n\nZML/LLMD runs on ZML’s own ML framework, ZML, built with Zig, MLIR, OpenXLA. It compiles binaries and runtimes ahead of time into a single, hermetic artifact. Since the ZML programming model is explicit compilation passes, once compiled, there are no hidden compilation happening in the hot path. Latencies are flat and predictable.\n\n## Performance\n\n### google/gemma-4-26B-A4B-it (bs=16)\n\n| NVIDIA H100x2 | Avg     | Min   | Max    | P50    | P75    | P90   | P95   | P99    | P99.9 |\n| ------------- | ------- | ----- | ------ | ------ | ------ | ----- | ----- | ------ | ----- |\n| TTFT (ms)     | 127.64  | 70.39 | 162.08 | 141.91 | 142.04 | 142.1 | 143.1 | 158.28 | 161.7 |\n| ITL (ms)      | 12.03   | 0.01  | 85.58  | 11.67  | 12.28  | 13.14 | 16.35 | 68.24  | 74.42 |\n| Total tok/s   | 1317.93 |       |        |        |        |       |       |        |       |\n\n| Intel B70x2 | Avg    | Min    | Max    | P50    | P75   | P90    | P95    | P99    | P99.9   |\n| ----------- | ------ | ------ | ------ | ------ | ----- | ------ | ------ | ------ | ------- |\n| TTFT (ms)   | 426.05 | 117.36 | 1027.4 | 375.38 | 375.4 | 612.75 | 850.48 | 992.01 | 1023.86 |\n| ITL (ms)    | 81.83  | 0.03   | 499.75 | 81.62  | 82.72 | 83.7   | 84.17  | 84.6   | 279.99  |\n| Total tok/s | 179.31 |        |        |        |       |        |        |        |         |\n\n| AMD MI300X  | Avg    | Min  | Max    | P50   | P75    | P90    | P95    | P99    | P99.9  |\n| ----------- | ------ | ---- | ------ | ----- | ------ | ------ | ------ | ------ | ------ |\n| TTFT (ms)   | 101.86 | 36.3 | 145.35 | 109.7 | 109.76 | 110.39 | 116.76 | 139.63 | 144.77 |\n| ITL (ms)    | 18.52  | 0.02 | 69.33  | 18.4  | 18.82  | 19.12  | 19.26  | 40.41  | 47.75  |\n| Total tok/s | 858.8  |      |        |       |        |        |        |        |        |\n\n| M3 Max      | Avg     | Min     | Max     | P50     | P75    | P90     | P95    | P99     | P99.9   |\n| ----------- | ------- | ------- | ------- | ------- | ------ | ------- | ------ | ------- | ------- |\n| TTFT (ms)   | 2364.71 | 1840.79 | 2608.73 | 2411.42 | 2411.5 | 2470.67 | 2539.7 | 2594.92 | 2607.35 |\n| ITL (ms)    | 67.01   | 25.81   | 196.99  | 67.02   | 70.63  | 74.5    | 77.41  | 85.19   | 104.45  |\n| Total tok/s | 109.59  |         |         |         |        |         |        |         |         |\n\n### google/gemma-4-31B-it + z-lab/gemma-4-31B-it-DFlash (bs=16)\n\n| TPU v6ex4   | Avg    | Min   | Max    | P50    | P75    | P90    | P95    | P99    | P99.9  |\n| ----------- | ------ | ----- | ------ | ------ | ------ | ------ | ------ | ------ | ------ |\n| TTFT (ms)   | 137.64 | 25.36 | 187.67 | 137.79 | 137.82 | 158.75 | 187.17 | 187.57 | 187.66 |\n| ITL (ms)    | 16.73  | 0.01  | 345.35 | 0.02   | 0.08   | 71.85  | 73.76  | 75.63  | 323.83 |\n| Total tok/s | 943.7  |       |        |        |        |        |        |        |        |\n\n| AMD MI300X  | Avg    | Min   | Max    | P50    | P75    | P90    | P95    | P99    | P99.9  |\n| ----------- | ------ | ----- | ------ | ------ | ------ | ------ | ------ | ------ | ------ |\n| TTFT (ms)   | 254.95 | 57.23 | 368.84 | 268.09 | 268.14 | 268.23 | 283.34 | 351.74 | 367.13 |\n| ITL (ms)    | 21.51  | 0.01  | 140.15 | 0.02   | 0.03   | 91.55  | 93.82  | 109.29 | 139.67 |\n| Total tok/s | 731.8  |       |        |        |        |        |        |        |        |\n\n### Qwen/Qwen3.6-27B (bs=8)\n\n| M3 Max      | Avg    | Min     | Max     | P50     | P75     | P90     | P95     | P99     | P99.9   |\n| ----------- | ------ | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- |\n| TTFT (ms)   | 6052.4 | 2684.92 | 7285.46 | 6408.14 | 6408.16 | 6671.36 | 6978.41 | 7224.05 | 7279.32 |\n| ITL (ms)    | 183.96 | 3.33    | 876.88  | 183.83  | 185.05  | 186.34  | 187.62  | 196.88  | 208.71  |\n| Total tok/s | 33.5   |         |         |         |         |         |         |         |         |\n\n| AMD MI300X  | Avg    | Min  | Max    | P50    | P75    | P90    | P95    | P99    | P99.9  |\n| ----------- | ------ | ---- | ------ | ------ | ------ | ------ | ------ | ------ | ------ |\n| TTFT (ms)   | 259.71 | 68.5 | 357.55 | 241.55 | 270.58 | 357.51 | 357.54 | 357.55 | 357.55 |\n| ITL (ms)    | 30.97  | 0.01 | 115.9  | 31.02  | 31.15  | 31.24  | 31.29  | 31.42  | 34.38  |\n| Total tok/s | 511.6  |      |        |        |        |        |        |        |        |\n\n### Fast cold start\n\nZML/LLMD has been designed from the ground up to have fast cold start times, as shown here with Qwen 3.6-27B BF16:\n\n## Give it a try\n\nRun ZML/LLMD and point your favorite harness to it.\n\n**NVIDIA**\n\n```bash\ndocker run -p 8000:8000 --shm-size=256GB --gpus=all -e HF_TOKEN -it zmlai/llmd:cuda \\\n    --model=hf://Qwen/Qwen3.6-27B\n```\n\n**AMD**\n\n```bash\ndocker run -p 8000:8000 --device=/dev/kfd --device=/dev/dri -e HF_TOKEN -it zmlai/llmd:rocm \\\n    --model=hf://Qwen/Qwen3.6-27B\n```\n\n**Intel**\n\n```bash\ndocker run -p 8000:8000 --device=/dev/dri -e HF_TOKEN -it zmlai/llmd:oneapi \\\n    --model=hf://Qwen/Qwen3.6-27B\n```\n\n**Google TPU**\n\n```bash\ndocker run --net=host --privileged -e HF_TOKEN -it zmlai/llmd:tpu \\\n    --model=hf://Qwen/Qwen3.6-27B\n```\n\n**Apple Metal**\n\n```bash\nbrew install zml/zml/llmd\nllmd --model=hf://Qwen/Qwen3.6-27B\n```\n",
  "dateCreated": "2026-09-08T10:17:10.166315+00:00",
  "date_created": "2026-07-08T07:00:00+00:00",
  "date_modified": "2026-07-08T07:00:00+00:00",
  "date_published": "2026-07-08T07:00:00+00:00",
  "description": "Today we’re releasing ZML/LLMD. It’s a self-contained inference server that runs LLaMa, Gemma, Qwen and Mistral LLMs transparently on 5 architectures: NVIDIA CUDA, AMD ROCm, Google TPU, Intel oneAPI and Apple Metal. Modern serving features…",
  "external_url": "https://zml.ai/posts/llmd/",
  "git": {
    "commit": "ebb0941c5c06a2ab2377342d607535262a3e969e",
    "path": "items/zml-ai/2026/07/2026-07-08-zml-llmd-alpha.md",
    "permalink": "https://github.com/aymericbeaumet/aggr-instance/blob/ebb0941c5c06a2ab2377342d607535262a3e969e/items/zml-ai/2026/07/2026-07-08-zml-llmd-alpha.md"
  },
  "id": "urn:aggr:item:6cff417eadf22045c363e6f386f353f85c752102",
  "isBasedOn": {
    "@id": "https://zml.ai/posts/llmd/"
  },
  "mainEntity": {
    "@id": "https://zml.ai/posts/llmd/",
    "@type": "CreativeWork",
    "archivedAt": {
      "@id": "https://aggr.aymericbeaumet.com/items/zml-ai/2026-07-08-zml-llmd-alpha/#webpage"
    },
    "dateModified": "2026-07-08T07:00:00+00:00",
    "datePublished": "2026-07-08T07:00:00+00:00",
    "headline": "ZML/LLMD alpha",
    "timeRequired": "PT6M",
    "url": "https://zml.ai/posts/llmd/",
    "wordCount": 1143
  },
  "name": "Archived snapshot: ZML/LLMD alpha",
  "preview": null,
  "reading_minutes": 6,
  "replicated_at": null,
  "source": "zml-ai",
  "source_name": "ZML - Model to Metal",
  "summary": "Today we’re releasing ZML/LLMD. It’s a self-contained inference server that runs LLaMa, Gemma, Qwen and Mistral LLMs transparently on 5 architectures: NVIDIA CUDA, AMD ROCm, Google TPU, Intel oneAPI and Apple Metal. Modern serving features ZML/LLMD supports modern serving features: continuous batching, paged attention, tensor parallel sharding, prefix caching, tool calling and does so on all platforms. Metrics are also exposed in the Prometheus format via the /metrics endpoint.",
  "tags": [],
  "temporalCoverage": "2026-09-08T10:17:10.166315+00:00",
  "title": "ZML/LLMD alpha",
  "url": "https://aggr.aymericbeaumet.com/items/zml-ai/2026-07-08-zml-llmd-alpha/",
  "word_count": 1143
}