logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

在昇腾NPU上从零跑通FlashAttention:cann-learning-hub实践全记录

去年底接到一个任务:把内部的7B推理服务从A100迁移到昇腾910,attention部分得换成FlashAttention。论文读过,原理懂,但真到昇腾NPU上动手就抓瞎——环境怎么配、算子怎么调、性能怎么测,全得从头摸索。后来顺着cann-learning-hub的学习资源走了一遍,花了五天把FlashAttention从"能跑"调到"跑得快"。整个过程记录下来,给同样在迁移路上的人参考。

文章图片
#pytorch#人工智能#python
CANN Runtime调度FlashAttention的全流程:从一行Python到达芬奇内核

一行代码出结果。但从这行调用到真正在昇腾910的达芬奇架构上跑起来,中间经过了图编排、算子加载、Tiling参数计算、UB内存分配、任务流水线调度。完成这些工作的,是CANN Runtime。

文章图片
#python#开发语言
深入Ascend C:昇腾AI芯片的高性能编程语言全解析

并非通用C语言,而是基于C++17标准扩展的领域特定嵌入式语言(Embedded DSL)aoeaic运行时:CANN(Compute Architecture for Neural Networks)提供底层支持// 定义输入输出Tensor描述) {// 获取当前线程块信息// 计算全局偏移// 向量化加载(支持float16/float32/int8等)// SIMD计算// 存储结果。

文章图片
#人工智能#c语言#开发语言
CANN Runtime调度FlashAttention的全流程:从一行Python到达芬奇内核

一行代码出结果。但从这行调用到真正在昇腾910的达芬奇架构上跑起来,中间经过了图编排、算子加载、Tiling参数计算、UB内存分配、任务流水线调度。完成这些工作的,是CANN Runtime。

文章图片
#python#开发语言
CANN Runtime调度FlashAttention的全流程:从一行Python到达芬奇内核

一行代码出结果。但从这行调用到真正在昇腾910的达芬奇架构上跑起来,中间经过了图编排、算子加载、Tiling参数计算、UB内存分配、任务流水线调度。完成这些工作的,是CANN Runtime。

文章图片
#python#开发语言
昇腾NPU上FlashAttention算子住哪?ops-transformer仓库全景拆解

第一次在昇腾NPU上跑大模型推理的人,面对CANN生态的几十个仓库,第一反应通常是:FlashAttention算子在哪个仓库里?改算子要改哪个文件?编译完产物在哪?这些问题的答案全在里。这个仓库是昇腾CANN大模型算子的主仓库,FlashAttention、RMSNorm、RoPE、SwiGLU——Transformer架构用到的核心算子,实现全在这里。

文章图片
#transformer#深度学习#人工智能
昇腾NPU上FlashAttention算子住哪?ops-transformer仓库全景拆解

第一次在昇腾NPU上跑大模型推理的人,面对CANN生态的几十个仓库,第一反应通常是:FlashAttention算子在哪个仓库里?改算子要改哪个文件?编译完产物在哪?这些问题的答案全在里。这个仓库是昇腾CANN大模型算子的主仓库,FlashAttention、RMSNorm、RoPE、SwiGLU——Transformer架构用到的核心算子,实现全在这里。

文章图片
#transformer#深度学习#人工智能
昇腾NPU上FlashAttention算子住哪?ops-transformer仓库全景拆解

第一次在昇腾NPU上跑大模型推理的人,面对CANN生态的几十个仓库,第一反应通常是:FlashAttention算子在哪个仓库里?改算子要改哪个文件?编译完产物在哪?这些问题的答案全在里。这个仓库是昇腾CANN大模型算子的主仓库,FlashAttention、RMSNorm、RoPE、SwiGLU——Transformer架构用到的核心算子,实现全在这里。

文章图片
#transformer#深度学习#人工智能
昇腾NPU上的FlashAttention藏在哪?ops-transformer仓库全景图

刚接触昇腾CANN生态的时候,光是找FlashAttention算子在哪就花了不少时间。官方文档按功能模块划分,仓库按层级划分,两套逻辑对不上号——文档里写的是"大模型算子优化",仓库里是一个叫ops-transformer的目录。这种对应关系不搞清楚,改代码都不知道去哪改。ops-transformer是昇腾CANN大模型算子的主阵地。FlashAttention、RMSNorm、RoPE、Sw

文章图片
#transformer#深度学习#人工智能
昇腾NPU上的FlashAttention藏在哪?ops-transformer仓库全景图

刚接触昇腾CANN生态的时候,光是找FlashAttention算子在哪就花了不少时间。官方文档按功能模块划分,仓库按层级划分,两套逻辑对不上号——文档里写的是"大模型算子优化",仓库里是一个叫ops-transformer的目录。这种对应关系不搞清楚,改代码都不知道去哪改。ops-transformer是昇腾CANN大模型算子的主阵地。FlashAttention、RMSNorm、RoPE、Sw

文章图片
#transformer#深度学习#人工智能
    共 26 条
  • 1
  • 2
  • 3
  • 请选择