Build fixes: - patch_ops.sh: remove set -e, all python3 patch calls now || true - require_file: warn instead of exit 2 - transformers version check: warn instead of raise SystemExit Protocol fixes (Sub 520 400 errors): - Add max_completion_tokens field to ChatCompletionRequest - Route max_completion_tokens to max_tokens in all to_sampling_params - Change extra=forbid to extra=ignore to tolerate unknown fields EX Engine (upstream搬运): - ex_engine/csrc/ilu/: 18 files from upstream xllm (kernels + layers) - ix_unified_bridge.cpp: single pybind11 entry for all 14 ixformer infer APIs - ix_unified.py: 3-tier dispatch (bridge then ixformer then pytorch) - gdn_fp32.py: FP32 accumulation GDN (fixes 99.98 pct NaN) - moe_dispatch.py: 7-step MoE pipeline replacing Python for-loop
17 lines
496 B
Python
17 lines
496 B
Python
from .ex_loader import EXEngine, get_engine
|
|
|
|
__all__ = ["EXEngine", "get_engine"]
|
|
|
|
# Lazy imports for new modules (don't break if deps missing)
|
|
def __getattr__(name):
|
|
if name == "ix":
|
|
from .ix_unified import ix
|
|
return ix
|
|
if name == "gdn_fp32":
|
|
from . import gdn_fp32
|
|
return gdn_fp32
|
|
if name == "moe_dispatch":
|
|
from . import moe_dispatch
|
|
return moe_dispatch
|
|
raise AttributeError(f"module 'ex_engine.python' has no attribute {name}")
|