Qwen SpeedLab — Qwen 3.6 27B Hyper-Rapide sur RTX 3090
Objectif : faire tourner Qwen 3.6 27B à la vitesse maximale sur une seule RTX 3090 (24 GB VRAM).
Techniques utilisées
| Technique | Speedup | Description |
|---|---|---|
| DFlash | 3-5× | Block diffusion speculative decoding — un drafter parallèle qui propose plusieurs tokens vérifiés en un seul forward pass |
| MTP (Multi-Token Prediction) | 1.7-2× | Self-speculative decoding utilisant les têtes MTP natives de Qwen 3.6 |
| TurboQuant KV | 5-7.5× compression | Quantification Walsh-Hadamard du cache KV → plus de contexte dans le même VRAM |
| Flash Attention | 1.2-1.5× | Attention kernels optimisés pour Ampere (RTX 3090 = sm_86) |
| Quantification Q4_K_M | — | 16 GB → tient dans les 24 GB avec marge pour le KV cache |
Architecture de Qwen 3.6 27B
- 64 couches : 48 GatedDeltaNet (SSM linéaire) + 16 full-attention (toutes les 4 couches)
- Hidden dim : 5120, FFN : 17408
- Contexte natif : 262K tokens
- MTP head :
blk.64.nextn.*— 1 tête de prédiction multi-token - Cache KV : Seulement sur les 16 couches full-attention → très léger
- Licence : Apache 2.0
Kernels CUDA custom
Des kernels spécialisés pour l'architecture hybride de Qwen 3.6 (48 GDN + 16 attention) :
| Kernel | Fichier | Gain |
|---|---|---|
| Fused GDN Projections | kernels/gdn_fused_proj.cu |
+15-25% sur GDN (+11-19% net) |
| Warp-Shuffle Conv1D | kernels/gdn_conv1d_warp.cu |
3-5× sur conv1d (+3-4% net) |
| MTP Batched Verify | kernels/mtp_fused_verify.cu |
+10-15% en mode MTP (+3-5% net) |
Gain cumulatif projeté : +18-31% sur le baseline.
Fichiers du projet
/workspace/
├── kernels/ # Kernels CUDA custom optimisés Qwen 3.6
│ ├── gdn_fused_proj.cu # Fusion QKVZ + activations (1 launch au lieu de 6)
│ ├── gdn_conv1d_warp.cu # Conv1D causale par warp shuffle
│ ├── mtp_fused_verify.cu # Vérification MTP batchée + forward fusionné
│ ├── speedlab_kernels.h # Header commun C-linkage
│ └── Makefile # Build system pour les kernels
├── beellama.cpp/ # Moteur BeeLlama (DFlash + TurboQuant)
├── llama.cpp-turboq-mtp/ # Moteur Indras-Mirror (TBQ4 FA + RotorQuant)
├── models/
│ ├── batiai-qwen36-27b/ # Modèle cible GGUF (Q4_K_M)
│ ├── dflash/ # Modèle drafter DFlash
│ └── mannix-mtp-qwen36-27b/ # MTP-enabled GGUF
├── scripts/ # Scripts de lancement
└── README.md
Lancement rapide
Mode DFlash (vitesse maximale, ~78-130 tok/s)
./scripts/serve-dflash.sh
Mode MTP (simple, ~55-70 tok/s)
./scripts/serve-mtp.sh
Mode baseline (~35-45 tok/s)
./scripts/serve-baseline.sh
Benchmark
./scripts/benchmark.sh