Apple M1 ARM MacBook 安装 Apache TVM

一、前置准备

  1. Apple Silicon MacBook

    本文以 Apple M1/M2 为例,M3 及后续版本同理。

  2. 已安装 Homebrew

    macOS 上的包管理器,可前往 Homebrew 官网 查看安装指引。

  3. 已安装 Anaconda 或 Miniforge

    • 确保 Conda 是 ARM 版本 (通过 conda info | grep platform 验证应为 osx-arm64)。

二、创建并激活 Conda 环境

  1. 在终端创建环境(Python 3.8 为示例;TVM 建议 3.7 或 3.8 以避免不兼容):

    bash 复制代码
    conda create --name tvm python=3.8 -y
    conda activate tvm
  2. 安装必要的 Python 包

    bash 复制代码
    conda install -y numpy decorator attrs psutil tornado xgboost cloudpickle

三、安装系统依赖

  1. 使用 Homebrew 安装必要的依赖:

    bash 复制代码
    brew install llvm cmake ninja git
  2. 确保 LLVM 处于最新版本,并可以通过 llvm-config --version 验证安装是否成功。


四、下载并配置 TVM

  1. 克隆 TVM 源码并初始化子模块:

    bash 复制代码
    git clone --recursive https://github.com/apache/tvm tvm
    cd tvm
    git submodule update --init --recursive
  2. 创建 build 目录并复制默认配置文件:

    bash 复制代码
    mkdir build
    cp cmake/config.cmake build/
    cd build
  3. 修改 config.cmake 以启用 LLVM 支持:

    打开 build/config.cmake,找到

    cmake 复制代码
    set(USE_LLVM OFF)

    替换为

    cmake 复制代码
    set(USE_LLVM ON)

五、编译并安装 TVM

  1. 设置 LLVM 相关环境变量(让 CMake 能够找到 LLVM):

    bash 复制代码
    export LLVM_DIR=$(brew --prefix llvm)/lib/cmake/llvm
    export PATH=$(brew --prefix llvm)/bin:$PATH
    
    # 可选:永久添加到 ~/.zshrc 或 ~/.bashrc
    echo 'export LLVM_DIR=$(brew --prefix llvm)/lib/cmake/llvm' >> ~/.zshrc
    echo 'export PATH=$(brew --prefix llvm)/bin:$PATH' >> ~/.zshrc
    source ~/.zshrc
  2. 使用 CMake 配置编译,并将安装路径指定到当前 Conda 环境:

    bash 复制代码
    cmake .. -G Ninja \
        -DCMAKE_OSX_ARCHITECTURES=arm64 \
        -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
    • -DCMAKE_OSX_ARCHITECTURES=arm64 指定 Apple Silicon 架构
    • -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX 指定安装到 Conda 环境
  3. 编译并安装

    bash 复制代码
    ninja -j$(sysctl -n hw.ncpu)
    ninja install
    • -j$(sysctl -n hw.ncpu) 表示使用所有可用 CPU 核心来加速编译

六、安装 TVM 的 Python 绑定

  1. 在 Conda 环境内安装 Python 绑定

    bash 复制代码
    cd ../python
    pip install -e .
    • -e . 代表开发模式安装,后续修改源码可实时生效。
  2. 设置环境变量(可选,如果需要 PYTHONPATH 自动找到源码):

    bash 复制代码
    export TVM_HOME=~/你的/tvm路径
    export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
    
    # 可选:写入 ~/.zshrc 或 ~/.bashrc
    echo 'export TVM_HOME=~/GitHub/tvm' >> ~/.zshrc
    echo 'export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}' >> ~/.zshrc
    source ~/.zshrc

七、验证安装

  1. 命令行测试
    回到命令行(已激活 tvm 环境),执行:

    bash 复制代码
    python -c "import tvm; print(tvm.__version__)"

若能正常输出 TVM 版本号,说明安装成功。

  1. Jupyter Notebook 中使用
    • 如果想在 Notebook 中使用该环境:

      bash 复制代码
      conda activate tvm
      pip install ipykernel
      python -m ipykernel install --user --name tvm --display-name "Python (tvm)"
    • 打开 Notebook 后,选择内核 为 "Python (tvm)",然后执行:

      python 复制代码
      import tvm
      print(tvm.__version__)
    • 若能正确输出版本号,表明 Notebook 中也可正常使用。

相关推荐
山后太阳14 小时前
Keil5(MDK-ARM)完整下载安装教程+入门教程:从零搭建STM32开发环境
arm开发·stm32·嵌入式硬件
zz_lzh14 小时前
arm版AI牛马:armbian(rk3588)设备部署openclaw
arm开发·人工智能·arm
lanxiao88882 天前
F1C100S 内核
arm开发
杰杰桀桀桀2 天前
基于stm32ARM库函数的IIR二阶巴特沃斯低通滤波器--附完整代码
arm开发·stm32·嵌入式硬件·数字滤波器·巴特沃斯低通滤波
TBrL7UtdTELTTdut4BAL2 天前
ARM Cortex-A53 (无AES)平台加密网络转发性能测试与对比分析
arm开发·集成测试
AI服务老曹2 天前
架构实战:如何基于 GB28181 与异构计算构建跨平台(X86/ARM)AI 视频管理系统?源码交付深度解析
arm开发·人工智能·架构
DolphinScheduler社区3 天前
DolphinScheduler 3.3.2 如何调用 DataX 3.0 + SeaTunnel 2.3.12?附 Demo演示!
java·spark·apache·海豚调度·大数据工作流调度
CinzWS3 天前
A53 FPGA原型验证:从RTL到可运行系统的挑战
arm开发·嵌入式·芯片验证·原型验证·a53
YaBingSec3 天前
玄机网络安全靶场:Apache HTTPD 解析漏洞(CVE-2017-15715)WP
java·笔记·安全·web安全·php·apache
AI服务老曹3 天前
深度解析:支持 GB28181/RTSP 及异构计算(X86/ARM+GPU/NPU)的 AI 视频管理平台架构方案(附源码交付与 Docker 部署)
arm开发·人工智能·音视频