EX Engine
d21b2505bb
fix: wire MoE topk via ixformer C++ bridge + disable broken flash_qla GDN
Two call chain breaks fixed:
1. MoE routing (2304 calls/token):
BEFORE: torch.softmax + torch.topk (3 Python GPU ops, no ixformer)
AFTER: ix_bridge.py → ix_moe_bridge.cpp → ixformer::infer::topk_softmax()
Source: upstream_ref/xllm/xllm/core/kernels/ilu/fused_moe.cpp line 46
The C++ API exists in base image SDK (ixformer.h declares it),
only the Python binding (ixformer.functions) was missing.
2. GDN prefill (4 layers, 99.98% NaN):
BEFORE: flash_qla SM70 kernel → abs mean=inf → nan_to_num → zeros
AFTER: skip flash_qla, use _pytorch_forward directly
Source: upstream_ref/xllm qwen3_gated_delta_net_base.cpp uses
identical PyTorch chunked logic (no flash_qla).
Sub168 (working build) never deployed flash_qla either.
Files:
- ex_engine/csrc/ix_moe_bridge.cpp: torch C++ extension calling ixformer C++ API
- ex_engine/python/ix_bridge.py: JIT-compile loader with PyTorch fallback
- qwen3_5.py: import ix_bridge for MoE, disable flash_qla for GDN
- patch_ops.sh: deploy ix_bridge .cpp + .py into vllm model dir
2026-08-10 03:00:35 +00:00
..
2026-08-10 01:08:38 +00:00
2026-07-30 16:06:20 +00:00
2026-07-30 16:06:20 +00:00
2026-08-07 07:55:04 +00:00
2026-08-07 08:56:50 +00:00
2026-08-08 07:01:37 +00:00
2026-08-05 08:24:43 +00:00
2026-08-07 07:05:40 +00:00
2026-07-30 16:06:20 +00:00
2026-08-05 08:24:43 +00:00
2026-08-08 10:48:01 +00:00
2026-08-07 08:56:36 +00:00
2026-08-07 04:37:44 +00:00
2026-08-08 10:48:01 +00:00
2026-08-08 10:48:01 +00:00
2026-08-07 09:58:35 +00:00
2026-08-10 03:00:35 +00:00
2026-08-07 10:02:09 +00:00
2026-08-08 10:48:01 +00:00
2026-08-08 10:48:01 +00:00
2026-08-08 10:48:01 +00:00
2026-08-08 10:48:01 +00:00
2026-08-08 10:48:01 +00:00
2026-08-10 01:08:38 +00:00
2026-08-07 02:46:46 +00:00
2026-08-08 11:21:43 +00:00
2026-08-08 07:36:31 +00:00
2026-08-08 08:10:55 +00:00
2026-08-10 03:00:35 +00:00
2026-08-08 07:02:22 +00:00
2026-08-05 08:36:52 +00:00
2026-08-06 02:55:51 +00:00
2026-07-30 16:06:20 +00:00
2026-07-30 16:06:20 +00:00
2026-08-10 00:15:06 +00:00
2026-08-05 08:36:52 +00:00
2026-08-07 06:36:12 +00:00
2026-08-07 01:54:52 +00:00