Apple M1 ARM MacBook 安装 Apache TVM

embedded/2025/1/31 11:05:17/

在这里插入图片描述

一、前置准备

  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 以避免不兼容):

    conda create --name tvm python=3.8 -y
    conda activate tvm
    
  2. 安装必要的 Python 包

    conda install -y numpy decorator attrs psutil tornado xgboost cloudpickle
    

三、安装系统依赖

  1. 使用 Homebrew 安装必要的依赖:
    brew install llvm cmake ninja git
    
  2. 确保 LLVM 处于最新版本,并可以通过 llvm-config --version 验证安装是否成功。

四、下载并配置 TVM

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

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

    mkdir build
    cp cmake/config.cmake build/
    cd build
    
  3. 修改 config.cmake 以启用 LLVM 支持:
    打开 build/config.cmake,找到

    set(USE_LLVM OFF)
    

    替换为

    set(USE_LLVM ON)
    

五、编译并安装 TVM

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

    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 环境:

    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. 编译并安装

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

六、安装 TVM 的 Python 绑定

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

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

    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 环境),执行:
    python -c "import tvm; print(tvm.__version__)"
    

在这里插入图片描述
若能正常输出 TVM 版本号,说明安装成功。

  1. Jupyter Notebook 中使用
    • 如果想在 Notebook 中使用该环境:
      conda activate tvm
      pip install ipykernel
      python -m ipykernel install --user --name tvm --display-name "Python (tvm)"
      
    • 打开 Notebook 后,选择内核为 “Python (tvm)”,然后执行:
      import tvm
      print(tvm.__version__)
      
    • 若能正确输出版本号,表明 Notebook 中也可正常使用。

在这里插入图片描述


http://www.ppmy.cn/embedded/158334.html

相关文章

《网络安全中的“泛洪”攻击:揭秘、防范与应对策略》

各类泛洪攻击总结 IPV4泛洪 一、什么是泛洪? 泛洪的基本原理就是基于协议通信,完成大流量高并发操作,导致目标主机各类资源消耗过多而无法提供正常的服务。基于多线程或多进程(MAC地址泛洪,ARP泛洪欺骗)。 (1) 攻击…

TL494方案开关电源方案

TL494是德州仪器公司生产的一款固定频率脉宽调制(PWM)控制芯片,广泛应用于开关电源等电路中,以下是其相关方案介绍: 基本特性 双端输出:可提供推挽或单端两种输出模式。推挽模式下能驱动两个功率开关管交…

vue框架技术相关概述以及前端框架整合

vue框架技术概述及前端框架整合 1 node.js 介绍:什么是node.js Node.js就是运行在服务端的JavaScript。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎。 作用 1 运行java需要安装JDK,而Node.js是JavaScript的运行环…

C++——list的了解和使用

目录 引言 forward_list与list 标准库中的list 一、list的常用接口 1.list的迭代器 2.list的初始化 3.list的容量操作 4.list的访问操作 5.list的修改操作 6.list的其他操作 二、list与vector的对比 结束语 引言 本篇博客要介绍的是STL中的list。 求点赞收藏评论…

【Bug 记录】el-sub-menu 第一次进入默认不高亮

项目场景: 项目场景:el-sub-menu 第一次进入默认不高亮 问题描述 例如:sub-menu 的 index 后端默认传过来是 number,我们需要手动转为 string,否则会有警告,而且第一次进入 sub-menu 默认不高亮。 解决方…

论文阅读(十二):全基因组关联研究中生物通路的图形建模

1.论文链接:Graphical Modeling of Biological Pathways in Genome- wide Association Studies 摘要: 全基因组关联研究(Genome-wide association studies,GWASs)被广泛应用于寻找疾病相关基因的候选者,以…

Autogen_core: Model Context

目录 示例代码代码解释另一个例子 示例代码 from dataclasses import dataclassfrom autogen_core import AgentId, MessageContext, RoutedAgent, SingleThreadedAgentRuntime, message_handler from autogen_core.model_context import BufferedChatCompletionContext from …

使用jmeter进行压力测试

使用jmeter进行压力测试 jmeter安装 官网安装包下载,选择二进制文件,解压 tar -xzvf apache-jmeter-x.tgz依赖jdk安装 yum install java-1.8.0-openjdk环境变量配置,修改/etc/profile文件,添加以下内容 export JMETER/opt/apa…