AscendNPU-IR:基于MLIR的昇腾中间表示项目

AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优

分支1Tags0
文件最后提交记录最后更新时间
[AscendNPU IR] modify issue template Co-authored-by: huchengbei<huqiao9@huawei.com> # message auto-generated for no-merge-commit merge: !59 merge update_issue_template into master [AscendNPU IR] modify issue template Created-by: huchengbei Commit-by: huchengbei Merged-by: ascend-robot Description: ## 描述 Description 请提供此 Pull Request 的高级别说明。 Please describe what this PR is about. ## 类型 Category - [ ] Bug修复 Bugfix - [ ] 新功能 New feature - [ ] 代码风格更新(格式化,局部变量)Style changes - [ ] 重构(即不是新增功能,也不是修改bug的代码变动)Refactor - [x] 构建过程或辅助工具的变动 Build-related - [ ] 文档内容更新 Docs ## Checklist - [x] 我的代码遵循这个项目的代码风格 My code follows the project's code style - [x] 我已经自己测试过我的代码 I have self-tested my code - [x] 我已经更新了相应的文档 I have updated the relevant documentation - [x] 我已经根据需要更新了对应的变更日志 I have updated the changelog as needed - [x] 我已经在标题中正确使用了类型标签(例如:feat:, fix:)I have correctly used type labels in the title (e.g., feat:, fix:) 相关issue:https://gitcode.com/Ascend/AscendNPU-IR/issues/43 See merge request: Ascend/AscendNPU-IR!597 个月前
add github action workflow 28 天前
!1104 merge pr_hypot into master [AscendNPU-IR] feat: add hypot normalize support and test Created-by: muchangqing2025 Commit-by: muchangqing2025 Merged-by: ascend-robot Description: solve https://gitcode.com/openeuler/llvm-project/issues/32 issue编号 #32 ## 描述 Description 1、在normalize pass层面增加对hfusion.hypot的支持,同时补充相应测试用例。 2、直接从tl.hypot降到hfusion.hypot。 3、已在服务器上通过精度测试。 4、torch只有2输入版本,所以2输入版本支持f32、f16、bf16,与gpu一致。 5、3输入版本属于扩展实现,只支持f32与f16。 ## 类型 Category - [ ] Bug修复 Bugfix - [ ] 新功能 New feature - [ ] 代码风格更新(格式化,局部变量)Style changes - [ ] 重构(即不是新增功能,也不是修改bug的代码变动)Refactor - [ ] 构建过程或辅助工具的变动 Build-related - [ ] 文档内容更新 Docs ## Checklist - [ ] 我的代码遵循这个项目的代码风格 My code follows the project's code style - [ ] 我已经自己测试过我的代码 I have self-tested my code - [ ] 我已经更新了相应的文档 I have updated the relevant documentation - [ ] 我已经根据需要更新了对应的变更日志 I have updated the changelog as needed - [ ] 我已经在标题中正确使用了类型标签(例如:feat:, fix:)I have correctly used type labels in the title (e.g., feat:, fix:) See merge request: Ascend/AscendNPU-IR!11048 天前
!1119 merge update_wheel_and_workflow into master Update build.sh and add workflow to build wheel better Created-by: huchengbei Commit-by: huchengbei Merged-by: tanshengshun Description: ## 描述 Description 请提供此 Pull Request 的高级别说明。 Please describe what this PR is about. 1. Improve wheel build: auto-detect platform, remove CustomBdistWheel 2. add github action workflow 3. Update build.sh to optimize build step 4. Install bc files to install/lib and fix lib copy in workflows ## 添加 GitHub Actions CI 构建与 Wheel 打包流程 ### 概述 本 PR 新增了 GitHub Actions 自动化构建流程,支持在 x86_64 和 aarch64 平台上构建 bishengir-compile / bishengir-opt 二进制文件,并打包为 ascendnpu-ir 的 Python wheel 包(支持 Python 3.9~3.12)。 ### 主要变更 1. 新增 GitHub Actions Workflow - wheel-x86_64.yml :x86_64 平台构建,运行在 ubuntu-latest + manylinux 容器中 - wheel-aarch64.yml :aarch64 原生构建,运行在 self-hosted ARM64 runner + manylinux 容器中 - 触发条件:tag 推送( * ) 2. Wheel 打包流程优化 - 自动检测 CPU 架构和 manylinux 版本,生成正确的平台标签(如 manylinux_2_28_x86_64 ) - 移除 CustomBdistWheel ,改用 _placeholder.c 触发平台特定 wheel tag - 简化 setup.py 逻辑,提升可维护性 3. 构建脚本改进 - build.sh : - build_wheel.sh :增强平台自动检测和 wheel 构建逻辑 4. 模板库 .bc 文件安装 - CMakeLists.txt :新增 install(FILES ...) 指令,将 5 个 .bc 文件( meta_op.aic.bc 、 meta_op.aiv.bc 、 meta_op.mix.aic.bc 、 meta_op.mix.aiv.bc 、 host.bc )安装到 install/lib/ ,指定 COMPONENT bishengir-publish-products 确保被正确的 install target 触发 5. pyproject.toml 修复 - license 字段从废弃的 {text = "..."} 格式改为 SPDX 字符串 "Apache-2.0" - 移除 classifiers 中已废弃的 License 分类器 ## 类型 Category - [x] Bug修复 Bugfix - [x] 新功能 New feature - [x] 构建过程或辅助工具的变动 Build-related - [x] 文档内容更新 Docs ## Checklist - [x] 我的代码遵循这个项目的代码风格 My code follows the project's code style - [x] 我已经自己测试过我的代码 I have self-tested my code - [x] 我已经更新了相应的文档 I have updated the relevant documentation - [x] 我已经根据需要更新了对应的变更日志 I have updated the changelog as needed - [x] 我已经在标题中正确使用了类型标签(例如:feat:, fix:)I have correctly used type labels in the title (e.g., feat:, fix:) See merge request: Ascend/AscendNPU-IR!111927 天前
[AscendNPU-IR] Updated tilelang repo 16 天前
[AscendNPU IR] Add HFusion Co-authored-by: chenxiangting<chenxiangting@huawei.com> 7 个月前
[BiShengIR] add clang-format/tidy 10 个月前
Fix clang-tidy naming rule 7 个月前
[Huawei][AscendNPUIR]practice 3 个月前
[AscendNPU IR] Add HFusion Co-authored-by: chenxiangting<chenxiangting@huawei.com> 7 个月前
[Huawei][AscendNPU IR] adapt SelectRoundModeTest.cpp gtest for a3 Offering: AscendNPU IR 1 个月前
[AscendNPU IR] Add HFusion Co-authored-by: chenxiangting<chenxiangting@huawei.com> 7 个月前
[AscendNPU IR] Add HFusion Co-authored-by: chenxiangting<chenxiangting@huawei.com> 7 个月前
[AscendNPU IR] Add OWNERS Co-authored-by: SL25<L912572014@163.com> 7 个月前
[DOC] update readme add some badges 1 个月前
[DOC] update readme add some badges 1 个月前
[Huawei][AscendNPU IR] add notice for open source software Signed-off-by: tianjihua <tianjihua@huawei.com>1 个月前

AscendNPU-IR

面向昇腾的MLIR中间表示,提供昇腾完备表达能力

Documentation license contributing SIG

🎯 项目介绍

AscendNPU IR定位

AscendNPU IR(AscendNPU Intermediate Representation)是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优。

AscendNPU IR提供多级抽象接口:提供一系列高层抽象接口,屏蔽昇腾计算、搬运、同步指令细节,编译优化自动感知硬件架构,将硬件无关表达映射到底层指令,提升算子开发易用性;同时提供细粒度性能控制接口,能够精准控制片上内存地址、流水同步插入位置以及是否使能乒乓流水优化等,允许性能细粒度控制。

AscendNPU IR通过开源社区开放接口,支持生态框架灵活对接,高效使能昇腾AI处理器。

🔗 仓库与文档

🔍 仓库结构

AscendNPU IR仓关键目录如下所示:

├── bishengir            // 源码目录
│   ├── cmake
│   ├── include          // 头文件
│   ├── lib              // 源文件
│   ├── test             // 测试用例
│   │   └── Integration   // 端到端用例
│   └── tools            // 二进制工具
├── build-tools          // 构建工具
├── CMakeLists.txt
├── docs                 // 文档
├── LICENSE
├── NOTICE
├── README.md
└── README_zh.md

📚 文档说明

本项目在 docs/ 目录下使用基于 Sphinx 的文档工程,通过成对的 Markdown 源文件提供英文与中文双语文档

  • 语言:完整文档方案请参见 docs/README.md(英文)与 docs/README_zh.md(中文)。
  • 文档组织方案
    • 英文:入口页为 docs/source/en/index.rst,正文位于 docs/source/en 目录下。
    • 中文:入口页为 docs/source/zh_cn/index.rst,正文位于 docs/source/zh_cn 目录下。
  • 命名规范docs/(包含 docs/source/)下的目录名文档文件名统一采用 snake_case 小写下划线风格,例如:quick_start/installing_guide.mduser_guide/,以保持路径与 URL 风格一致。

在仓库根目录下构建文档:

make -C docs html      # 仅英文 → docs/_build/en
make -C docs html-zh   # 仅中文 → docs/_build/zh_cn
make -C docs html-all  # 中英文均构建

关于本地预览、Read the Docs 部署、新增文档与整体结构说明,请参考 docs/README_zh.md(或英文版 docs/README.md)。

⚡️ 快速上手

快速上手指南请见:快速上手

编译与安装指南请见:构建安装

构建端到端用例示例请见:README_zh.md

示例名称 构建指南
HIVM VecAdd VecAdd README_zh.md

📝 版本配套说明

请参考CANN社区版文档相关章节,对昇腾硬件、CANN软件及相应深度学习框架进行安装准备。

📄 许可证书

Apache License v2.0

项目介绍

AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优

定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

C++57.66%
MLIR40.4%
CMake0.79%
C0.44%
Python0.42%