This commit is contained in:
2026-06-12 10:56:36 +08:00
parent b962f0b6c0
commit 3f96a0df02
3 changed files with 43 additions and 3 deletions
+20 -2
View File
@@ -2,10 +2,11 @@
"""vllm 平台检测补丁
问题 1:amdsmi 不可用时 platform 回退到 torch.version.hip
问题 2:rocm.py 中 logger.warning_once() 导致循环导入
问题 2:rocm.py 中 logger.warning_once() 导致循环导入(默认不再改写;仅保留为显式开关)
"""
import os
import traceback
VLLM_DIR = '/opt/vllm/vllm'
@@ -33,7 +34,16 @@ def patch6_init_platform_fallback():
def patch7_rocm_break_import_cycle():
"""补丁 7:platforms/rocm.py —— logger.warning_once → sys.stderr.write"""
"""补丁 7:platforms/rocm.py —— logger.warning_once → sys.stderr.write
这个补丁会直接改写 vLLM 源码中的函数调用。部分 vLLM 版本里
logger.warning_once(...) 参数不一定兼容 sys.stderr.write(...),改写后可能
导致 import vllm / import vllm.platforms.rocm 失败。MinerU 会把这种导入失败
包装成 "Please install vllm",因此默认禁用,只在显式设置环境变量时启用。
"""
if os.environ.get('VLLM_PATCH_ROCM_WARNING_ONCE') != '1':
print('Patch 7: skipped (set VLLM_PATCH_ROCM_WARNING_ONCE=1 to enable).')
return
f = os.path.join(VLLM_DIR, 'platforms', 'rocm.py')
c = open(f).read()
old = 'logger.warning_once('
@@ -49,6 +59,14 @@ def patch7_rocm_break_import_cycle():
def main():
patch6_init_platform_fallback()
patch7_rocm_break_import_cycle()
try:
import vllm
from vllm.platforms import current_platform
print(f'vllm runtime import OK: {vllm.__version__}, platform={type(current_platform).__name__}')
except Exception:
print('ERROR: vllm runtime import failed after platform patches:')
traceback.print_exc()
raise
print('vllm platform patches done.')