3 changes that close the MoE performance gap:
1. _custom_ops.py: Add ix_bridge as Priority 0 for topk_softmax
- Before: tries our .cu kernel (fails) → PyTorch fallback (1-3 TPS)
- After: tries ix_bridge → ixformer::infer::topk_softmax() → FAST
- Call chain: _custom_ops.topk_softmax() → ix_bridge.topk_softmax()
→ ix_moe_bridge.so → ixformer::infer::topk_softmax()
2. Dockerfile: Add ix_moe_bridge.cpp precompile step
- This was the missing link: code existed but was never compiled
- Uses torch.utils.cpp_extension.load() to link against libixformer.so
3. upstream_ref sync from GitHub (cloned, not rewritten):
- xLLM-AI/xllm: ILU kernels + CUDA MoE + GDN fp32 state mgmt
- Deep-Spark/vllm: latest MoE kernel sources
Upstream Reference: Deep-Spark xllm + vllm (FULL TREE)
Source repos (cloned 2026-08-09, Apache 2.0):
Deep-Spark/xllm— Iluvatar official C++ LLM inference engine (1470 files)Deep-Spark/vllm— Iluvatar official vllm fork (703 files, csrc + model layer)
What's here
xllm/ (complete source minus git/binaries/submodules)
天数智芯官方下一代推理引擎,C++ 原生,多平台(CUDA/ILU/MLU/NPU)。 包含 kernels → layers → models → runtime → scheduler → api_service 完整栈。
Key subtrees:
xllm/core/kernels/ilu/— ixformer API wrappers (ixformer.h是金矿)xllm/core/kernels/cuda/moe/— MoE CUDA kernels (topk_softmax, fused_topk)xllm/core/kernels/cuda/— activation, norm, rope, attention CUDA kernelsxllm/core/layers/ilu/— Iluvatar FusedMoE完整pipelinexllm/core/layers/npu_torch/— GatedDeltaNet C++ implementationxllm/models/llm/qwen3_5.h— Qwen3.5 model definitionxllm/compiler/tilelang/— GDN kernel code generation
ds_vllm/ (csrc + model layers + fused_moe)
天数智芯官方vllm fork,Python + CUDA torch extension。
csrc/— ALL CUDA source (attention, moe, quantization, cache)csrc/libtorch_stable/moe/topk_softmax_kernels.cu— vllm topk_softmaxvllm/_custom_ops.py— Python → torch.ops._moe_C bridgevllm/model_executor/models/qwen3_5.py— ds_vllm的qwen3_5实现vllm/model_executor/layers/fused_moe/— vllm FusedMoE Python layer