Files
project_6/probe_ix_unified_bridge.sh

99 lines
3.2 KiB
Bash
Executable File

#!/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