torch-mlir
torch-mlir 是连接 PyTorch 生态系统与 MLIR(多级中间表示)编译器架构的关键桥梁。它的核心目标是为 PyTorch 提供原生的编译器支持,让开发者能够顺畅地将 PyTorch 模型转换为 MLIR 格式,进而部署到各种异构硬件上。
在 torch-mlir 出现之前,每家硬件厂商若想支持 PyTorch,往往需要重复开发各自的前端转换器,导致了严重的软件碎片化和资源浪费。torch-mlir 通过提供统一的标准接入层,解决了这一痛点。它允许厂商像为 LLVM 添加新后端一样,专注于自身硬件的优化,而无需再重新实现一套 PyTorch 解析逻辑。目前,该项目支持通过 ONNX 或 PyTorch FX 等多种路径将模型降级为 Torch MLIR 方言。
这款工具主要面向编译器开发者、AI 基础设施工程师以及希望将模型高效部署到特定硬件的研究人员。对于正在构建自定义 AI 编译栈的团队(如 IREE 或 BladeDISC 的用户),torch-mlir 是不可或缺的基础组件。作为 LLVM 孵化项目,它虽未正式并入 LLVM 发行版,但已展现出极高的稳定性和社区活跃度,是推动 AI 编译技术标准化和降低开发成本的重要开源力量。
使用场景
一家边缘计算初创公司正试图将基于 PyTorch 研发的缺陷检测模型部署到多种异构 AI 加速芯片上,以满足工厂产线的实时质检需求。
没有 torch-mlir 时
- 重复造轮子成本高:每适配一款新硬件,团队都必须为该芯片单独编写一套从 PyTorch 算子到私有中间表示的转换前端,开发周期长达数周。
- 算子覆盖不全:自研转换器难以紧跟 PyTorch 版本更新,遇到新算子或复杂动态形状时经常报错,导致模型需大幅修改才能运行。
- 优化效果受限:缺乏统一的编译器基础设施,无法利用成熟的图优化技术,模型在不同芯片上的推理性能差异巨大且难以调优。
- 维护噩梦:随着支持的硬件种类增加,多套独立的前端代码库变得极难维护,任何 PyTorch 升级都可能导致所有后端适配崩溃。
使用 torch-mlir 后
- 统一接入标准:团队只需通过 torch-mlir 将 PyTorch 模型一次性转换为标准的 MLIR dialect,各硬件厂商仅需关注底层代码生成,适配时间缩短至几天。
- 生态无缝兼容:直接复用 PyTorch 原生生态,支持 FX 和 ONNX 等多种导入路径,复杂模型和新算子无需修改即可顺利编译通过。
- 性能自动提升:依托 MLIR 强大的分层优化架构,自动执行算子融合与内存优化,使模型在各类边缘芯片上均能发挥接近手写的极致性能。
- 长期可维护性:解耦了框架与硬件的强依赖,PyTorch 升级由社区统一跟进,团队可专注于业务逻辑而非底层编译器细节。
torch-mlir 成功构建了连接 PyTorch 生态与异构硬件的桥梁,让算法团队不再受困于碎片化的部署难题,真正实现了“一次编写,处处高效运行”。
运行环境要求
- 未说明
未说明 (安装示例中使用了 CPU 版本的 PyTorch)
未说明

快速开始
Torch-MLIR 项目
Torch-MLIR 项目旨在为 MLIR 生态系统提供来自 PyTorch 生态的第一流编译器支持。
本项目正在参与 LLVM 孵化器流程:因此,它不属于任何官方的 LLVM 发布版本。虽然孵化状态并不一定反映代码的完整性和稳定性,但它确实表明该项目尚未被认可为 LLVM 的一部分。
PyTorch PyTorch 是一个开源机器学习框架,能够无缝地从研究和原型设计过渡到生产环境中的部署。
MLIR MLIR 项目提供了一种构建可扩展且可重用编译器架构的新方法,解决了软件碎片化问题,降低了开发领域特定编译器的成本,提升了针对异构硬件的编译效率,并促进了现有编译器之间的兼容性。
Torch-MLIR 多家厂商已将 MLIR 作为其系统中的中间层,从而能够将 PyTorch、JAX 和 TensorFlow 等框架映射到 MLIR,再进一步下放到目标硬件上。我们已经观察到大约六个从 PyTorch 到 MLIR 的自定义下放实现,这使得硬件厂商可以更加专注于自身的核心价值,而无需为 MLIR 再次实现一个新的 PyTorch 前端。最终目标是类似于当前硬件厂商为 LLVM 添加目标支持的方式,而不是每个厂商都去实现 Clang 或 C++ 前端。
从 PyTorch 到 Torch MLIR Dialect 的所有路径
我们将 PyTorch 下降到 Torch MLIR Dialect 的路径主要有两条:
- 以 ONNX 作为入口点。
- 以 Fx 作为入口点。
项目沟通
- LLVM Discord 上的
#torch-mlir频道——这是最活跃的沟通渠道。 - GitHub 问题 这里。
- LLVM Discourse 中的
torch-mlir版块。
安装 torch-mlir 快照
截至撰写本文时,我们发布了适用于 Python 3.11 和 Python 3.10 的 预构建 torch-mlir 快照。
如果您使用的是受支持的 Python 版本,可以通过以下命令初始化一个虚拟环境:
python3.11 -m venv mlir_venv
source mlir_venv/bin/activate
或者,如果您希望使用 conda 在多个 Python 版本之间切换,可以创建一个包含 Python 3.11 的 conda 环境:
conda create -n torch-mlir python=3.11
conda activate torch-mlir
python -m pip install --upgrade pip
然后,我们可以安装对应版本的 torch 和 torchvision 夜间构建版的 torch-mlir:
pip install --pre torch-mlir torchvision \
--extra-index-url https://download.pytorch.org/whl/nightly/cpu \
-f https://github.com/llvm/torch-mlir-release/releases/expanded_assets/dev-wheels
使用 torch-mlir
Torch-MLIR 主要是一个集成到编译器中,用于连接 PyTorch 和 ONNX 的项目。如果您正在考虑进行新的集成,可以参考现有的下游项目:
尽管该项目的大部分功能都是通过测试路径来验证的,但终端用户也可以在不进行进一步集成的情况下直接使用一些 API:
FxImporter ResNet18
# 如果您尚未克隆代码,请获取最新示例
wget https://raw.githubusercontent.com/llvm/torch-mlir/main/projects/pt1/examples/fximporter_resnet18.py
# 以独立脚本形式运行 ResNet18。
python projects/pt1/examples/fximporter_resnet18.py
# 输出
从 https://upload.wikimedia.org/wikipedia/commons/2/26/YellowLabradorLooking_new.jpg 加载图像
...
PyTorch 预测
[('拉布拉多寻回犬', 70.65674591064453), ('金毛寻回犬', 4.988346099853516), ('萨路基犬, 瞪羚猎犬', 4.477451324462891)]
torch-mlir 预测
[('拉布拉多寻回犬', 70.6567153930664), ('金毛寻回犬', 4.988325119018555), ('萨路基犬, 瞪羚猎犬', 4.477458477020264)]
仓库布局
该项目遵循典型的基于 MLIR 的项目的惯例:
include/torch-mlir和lib目录用于存放 C++ MLIR 编译器方言和优化 pass。test目录用于存放测试代码。tools目录用于存放torch-mlir-opt等工具。python顶级目录用于存放 Python 代码。
开发者
如果您希望从源码开发并构建 torch-mlir,请参阅 开发说明。
版本历史
snapshot-20240127.10962024/01/27snapshot-20240126.10952024/01/26snapshot-20240125.10942024/01/25snapshot-20240124.10932024/01/24snapshot-20240123.10922024/01/23snapshot-20240122.10912024/01/22snapshot-20240121.10902024/01/21snapshot-20240120.10892024/01/20snapshot-20240119.10882024/01/19snapshot-20240118.10872024/01/18snapshot-20240117.10862024/01/17snapshot-20240116.10852024/01/16snapshot-20240115.10842024/01/15snapshot-20240114.10832024/01/14snapshot-20240113.10822024/01/13snapshot-20240112.10812024/01/12snapshot-20240111.10802024/01/11snapshot-20240110.10792024/01/10snapshot-20240109.10782024/01/09snapshot-20240108.10772024/01/08常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器