Views
No views yet
w8a16-gs128, or w8a16-gs32 branch might be better. The performance difference in practical use is minimal.--revision or switch branches in your download tool.| Benchmark | Mine (INT8 gs128) | Official (BF16) | Δ |
|---|---|---|---|
| MMLU-Redux | 93.28% ± 0.33% | 93.3% | −0.02% |
| Field | Main branch | w8a16-gs128 branch | w8a16-gs32 branch |
|---|---|---|---|
| Base | Qwen/Qwen3.6-35B-A3B | Qwen/Qwen3.6-35B-A3B | Qwen/Qwen3.6-35B-A3B |
| Method | AutoRound (intel/auto-round) | AutoRound (intel/auto-round) | AutoRound (intel/auto-round) |
| Scheme | W8A16 | W8A16 | W8A16 |
| Bits | 8 | 8 | 8 |
| Group size | -1 | 128 | 32 |
| Symmetric | yes | yes | yes |
| Unquantized layers | visual, mtp, linear_attn, mlp.gate, shared_expert, embed_tokens, lm_head | Main + self_attn | Main + self_attn |
| Calibration dataset | NeelNanda/pile-10k | NeelNanda/pile-10k | NeelNanda/pile-10k |
| Calibration samples | 512 | 128 | 768 |
| Iterations | 1000 | 175 | 1000 |
| Batch size | 8 | 36 | 16 |
| Sequence length | 2048 | 2048 | 4096 |
| GPU used for quant | 2× RTX 3090 | 2× RTX 3090 | 2× RTX 3090 |
docker-compose.yml1x-vllm-common: &vllm-common
2 build:
3 context: ./vllm
4 ipc: host
5 network_mode: host
6 runtime: nvidia
7 environment:
8 NVIDIA_VISIBLE_DEVICES: all
9 NVIDIA_DRIVER_CAPABILITIES: all
10 NVIDIA_DISABLE_REQUIRE: "1"
11 CUDA_VISIBLE_DEVICES: "0,1"
12 CUDA_DEVICE_ORDER: FASTEST_FIRST
13 CUDA_DEVICE_MAX_CONNECTIONS: 10
14 CUDA_CACHE_MAXSIZE: 4294967296
15 CUDA_SCALE_LAUNCH_QUEUES: "4x"
16 RAY_memory_monitor_refresh_ms: 0
17 OMP_NUM_THREADS: 6
18 PYTORCH_ALLOC_CONF: "expandable_segments:False"
19 TENSOR_PARALLEL_SIZE: 2
20 VLLM_DO_NOT_TRACK: 1
21 VLLM_ENABLE_CUDAGRAPH_GC: 1
22 VLLM_FLASHINFER_MOE_BACKEND: latency
23 VLLM_MARLIN_USE_ATOMIC_ADD: 1
24 VLLM_MEMORY_PROFILER_ESTIMATE_CUDAGRAPHS: 1
25 VLLM_TARGET_DEVICE: cuda
26 VLLM_USE_DEEP_GEMM: 0
27 VLLM_USE_FLASHINFER_SAMPLER: "1"
28 VLLM_USE_PRECOMPILED: 1
29 VLLM_TUNED_CONFIG_FOLDER: /tuned_configs
30 HF_HOME: /models
31 volumes:
32 - ./models:/models
33 - ./tuned_configs:/tuned_configs
34 - ./vllm_cache:/root/.cache/vllm
35 - ./triton_cache:/root/.triton
36 deploy:
37 resources:
38 reservations:
39 devices:
40 - driver: nvidia
41 count: all
42 capabilities: ["compute", "utility", "graphics", "video"]
43 - driver: cdi
44 device_ids:
45 - nvidia.com/gpu=all
46 capabilities: ["compute", "utility", "graphics"]
47 qwen36-35b:
48 <<: *vllm-common
49 container_name: qwen36-35b
50 hostname: qwen36-35b
51 profiles:
52 - qwen36-35b
53 command:
54 - "--served-model-name"
55 - "vLLM"
56 - "--tensor-parallel-size"
57 - "2"
58 - "--attention-backend"
59 - "FLASHINFER"
60 - "--performance-mode"
61 - "interactivity"
62 - "--max-model-len"
63 - "auto"
64 - "--compilation-config"
65 - '{"mode":"VLLM_COMPILE","cudagraph_capture_sizes":[4]}'
66 - "--max-num-batched-tokens"
67 - "2048"
68 - "--max-num-seqs"
69 - "1"
70 - "--gpu-memory-utilization"
71 - "0.92"
72 - "-O3"
73 - "--async-scheduling"
74 - "--model"
75 - "/models/Minachist/Qwen3.6-35B-A3B-INT8-AutoRound"
76 - "--language-model-only"
77 - "--tool-call-parser"
78 - "qwen3_coder"
79 - "--reasoning-parser"
80 - "qwen3"
81 - "--enable-auto-tool-choice"
82 - "--speculative-config"
83 - '{"method":"mtp","num_speculative_tokens":3}'
84 - "--default-chat-template-kwargs.preserve_thinking"
85 - "true"
86 - "--enable-prefix-caching"
87 - "--enable-chunked-prefill"Dockerfile1FROM vllm/vllm-openai:cu130-nightly
2# If you encounter the error "AssertionError: Supports only {mxfp,nvfp,int}4_w4a16 or fp8_w8a16" by using other vllm versions, refer to https://huggingface.co/Minachist/Qwen3.6-35B-A3B-INT8-AutoRound/discussions/1 for more information
3
4ENV LD_LIBRARY_PATH=/usr/lib64:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:/usr/local/nvidia/lib:/lib/x86_64-linux-gnu:/usr/local/cuda/lib64
5ENV CUDA_VERSION=130
6ENV UV_TORCH_BACKEND=cu130
7
8
9ARG CACHEBUST=1
10RUN uv pip install --system -U https://github.com/huggingface/transformers/archive/refs/heads/main.zip
11RUN uv pip install --system --force-reinstall numba
12RUN uv pip install --system pandas
13
14RUN VLLM_DIR=$(python3 -c "import vllm, os; print(os.path.dirname(vllm.__file__))") && \
15 # https://smcleod.net/2026/02/patching-nvidias-driver-and-vllm-to-enable-p2p-on-consumer-gpus/
16 sed -i 's/handles = \[pynvml.nvmlDeviceGetHandleByIndex(i) for i in physical_device_ids\]/return True/g' "$VLLM_DIR/platforms/cuda.py" && \
17 # https://github.com/vllm-project/vllm/issues/39133
18 sed -i 's/raise ValueError("fp8_e5m2 kv-cache is not supported with fp8 checkpoints.")/pass/g' "$VLLM_DIR/model_executor/layers/attention/attention.py"
19
20EXPOSE 8000
21ENTRYPOINT ["python3", "-m", "vllm.entrypoints.openai.api_server"]--kv-cache-dtype fp8_e4m3 --calculate-kv-scales args to get more KV cache capacity.--enforce-eager (you might need to remove --compilation-config) or set the PYTORCH_CUDA_ALLOC_CONF=expandable_segments:False environment variable (requires --disable-custom-all-reduce) to allocate more VRAM to the KV cache, but the tk/s will be noticeably lower.--speculative-config if you really want more context, but I highly recommend keeping it.