From de1212c2711c54a7e47ba12a11c36e73c2ab1cd6 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Aug 2026 14:30:53 +0000 Subject: [PATCH] =?UTF-8?q?test:=20probe=5Fix=5Funified=5Fbridge.sh=20?= =?UTF-8?q?=E2=80=94=20cat=20base=E9=95=9C=E5=83=8F=E7=9A=84ix=5Funified?= =?UTF-8?q?=5Fbridge=20+=20corex=5F*.so=20+=20=5Fcustom=5Fops.py=E5=AE=8C?= =?UTF-8?q?=E6=95=B4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- probe_ix_unified_bridge.sh | 98 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100755 probe_ix_unified_bridge.sh diff --git a/probe_ix_unified_bridge.sh b/probe_ix_unified_bridge.sh new file mode 100755 index 00000000..f41c65f6 --- /dev/null +++ b/probe_ix_unified_bridge.sh @@ -0,0 +1,98 @@ +#!/bin/bash +# probe_ix_unified_bridge.sh — cat ix_unified_bridge的完整接口 +set -e + +echo "=== ix_unified_bridge.so 函数列表 ===" +python3 -c " +import importlib.util, sys + +# 方法1: 直接import +for path in [ + '/usr/local/corex/lib/python3/dist-packages/vllm/ix_unified_bridge.cpython-310-x86_64-linux-gnu.so', + '/usr/local/corex/lib/python3/dist-packages/vllm/ix_unified_bridge.so', +]: + try: + spec = importlib.util.spec_from_file_location('ix_unified_bridge', path) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + fns = [x for x in dir(mod) if not x.startswith('_')] + print(f'loaded from: {path}') + print(f'functions ({len(fns)}):') + for f in sorted(fns): + print(f' {f}') + break + except Exception as e: + print(f' {path}: {e}') +" + +echo "" +echo "=== ixformer 里跟vllm相关的函数签名 ===" +python3 -c " +import ixformer +import inspect + +# 列出所有vllm_开头的函数 +for name in sorted(dir(ixformer)): + if 'vllm' in name.lower() or name in ['silu_and_mul', 'fused_add_rms_norm', 'rms_norm', 'flash_attn_func', 'linear', 'matmul', 'gemv', 'rotary_embedding']: + obj = getattr(ixformer, name) + if callable(obj): + try: + sig = inspect.signature(obj) + print(f'{name}{sig}') + except: + print(f'{name}(...)') +" + +echo "" +echo "=== corex_moe_topk_softmax.so 函数列表 ===" +python3 -c " +import importlib.util +path = '/usr/local/corex/lib/python3/dist-packages/vllm/corex_moe_topk_softmax.so' +try: + spec = importlib.util.spec_from_file_location('corex_moe_topk_softmax', path) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + fns = [x for x in dir(mod) if not x.startswith('_')] + print(f'functions ({len(fns)}):') + for f in sorted(fns): + print(f' {f}') +except Exception as e: + print(f'FAIL: {e}') +" + +echo "" +echo "=== 所有corex_*.so的函数列表 ===" +python3 -c " +import importlib.util, os, glob +for so in sorted(glob.glob('/usr/local/corex/lib/python3/dist-packages/vllm/corex_*.so')): + name = os.path.basename(so).replace('.so','') + try: + spec = importlib.util.spec_from_file_location(name, so) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + fns = [x for x in dir(mod) if not x.startswith('_')] + print(f'{name}: {fns}') + except Exception as e: + print(f'{name}: FAIL {e}') +" + +echo "" +echo "=== base镜像 _custom_ops.py 完整内容 ===" +VLLM_BASE="/usr/local/corex/lib/python3/dist-packages/vllm" +if [ -f "$VLLM_BASE/_custom_ops.py" ]; then + cat "$VLLM_BASE/_custom_ops.py" +else + echo "NOT FOUND at $VLLM_BASE/_custom_ops.py" + # 搜索 + find /usr/local/corex -name "_custom_ops.py" -path "*/vllm/*" 2>/dev/null | head -5 +fi + +echo "" +echo "=== base镜像 qwen3_5.py MoE forward ===" +BASE_QWEN="$VLLM_BASE/model_executor/models/qwen3_5.py" +if [ -f "$BASE_QWEN" ]; then + grep -n "topk_softmax\|FusedMoE\|fused_moe\|_pure_pytorch\|corex_moe\|ix_unified" "$BASE_QWEN" | head -30 +else + echo "NOT FOUND" + find /usr/local/corex -name "qwen3_5.py" -path "*/models/*" 2>/dev/null | head -5 +fi