x
This commit is contained in:
@@ -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.')
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user