CHANGELOG
CATLASS 1.X
CATLASS 1.5.0
- 关键特性
- 新增支持 Ascend950 架构与配套底层模板组件
- TLA 增强:引入
origin_shape,新增TileView、MakeTensorLike、Tensoroperator()等接口,并完善布局与张量表达 - Matmul 泛化工程扩展:支持 W8A8 Per-Token + Per-Channel 动态量化路径、分批编译,并补充相关设计文档
- FixPipe 能力延伸:新增/完善 Matmul FixPipe 优化与 GMM + FixPipe + Dequant 等组合模板与样例
- 适配 CANN 9.0.0.beta2;在使用 g++ 与毕昇工具链链接时,需显式链接 profapi(编译器非兼容性变更说明)
- 新增 单元测试(unittest)与 CI 对 Ascend950 的适配
- 更多样例
- Ascend950 基础 Matmul
- Ascend950 Matmul FixPipe 优化
- Ascend950 Grouped Matmul SliceM Per-Token Dequant
- Ascend950 Grouped Matmul Per-Tensor & Per-Channel Dequant
- Ascend950 Flash Attention 推理
- Ascend950 基础 Matmul GEMV
- Ascend950 Quant Matmul Per-Group & Per-Block TLA(Per-Group × Per-Block 量化组合)
- Quant Optimized Matmul TLA
- Quant Matmul Full LoadA TLA
- Strided Batched Matmul TLA
- Matmul 泛化工程:动态 W8A8 Per-Token 量化
- 工具支持
- shared_lib 输出产物增加 soname,Python 扩展依赖的共享库切换为带版本信息的
.so - Python 扩展 支持
build.sh编译选项传入,并支持异步模式;更新设备侧取指针等接入方式 - msTuner_CATLASS 扩展 GEMM 配置与搜索空间;MatmulGelu 样例接入寻优示例
- shared_lib 输出产物增加 soname,Python 扩展依赖的共享库切换为带版本信息的
- 文档资料
- 文档目录与资源路径调整(如 figures 目录),并做低错与内容修订
- 泛化工程补充 MultiCoreSplitK、StreamK、单核切 K 等相关说明文档
- 修复 ascendc_dump 文档 中的错误表述
- Bugfix&优化
- 修复 TLA OriginShape 与 Flash Attention Golden 等相关问题;完善 Ascend950 FA 的 Block/Epilogue 等实现路径
- 调整 CopyGmToL1 中
blockLen计算逻辑,无需再为对齐 C0_NUM_PER_FRACTAL 做不必要向上取整 - Nan 专项:在
exp11等路径为 Ki=0 场景补充清零,避免脏数据影响模型精度 - 修复 CopyL0CToDstQuantMode 等问题;Ascend950 架构标识由 3501 更正为 3510
- 修复间接头文件引用、License 注释与多处文档笔误;持续消除代码规范告警与风格清理
CATLASS 1.4.0
- 关键特性
- Matmul泛化工程新增
LocalPaddingCPaddingCommonMatmul模板,使用局部workSpace对C矩阵做padding
- Matmul泛化工程新增
- 更多样例
- 工具支持
- 增加shared_lib使用示例
- 文档资料
- 新增单核切K优化Matmul算子的详设文档,介绍单核切K矩阵乘的设计思路和代码拆解
- 新增主页Matmul/GroupedMatmul算子性能展示数据
- msdebug文档新增驱动支持检查
- Bugfix&优化
- 优化grouped_matmul_slice_m样例支持
groupList分段式输入 - BlockMmad增加
TileShape的32B对齐约束 - 修复w4a8 matmul样例构造数据长度问题
- Matmul泛化工程支持Stride大于Shape的场景
- msTuner_CATLASS工具支持
quant Matmul做tiling寻优 - 修复device侧对
cmath函数的不规范使用 - 修复MatmulSilu精度问题和命名错误
- 修复cast_int4_to_int8组件的Vector同步问题
- 修复w8a16 Matmul算子half类型使用问题
- 修复单核切K Matmul算子在
RemovePaddingNDAndCastC为空时的逻辑问题
- 优化grouped_matmul_slice_m样例支持
CATLASS 1.3.0
- 关键特性
- 将
CMake最低版本要求从3.22降至3.16 - 支持
FixPipe随路量化 - Matmul泛化工程新增
PaddingCommonMatmulSmallMatmulPaddingMultiCoreSplitkMatmulPaddingStreamkMatmul单核切K系列模板动态Swizzle
- 将
- 更多样例
- 工具支持
- 新增msOpGen工具代码示例basic_matmul和接入文档
- msTuner_CATLASS工具新增
GroupedMatmulSliceM算子OptimizedMatmul算子
- 文档资料
- 新增INT8类型反量化GroupedMatmul算子的详设文档,介绍
groupMatmul+后处理类型的算子的设计思路和代码拆解 - 新增矩阵乘模板总结文档,介绍模板库已有的Matmul模板设计
- 新增CommonMatmul说明文档,介绍泛化Matmul工程中的基础模板
- 新增INT8类型反量化GroupedMatmul算子的详设文档,介绍
- Bugfix&优化
- 修复Flash Attention推理算子在softmax拷贝mask时引入的内存问题
- 修复文档错误
- Matmul泛化工程更新
- 修改
TilingParams读取方式增强可读性 - 优化原有的
Splitk ReduceAdd,UB空间利用更充分 - 新增
CMakeLists.txt中对python环境的判断
- 修改
- 修复OptimizedMatmul算子在kernel里没有支持PADDING_NZ的问题
- 优化重构FP8类型反量化Matmul算子,使其更符合Prologue范式
- 修复MatmulBias算子精度问题并增加对bf16的校验拦截
- 优化仿真的编译逻辑以及在A3环境下的编译问题,现在编译
simulator模式时逻辑与上板模式相同 - msTuner_CATLASS工具更新
- 新增接口替换、非法字符、
groupCount最大值检查等安全校验 - 修复下发部分算子时默认传入
ffts_addr被拦截的问题
- 新增接口替换、非法字符、
- 更改默认的跨核标志位可连续置位次数,避免超过次数后引发的系统卡死问题
CATLASS 1.2.0
-
关键特性
- 算子编译时支持传入计算平台架构
- 新增Matmul泛化工程示例
- 自动依照特征尺寸确定Tiling参数
- 可在预设的算子模板中择优选取
-
更多样例
-
工具支持
- 更新Python调用接口内容
- 调整工程组织结构
- 支持转置情况
- 新增
msTuner_CATLASS工具,用于Tiling自动寻优,在搜索空间内全量运行并获取性能数据 - 支持使能
msSanitizer地址消毒工具(编译选项加入--enable_mssanitizer)
- 更新Python调用接口内容
-
文档资料
- 新增
catlass_optimize_guidance.md文档,介绍CATLASS赋能下Gemm类算子常用的调优方式
- 新增
-
Bugfix&优化
- 优化
OptimizedMatmul算子实现,支持任意Padding方式组合 - 修复
ASCEND_RT_VISIBLE_DEVICES环境变量使能下,msTuner_CATLASS工具无法取得实际运行DeviceId的问题 - 修复PFA算子样例在单行数据场景下
Set/Wait错配的异常情形 - 修复
OptimizedMatmul算子样例计算Workspace大小出错 - 隔离使能
AscendC::Dump及AscendC::print功能的代码段 - 修复
GroupedMatmulSliceK算子在Ki=0特例时的输出清零行为,并将真值比较逻辑调整为全尺寸(M,N,K)比较 - 修改
performance_tools.md,tutorials.md等文档中的错误
- 优化
CATLASS 1.1.0
-
关键特性
-
更多样例
- 带偏置的MatmulBias算子
- 预加载(Preload)优化Matmul算子 (科大讯飞联创贡献)
- K轴切分(Split-K)优化Matmul算子 (科大讯飞联创贡献)
-
工具支持
- 支持
AscendC::Dump与AscendC::printf进行打印调试- 编译选项中加入
--enable_ascendc_dump和--enable_print以启用上述功能 - 请参阅文档:
ascendc_dump和print
- 编译选项中加入
- 支持
-
文档资料
- 新增tutorials快速上手示例
- 新增利用msProf工具进行算子性能调测的文档:msProf性能调测
-
Bugfix&优化
- 优化
Kernel层AIC程序,添加PIPE_ALL避免整网影响 - 优化
OptimizedMatmul算子实现,在非必要Padding场景下不启动AIV核 - 修复
Block层预加载nextBlock时的错误 - 隔离Kernel侧
AscendC的inline定义,避免异构编程时无法使用部分标准库 - 修改
l2offset设置的重定义问题
- 优化
CATLASS 1.0.0
-
CATLASS模板库正式开源发布
-
关键特性
- 提供Kernel、Block、Tile、Basic分层算子开发能力
-
样例参考
- 提供包括基础Matmul及各种不同的优化策略在内的算子样例