作者:昇腾实战派

本文仅整理昇腾社区、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

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐