test: probe_ix_unified_bridge.sh — cat base镜像的ix_unified_bridge + corex_*.so + _custom_ops.py完整接口
This commit is contained in:
98
probe_ix_unified_bridge.sh
Executable file
98
probe_ix_unified_bridge.sh
Executable file
@@ -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
|
||||
Reference in New Issue
Block a user