1.对码力全开特辑课程的建议:
官网的好像无法回放,其他都挺好。
2.笔记记录
FlashAttention算子开发
一、核函数特性介绍
1、CV流水设计

二、Kernel实现逻辑
1、C侧提前发射实现CV并行
multiCoreInneroffset 当前核要处理的数据即时偏移地址
multiCoreInnerLimit 当前核要处理的数据尾块位置
+2 cube提前发射

CV算力配比1:16
Vector1的tiling基本块为8*1024

三、Kernenl代码详解

1 初始化GM上输入输出地址,获取tiling切分参数:

2 根据tiling切分参数,计算并设置单核在cube1、vector1、cube2、vector2各阶段gm上workspace输出空间地址

3 根据tiling切分参数,计算各阶段获取地址偏移计算相关参数

初始化UB资源InitBuff()

FA计算Process()


四、算子部署调用
执行bash build.sh。在build_out目录下执行./custom_opp_xxx_xxx.run

1.对码力全开特辑课程的建议:
官网的好像无法回放,其他都挺好。
2.笔记记录
FlashAttention算子开发
一、核函数特性介绍
1、CV流水设计
二、Kernel实现逻辑
1、C侧提前发射实现CV并行
multiCoreInneroffset 当前核要处理的数据即时偏移地址
multiCoreInnerLimit 当前核要处理的数据尾块位置
+2 cube提前发射
CV算力配比1:16
Vector1的tiling基本块为8*1024
三、Kernenl代码详解
1 初始化GM上输入输出地址,获取tiling切分参数:
2 根据tiling切分参数,计算并设置单核在cube1、vector1、cube2、vector2各阶段gm上workspace输出空间地址
3 根据tiling切分参数,计算各阶段获取地址偏移计算相关参数
初始化UB资源InitBuff()
FA计算Process()
四、算子部署调用
执行bash build.sh。在build_out目录下执行./custom_opp_xxx_xxx.run