编译支持vulkan的TVM(mlc-ai/relax)

使用mlc-chat的python包的时候会报VK_ERROR_INITIALIZATION_FAILED,但是cli版本正常工作,经检查预编译的tvm没法使用vulkan。遂自己编译。官网教程有很多问题,这里记录自己成功的经验

安装依赖

  • CMake >= 3.24

  • LLVM >= 15

  • Git

  • Vulkan/CUDA/ROCm/OpenCL/Metal

  • 折腾了半天发现Debian12还得装这个,不然最后一步报错

    sudo apt install libpolly-16-dev

创建环境

需要conda

# make sure to start with a fresh environment
conda env remove -n tvm-build-venv
# create the conda environment with build dependency
conda create -n tvm-build-venv -c conda-forge \
    "llvmdev>=15" \
    "cmake>=3.24" \
    git
# enter the build environment
conda activate tvm-build-venv

下载

官网给的下载脚本都没法下载,啊哈哈.jpg

# clone from GitHub
git clone --recursive https://github.com/mlc-ai/relax tvm-unity && cd tvm-unity
# create the build directory
rm -rf build && mkdir build && cd build
# specify build requirements in `config.cmake`
cp ../cmake/config.cmake .

配置编译

修改config.cmake,以下是要添加的项目。

set(CMAKE_BUILD_TYPE RelWithDebInfo)
set(HIDE_PRIVATE_SYMBOLS ON)

以下是要修改的项目。

#llvm使用已安装的版本!
set(USE_LLVM "llvm-config-16 --ignore-libllvm --link-static")

#把你需要的功能改成ON
set(USE_VULKAN ON)

编译

cmake .. && cmake --build . --parallel $(nproc)

安装至自定义虚拟环境

conda activate your-own-env
conda install python # make sure python is installed
cd /path-to-tvm-unity/python
pip install -e .

验证安装

>>> import tvm
>>> vk=tvm.device("vulkan")
>>> vk.exist
True

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值