-
-
-
-
刘看山
链接: https://pan.baidu.com/s/1dah94BJ7Zr2ZKHWjEap0PA?pwd=gcyk 提取码: gcyk 复制这段内容后打开百度网盘手机App,操作更方便哦
-
刘看山
TVM2023 windows 编译教程. 你可以直接下载mlc-llm的conda预编译进行使用,但是由于我需要转其他模型。因此我需要安装tvm,在windows上。这又回到了如何在windows上安装tvm的问题。
需要注意的是,mac和linux可以直接下载官方预编译包。windows目前还没有,你可能需要从源码编译llvm先。
最麻烦就是还得源码编译llvm,真鸡儿蛋疼。
源码编译llvm
llvm代码古老,所以很庞大,2GB,如果你不想clone这么大,可以clone小一点的,用shallow clone:
git clone --depth 1 --config core.autocrlf=false https://github.com/llvm/llvm-project.git cd .\llvm-project\ cmake -S llvm -B build -G 'Visual Studio 16 2019' cmake --build .\build\ --config Release
请注意,如果你遇到zlib的问题,可尝试再编译llvm的时候拿掉zlib:
cmake -S llvm -B build -G 'Visual Studio 16 2019' -DLLVM_ENABLE_ZLIB=OFF
这样你就可以源码编译了,理论上来说不会有什么大问题。
这里我建议使用visual studio编译器进行编译,毕竟这是windows。
接下来找到:
E:\codes\libs\llvm-project\build\Release\bin
这里该你的路径,在这里面有一个llvm-config.exe
的东西。然后再你的tvm config配置中修改:
# Possible values: # - ON: enable llvm with cmake's find search # - OFF: disable llvm, note this will disable CPU codegen # which is needed for most cases # - /path/to/llvm-config: enable specific LLVM when multiple llvm-dev is available. set(USE_LLVM "E:/codes/libs/llvm-project/build/Release/bin/llvm-config.exe")
改成你的绝对路径。为什么要用源码编译llvm呢?因为你下载prebuilt binary其实是没有llvm-config.exe的。
tvm编译
然后切换到tvm编译,刚才我们已经修改了cmake的config,怎么clone tvm,修改confgi你可以参考官方。
mkdir build cd build cmake .. -G 'Visual Studio 16 2019' cmake --build . --config Release
进行tvm的编译。
在这里你可能会遇到一个zlib的错误:
LINK : fatal error LNK1181: 无法打开输入文件“z.lib”
这是因为你没有关闭libtracback,我看了半天,好像就 libtraceback 和 cnpy用到了zlib。
# Whether to use libbacktrace # Libbacktrace provides line and column information on stack traces from errors. # It is only supported on linux and macOS. # Possible values: # - AUTO: auto set according to system information and feasibility # - ON: enable libbacktrace # - OFF: disable libbacktrace set(USE_LIBBACKTRACE OFF)
没有办法,删掉build重新build。
最后一步,安装python,直接
pip install -e .
我们来尝试一下mlc-llm
如果你运行mlc-llm,只是跑一下看看,那么可以直接下载conda的预编译二进制,但是如果你想自己生成,或者你想使用python,那么就得源码编译。
t\mlc-llm\tests\chat.py", line 11, in <module> from tvm import relax
如果你遇到这个错误,那么嘿嘿,恭喜你,tvm再次入土。
你需要编译unity分支。
没有想到吧?切换到unity分支再重新编译把!这个时候,我们再在 mlc-llm中尝试看看relax的相关代码能不能引入:
更多link
-
-