Skip to content

W8A8 INT8 support for Qwen3.6-35B-A3B (Qwen3.5 MoE architecture) #2787

Description

@Priyjain-amd

We need to quantize Qwen/Qwen3.6-35B-A3B to W8A8 (INT8 weights with static per-channel scales, INT8 activations with dynamic per-token scales) for deployment on INT8-capable GPUs (Turing and newer), without using NVFP4 or FP8.

Today, LLM Compressor does not provide a clear, tested path for this:

  1. No W8A8 MoE example for Qwen3.6 — NVFP4 and FP8 examples exist; W8A8 does not.
  2. Missing architecture mappingsQwen3_5MoeForConditionalGeneration and related classes are not registered in SmoothQuant and static AWQ mapping tables, so calibration-based flows may use incorrect default mappings.
  3. MoE and hybrid attention — Qwen3.6 expert weights are stored as fused 3D tensors in Hugging Face. Quantization must unfuse them into per-expert nn.Linear modules. The model also mixes full self-attention and linear attention (Gated DeltaNet); we need W8A8 on MoE expert Linears and linear-attention Linears, not only dense attention layers.

Qwen3.6 uses the same stack as Qwen3.5 (Qwen3_5MoeForConditionalGeneration, Qwen3_5MoeSparseMoeBlock). MoE calibration code already exists in qwen3_5_moe.py, but W8A8 support still needs registry entries, documentation, and a runnable example.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions