作者:昇腾实战派

本文仅整理昇腾社区、CSDN等公开的昇腾算子相关文章,方便开发者学习参考。如有侵权,请联系删除。

Ascend C知识地图

一、背景

本知识地图旨在整理昇腾社区及CSDN上与Ascend C相关的优质文章,帮助开发者快速定位学习资源,系统掌握昇腾AI处理器算子开发技术。

Ascend C是华为昇腾AI处理器生态中用于高性能自定义算子开发的核心编程语言,基于C/C++语法扩展,专为在昇腾AI芯片上实现极致性能而设计。

二、基础理论

Ascend C 概述

文章标题 链接 来源 核心内容
什么是Ascend C 链接 昇腾社区官方文档 官方最新版(CANN 9.0 beta2)对Ascend C语言定位、特性与适用场景的权威定义
昇腾Ascend C编程入门教程(纯干货) 链接 昇腾社区 覆盖AI处理器架构、流水线范式、多核SPMD并行及完整LeakyReLU算子开发示例
Ascend C教程文档全新来袭 链接 昇腾社区 汇总Ascend C全套文档更新,涵盖最佳实践、编程模型与高阶API算法图解

硬件架构

文章标题 链接 来源 核心内容
计算单元-硬件架构 链接 昇腾社区官方文档 官方说明AI Core内Cube、Vector、Scalar三类计算单元的职责与分工
Ascend NPU 硬件架构入门 链接 CSDN 从DaVinci架构角度介绍NPU计算单元、内存层次及与GPU的类比对比
昇腾Ascend概念澄清:Host、Device、AI Core、AscendCL 链接 CSDN 系统梳理昇腾各层级组件概念与关系,消除Host/Device/AIC/AICPU等常见混淆

编程范式

文章标题 链接 来源 核心内容
SPMD模型 链接 昇腾社区官方文档 阐述单程序多数据并行模型及多核任务分配机制
编程范式 链接 昇腾社区官方文档 详述矢量编程的CopyIn/Compute/CopyOut三阶段流水范式

三、快速上手

入门教程

文章标题 链接 来源 核心内容
Ascend C保姆级教程:我的第一份Ascend C代码 链接 昇腾社区 手把手实现Add算子,覆盖多核并行、流水并行与孪生调试全流程
快速入门-算子开发(基础篇) 链接 昇腾社区官方文档 官方基础篇入门,含开发流程、核函数编写和编译执行步骤
基于自定义算子工程的快速入门 链接 昇腾社区官方文档 自定义算子工程端到端开发流程,涵盖算子注册与框架调用

算子开发

Tiling

文章标题 链接 来源 核心内容
Host侧tiling实现 链接 昇腾社区官方文档 介绍TilingData结构定义与blockDim设定,实现Host侧数据分块参数计算
多核Tiling切分 链接 昇腾社区官方文档 阐述多核间数据均分策略,以8核2048元素场景为例说明分块参数计算

进阶实现

文章标题 链接 来源 核心内容
kernel侧算子实现-进阶篇 链接 昇腾社区官方文档 覆盖Kernel侧进阶开发,含内存队列管理与多流水任务调度
Ascend C算子开发学习笔记 链接 CSDN 涵盖编程模型到算子实现的完整学习记录,附代码注释与实践总结
矩阵编程基础知识(高阶API) 链接 昇腾社区官方文档 介绍Matmul高阶API(C=A*B+bias)的编程接口与使用约束
Ascend C 2.0新特性:支撑大模型融合算子高效开发 链接 昇腾社区 MC²通算融合将通信与计算从串行改并行,典型场景整网性能提升10%

四、性能调优

流水优化

文章标题 链接 来源 核心内容
Ascend C算子性能优化实用技巧01——流水优化 链接 昇腾社区 讲解流水范式、Double Buffer延迟隐藏及异步接口减少核间通信的三种优化手段
使能double buffer(最佳实践) 链接 昇腾社区官方文档 详述Double Buffer实现方式及其对Vector单元利用率的提升效果
Ascend C算子性能优化实用技巧02——内存优化 链接 昇腾社区 介绍矩阵乘结果复用、UB融合及片上内存层次利用等内存优化手段
优化bank分配以提升读写性能 链接 昇腾社区官方文档 通过合理分配Unified Buffer的bank结构消除bank冲突,提升访存性能
Ascend C算子性能优化实用技巧03——搬运优化 链接 昇腾社区 给出单次搬运≥16KB及512B地址对齐等实用搬运优化建议
Ascend C算子优化实用技巧04——Tiling优化 链接 昇腾社区 通过Tiling策略调优提升计算效率,含块大小与对齐选取建议
L2 Cache切分-Tiling优化 链接 昇腾社区官方文档 通过L2 Cache感知Tiling降低GM访问频率,提升片上带宽利用率
核间负载均衡 链接 昇腾社区官方文档 余数块均摊至各核的负载均衡方案,避免部分核空闲影响整体吞吐
Ascend C算子性能优化实用技巧05——API使用优化 链接 昇腾社区 汇总API调用层面的优化技巧,避免冗余操作与指令气泡

五、最佳实践

文章标题 链接 来源 核心内容
基于Ascend C的FlashAttention算子性能优化最佳实践 链接 昇腾社区 通过Tiling调整、负载均衡、CV流水、FixPipe等5项优化实现约4倍性能提升
FlashAttention算子性能调优案例 链接 昇腾社区官方文档 Tiling块调整、负载均衡、CV流水及FixPipe优化的FlashAttention调优实战

六、参考资料

文章标题 链接 来源 核心内容
Ascend C API列表 链接 昇腾社区官方文档 完整的Ascend C API分类列表,含基础API与高阶API索引
DataCopy普通数据搬运接口 链接 昇腾社区官方文档 DataCopy接口详解,含参数说明、约束及GM↔LocalMem搬运示例

官方资源

  • 昇腾社区:https://www.hiascend.com/
  • Ascend C主页:https://www.hiascend.com/ascend-c
  • CANN官方文档:https://www.hiascend.com/document

Triton Ascend

【Triton Ascend知识地图】

  • 基础理论
  • 安装部署
  • 算子开发
  • 测试调优

TileLang

更新中…

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐