[错误] macOS ARM64 mlc-LLM-nightly-cpu pip wheel 在导入 mlc_llm 期间通过静默退出(0)导致整个 Python 进程崩溃
页:1
错误
在苹果硅(M1)上通过管道安装“mlc-LLM-夜-cpu”和“mlc-ai-夜-cpu”轮子时,试图“进口mlc llm”导致整个Python进程立即无声地崩溃。
Python解释器以0'退出状态代码终止。 没有生成 Python 追踪、 " derr " 日志或 macOS 崩溃报告。 我们追踪故障情况,直到C级:捆绑的libtvm runtime.dylib'在通过dlopen'装入时,在静态C++初始化阶段内呼唤exit(0)'。
□ 重现
复制行为的步骤 :
- 在macOS ARM64机上创建干净的Python环境.
- 安装夜间CPU包: {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? pip 安装 -pre -U -f https://mlc.ai/ wheels mlc-LLM- nightly-cpu mlc-ai- nightly-cpu 页面存档备份,存于互联网档案馆
3. 试图从Python导入该模块:
``` ZZ
导入 mlc llm
打印 (“ SUCCESS ” )** 产出:** 剧本在打印"SUCCESS"前立即终止. 外壳出站码为"0".
为了把这个问题从Python中分离出来,我们写了一个原始的C程序,手动"dlopen"捆绑的库: 页:1 #包括 <dlfcn.h> #包括"stdio.h"
英寸主( ) { setvbuf(退出、NULL、 IONBF、0); printf (“ Ladding TVM 运行时间...\n ”) ;
// 调整您的站点包装路径 空 * 手柄 = dlopen ("lib/python3.11 site-packages/tvm/libtvm runtime.dylib",RTLD LAZY-Q-RTLD GLOBAL); ; 空 (中文(简体) ).
printf (“ 此行从未到达 !\n ” ); 返回 0; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
** C-测试的结果:**
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
$ cang 测试 dlopen.c - o 测试 dlopen
$./test dlopen (中文(简体) ).
正在装入 TVM 运行时...
回声?
0 个" dlopen " 呼号再也没有回过头,无声地迫使程序以 " 0 " 代码退出。
□ 预期行为
模块应成功导入 。 如果存在硬件不匹配或后端初始化缺失(例如,Metal支持缺失),库应当丢出一个例外,返回一个非零错误代码,或"bort ()",这样就可以捕获出错,而不是默默地叫出错(0)".
□ 环境
- 平台(如WebGPU/Vulkan/IOS/Android/CUDA):金属
- 操作系统(例如Ubuntu/Windows/MacOS/.):MacOS
- 设备(例如iPhone 12 Pro,PC+RTX 3090,.):Mac 迷你 (M1,苹果硅)
- 你如何安装MLC-LLM(
conda',来源):pip'(`mlc-ZZTERM13-nightly-cpu' 0.26.dev6) - 如何安装TVM(
pip',来源):pip'(`mlc-ai-nightly-cpu' 0.26.dev246) - Python版本(例如3.10):3.11.15
- GPU 驱动程序版本(如果适用):无
- CUDA/CUDNN版本(如果适用):不适用
- TVM Hash Tag ('Python- c'import tvm; print ('\n'. join (f'{k}: {v}' for k, v in tvm. support.libinfo (. items ()))')", 适用于您编译的模型 : N/A - 无法在没有默默退出的过程中运行 “ import tvm ” 。
- 任何其他相关资料:这影响到在
https://mlc.ai/wheels'上分发的预先编译的macosx-arm64'轮。
□ 附加上下文
在预编译本中,极有可能有一个静态全球C++构建器(QQatizition (构建器))` . . . . . . .
内容来源: mlc-ai/mlc-llm