Introduction
Qwen3-235B-A22B is a Mixture-of-Experts (MoE) large language model developed by Alibaba, featuring 235B total parameters with 22B active parameters. It employs Grouped-Query Attention (GQA) and Qwen3MoE architecture, with support for EAGLE3 speculative decoding for accelerated inference. The model excels at instruction following, logical reasoning, text comprehension, mathematics, science, coding, and tool usage, available in both standard and thinking/reasoning-enhanced editions. This document demonstrates the deployment of Qwen3-235B-A22B on Ascend NPUs using SGLang, including single-node PD mixed mode, multi-node PD disaggregation mode, 256k long-sequence inference, Prefill Context Parallel, feature configuration, and performance optimization. This document is validated and written based on SGLang v0.5.13. The current model (Qwen3-235B-A22B) is fully supported in this version. To use the latest features (e.g., PD disaggregation, speculative decoding), it is recommended to use v0.5.13 or a later version.Supported features
The values in the Example usage column are for illustration only. Adjust them according to your hardware, deployment
mode, and workload. For parameter details, see
Feature descriptions; for
recommended configurations for each deployment scenario, see Best practices.
Prerequisites
Environment
Before following this tutorial, complete the environment setup in the documents below:- Ascend NPU Quickstart — the fastest way to get started. It walks you through launching the official container image, starting the SGLang server, and sending a test request. Recommended if you are new to SGLang on Ascend.
- SGLang Installation with NPU Support — the full installation guide. It covers the component version mapping (CANN, TorchNPU, Triton, kernels, etc.), building from source or from a Dockerfile, and recommended system settings (CPU power scheme, NUMA, swap). Use it when you need to install or customize the environment instead of using the official image.
Model weights
Before downloading model weights, check the model size to reserve enough disk space. For multi-node deployment, download the weights to a shared directory accessible to all nodes.- Qwen3-235B-A22B-Instruct-2507 (BF16, 470.21GB)
- Qwen3-235B-A22B-W8A8 (W8A8 quantized version, 236.80GB)
- Qwen3-235B-A22B-Eagle3 (EAGLE3 draft model for speculative decoding)
The BF16 variant (470.21GB) can be deployed on 16 × 64GB of device memory (
--tp-size 16), which corresponds to one full
A3 node (8 cards, 16 dies) or two A2 nodes.The W8A8 variant (236.80GB) can be deployed on 8 × 64GB (--tp-size 8), which corresponds to one full A2 node or 8 dies on A3 (4 cards).Installation
The dependencies required for the NPU runtime environment have been integrated into a Docker image and uploaded to the online platform. You can directly pull it. Both stable releases and daily builds are available. The following command is based on the stable release tag. For details, see Docker image versions.- Atlas 800I A3
- Atlas 800I A2
Command
Online service deployment
Single-node online deployment
Single-node deployment completes both prefill and decode within the same node (PD mixed mode), suitable for scenarios with limited hardware resources. This scenario is already covered in the best practice. For the complete, optimized deployment commands and benchmark data, see Qwen3-235B-A22B Best Practice — PD Mixed On A3.Multi-node PD disaggregation deployment
256K long-sequence PD disaggregation on 2 x Atlas 800I A3 (without CP)
This configuration uses PD disaggregation for 256K long-sequence inference on 2 x Atlas 800I A3 with context parallel disabled. The following command is based on the W8A8 quantized model.- Set the shared environment variables on both prefill and decode nodes:
Shared environment
- Run on the prefill node:
Prefill node
- Run on the decode node:
Decode node
- Launch the SGLang Router (on any reachable node):
Router
Prefill Context Parallel (PCP) on 2 x Atlas 800I A3
This configuration enables Prefill Context Parallel (--enable-prefill-context-parallel) to split the context
across CP ranks during prefill, reducing per-device memory pressure and improving TTFT for long sequences.
PD disaggregation is required. The following command is based on the W8A8 quantized model.
- Run on the prefill node:
Prefill node
- Run on the decode node:
Decode node
Functional verification
After the service is started, you can invoke the model by sending a prompt:The server is fired up and ready to roll! in the logs, it is ready to accept requests. For more
testing examples (Health Check, Generate, Chat Completions, and port usage guidance),
see Testing the Service.
