CHANGELOG
CATLASS 1.X
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及各种不同的优化策略在内的算子样例