<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[TVM2023 windows build，mlc-llm项目windows尝鲜]]></title><description><![CDATA[<p>TVM2023 windows 编译教程. 你可以直接下载mlc-llm的conda预编译进行使用，但是由于我需要转其他模型。因此我需要安装tvm，在windows上。这又回到了如何在windows上安装tvm的问题。</p>
<blockquote>
<p>需要注意的是，mac和linux可以直接下载官方预编译包。windows目前还没有，你可能需要从源码编译llvm先。</p>
</blockquote>
<p>最麻烦就是还得源码编译llvm，真鸡儿蛋疼。</p>
<h2>源码编译llvm</h2>
<p>llvm代码古老，所以很庞大，2GB，如果你不想clone这么大，可以clone小一点的，用shallow clone：</p>
<pre><code>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
</code></pre>
<p>请注意，如果你遇到zlib的问题，可尝试再编译llvm的时候拿掉zlib:</p>
<pre><code> cmake -S llvm -B build -G 'Visual Studio 16 2019' -DLLVM_ENABLE_ZLIB=OFF
</code></pre>
<p>这样你就可以源码编译了，理论上来说不会有什么大问题。</p>
<p><strong>这里我建议使用visual studio编译器进行编译</strong>，毕竟这是windows。</p>
<p>接下来找到： <code>E:\codes\libs\llvm-project\build\Release\bin</code> 这里该你的路径，在这里面有一个 <code>llvm-config.exe</code> 的东西。</p>
<p>然后再你的tvm config配置中修改：</p>
<pre><code># 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 &quot;E:/codes/libs/llvm-project/build/Release/bin/llvm-config.exe&quot;)
</code></pre>
<p>改成你的绝对路径。为什么要用源码编译llvm呢？因为你下载prebuilt binary其实是没有llvm-config.exe的。</p>
<h2>tvm编译</h2>
<p>然后切换到tvm编译，刚才我们已经修改了cmake的config，怎么clone tvm，修改confgi你可以参考官方。</p>
<pre><code>mkdir build
cd build
cmake .. -G 'Visual Studio 16 2019'
cmake --build . --config Release
</code></pre>
<p>进行tvm的编译。</p>
<p>在这里你可能会遇到一个zlib的错误：</p>
<pre><code>LINK : fatal error LNK1181: 无法打开输入文件“z.lib”
</code></pre>
<p>这是因为你没有关闭libtracback，我看了半天，好像就 libtraceback 和 cnpy用到了zlib。</p>
<pre><code># 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)
</code></pre>
<p>没有办法，删掉build重新build。</p>
<p><img src="/assets/uploads/files/1683186921650-b942cec3-0177-49ae-803a-00cb86a4962e-image.png" alt="b942cec3-0177-49ae-803a-00cb86a4962e-image.png" class="img-responsive img-markdown" /></p>
<p>最后一步，安装python，直接 <code>pip install -e .</code></p>
<p><img src="/assets/uploads/files/1683187098304-5a3f2644-d844-4e6c-b8c1-bbc7e3d2b400-image.png" alt="5a3f2644-d844-4e6c-b8c1-bbc7e3d2b400-image.png" class="img-responsive img-markdown" /></p>
<h2>我们来尝试一下mlc-llm</h2>
<p>如果你运行mlc-llm，只是跑一下看看，那么可以直接下载conda的预编译二进制，但是如果你想自己生成，或者你想使用python，那么就得源码编译。</p>
<pre><code>t\mlc-llm\tests\chat.py&quot;, line 11, in &lt;module&gt;
    from tvm import relax
</code></pre>
<p>如果你遇到这个错误，那么嘿嘿，恭喜你，tvm再次入土。</p>
<p>你需要编译unity分支。<br />
没有想到吧？切换到unity分支再重新编译把！</p>
<p>这个时候，我们再在 mlc-llm中尝试看看relax的相关代码能不能引入：</p>
<h2>更多link</h2>
<ul>
<li><a href="https://tvm.hyper.ai/docs/tutorial/intro" target="_blank" rel="noopener noreferrer nofollow">https://tvm.hyper.ai/docs/tutorial/intro</a></li>
</ul>
]]></description><link>http://t.manaai.cn/topic/3280/tvm2023-windows-build-mlc-llm项目windows尝鲜</link><generator>RSS for Node</generator><lastBuildDate>Thu, 15 Oct 2026 21:01:46 GMT</lastBuildDate><atom:link href="http://t.manaai.cn/topic/3280.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 May 2023 04:08:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TVM2023 windows build，mlc-llm项目windows尝鲜 on Thu, 04 May 2023 08:52:34 GMT]]></title><description><![CDATA[<p>TVM2023 windows 编译教程. 你可以直接下载mlc-llm的conda预编译进行使用，但是由于我需要转其他模型。因此我需要安装tvm，在windows上。这又回到了如何在windows上安装tvm的问题。</p>
<blockquote>
<p>需要注意的是，mac和linux可以直接下载官方预编译包。windows目前还没有，你可能需要从源码编译llvm先。</p>
</blockquote>
<p>最麻烦就是还得源码编译llvm，真鸡儿蛋疼。</p>
<h2>源码编译llvm</h2>
<p>llvm代码古老，所以很庞大，2GB，如果你不想clone这么大，可以clone小一点的，用shallow clone：</p>
<pre><code>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
</code></pre>
<p>请注意，如果你遇到zlib的问题，可尝试再编译llvm的时候拿掉zlib:</p>
<pre><code> cmake -S llvm -B build -G 'Visual Studio 16 2019' -DLLVM_ENABLE_ZLIB=OFF
</code></pre>
<p>这样你就可以源码编译了，理论上来说不会有什么大问题。</p>
<p><strong>这里我建议使用visual studio编译器进行编译</strong>，毕竟这是windows。</p>
<p>接下来找到： <code>E:\codes\libs\llvm-project\build\Release\bin</code> 这里该你的路径，在这里面有一个 <code>llvm-config.exe</code> 的东西。</p>
<p>然后再你的tvm config配置中修改：</p>
<pre><code># 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 &quot;E:/codes/libs/llvm-project/build/Release/bin/llvm-config.exe&quot;)
</code></pre>
<p>改成你的绝对路径。为什么要用源码编译llvm呢？因为你下载prebuilt binary其实是没有llvm-config.exe的。</p>
<h2>tvm编译</h2>
<p>然后切换到tvm编译，刚才我们已经修改了cmake的config，怎么clone tvm，修改confgi你可以参考官方。</p>
<pre><code>mkdir build
cd build
cmake .. -G 'Visual Studio 16 2019'
cmake --build . --config Release
</code></pre>
<p>进行tvm的编译。</p>
<p>在这里你可能会遇到一个zlib的错误：</p>
<pre><code>LINK : fatal error LNK1181: 无法打开输入文件“z.lib”
</code></pre>
<p>这是因为你没有关闭libtracback，我看了半天，好像就 libtraceback 和 cnpy用到了zlib。</p>
<pre><code># 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)
</code></pre>
<p>没有办法，删掉build重新build。</p>
<p><img src="/assets/uploads/files/1683186921650-b942cec3-0177-49ae-803a-00cb86a4962e-image.png" alt="b942cec3-0177-49ae-803a-00cb86a4962e-image.png" class="img-responsive img-markdown" /></p>
<p>最后一步，安装python，直接 <code>pip install -e .</code></p>
<p><img src="/assets/uploads/files/1683187098304-5a3f2644-d844-4e6c-b8c1-bbc7e3d2b400-image.png" alt="5a3f2644-d844-4e6c-b8c1-bbc7e3d2b400-image.png" class="img-responsive img-markdown" /></p>
<h2>我们来尝试一下mlc-llm</h2>
<p>如果你运行mlc-llm，只是跑一下看看，那么可以直接下载conda的预编译二进制，但是如果你想自己生成，或者你想使用python，那么就得源码编译。</p>
<pre><code>t\mlc-llm\tests\chat.py&quot;, line 11, in &lt;module&gt;
    from tvm import relax
</code></pre>
<p>如果你遇到这个错误，那么嘿嘿，恭喜你，tvm再次入土。</p>
<p>你需要编译unity分支。<br />
没有想到吧？切换到unity分支再重新编译把！</p>
<p>这个时候，我们再在 mlc-llm中尝试看看relax的相关代码能不能引入：</p>
<h2>更多link</h2>
<ul>
<li><a href="https://tvm.hyper.ai/docs/tutorial/intro" target="_blank" rel="noopener noreferrer nofollow">https://tvm.hyper.ai/docs/tutorial/intro</a></li>
</ul>
]]></description><link>http://t.manaai.cn/post/3939</link><guid isPermaLink="true">http://t.manaai.cn/post/3939</guid><dc:creator><![CDATA[刘看山]]></dc:creator><pubDate>Thu, 04 May 2023 08:52:34 GMT</pubDate></item></channel></rss>