Claude
c8a982c4e8
feat: ix_full_bridge.so — dlopen bridge for ixformer::infer C++ API
Ported from ex_engine/csrc/ix_full_bridge_v2.cpp + ix_moe_bridge.cpp.
Source: upstream_ref/xllm_latest/core/kernels/ilu/ixformer.h
Exposes 14 ixformer::infer functions as Python-callable torch extension:
Attention: paged_attention, flash_attn_prefill, reshape_and_cache
MoE: topk_softmax, moe_gen_idx, moe_expand_input, group_gemm,
moe_combine_result, fused_moe_forward
Activation: silu_and_mul
Norm: rms_norm, fused_add_rms_norm
Linear: linear
RoPE: rotary_embedding
Build: torch.utils.cpp_extension.load() in docker build (patch_ops.sh)
Links against libixformer.so from base image at runtime.
This replaces PyTorch MoE fallback (the #1 performance bottleneck).
Without bridge: MoE loops over experts in Python → ~3 TPS decode
With bridge: fused 7-step pipeline in C++ → ~16 TPS decode (sub168 level)
2026-08-14 01:25:16 +00:00
..
2026-08-13 13:40:17 +00:00
2026-08-12 11:14:01 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-12 03:31:05 +00:00
2026-08-14 01:06:49 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-13 11:37:10 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-13 04:01:59 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-13 03:48:12 +00:00
2026-08-12 11:14:01 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-14 01:25:16 +00:00
2026-08-13 11:35:43 +00:00
2026-08-13 11:35:43 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-13 04:01:59 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-13 03:48:12 +00:00
2026-08-12 11:14:01 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 11:14:01 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 11:14:01 +00:00
2026-08-14 01:25:16 +00:00
2026-08-14 01:25:16 +00:00
2026-08-14 01:06:49 +00:00
2026-08-12 11:14:01 +00:00
2026-08-12 11:14:01 +00:00
2026-08-13 07:09:50 +00:00
2026-08-12 03:31:05 +00:00
2026-08-14 01:00:09 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-14 01:25:16 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-12 03:31:05 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-14 01:06:49 +00:00
2026-08-12 03:31:05 +00:00