CATLASS 项目文档
【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass
1 Practice
代码实践,指导开发者按步骤上手CATLASS各层级代码开发和使用,逐渐具备完整算子开发、测试、调优、模型使用的能力。
- 01_quick_start:介绍模板库的环境准备,和提供的算子样例的编译执行。
- 02_host_example_assembly:host侧组装matmul讲解
- 03_kernel_development:kernel代码拆解,展示模板组装机制、arguments、params及关键函数等代码
- 04_block_mmad_development:block_mmad代码拆解,模板组装机制、主要接口说明
- 05_block_scheduler_development:block_schedule代码拆解,模板组装机制、主要接口说明
- 06_tile_development:tile_copy/tile_mmad代码拆解,模板组装机制、主要接口说明
- 07_epilogue_adaptation:gemm算子的host/kernel层适配epilogue,及epilogue的block/tile开发
- 08_evaluation:调测工具使用
- 09_example_contribution_guide:完整样例的设计、开发、测试、合入流程
- 10_matmul_optimization:介绍模板库下的基础调优方式,包括如何通过Tiling调参、应用不同的Dispatch策略的方式,快速获得性能提升。
- 11_example_integration:样例适配、接入到整网的方式
- evaluation_tools
- ascendc_dump
- msdebug
- performance_tools
- others(folder):存放内部和外部贡献的难以归类的实践文档
- tla_rebuild:TLA样例改造
- migration_from_atlasA2_to_Ascend950_guildline:介绍推荐的AtlasA2平台存量算子向Ascend950代际兼容方案
2 Design
- 00_project_overview:项目介绍、分层模块化设计、代码仓结构设计
- 01_kernel_design:算法设计
- 01_example_design:库上样例设计文档一览(将各样例文档放到样例文件夹内,此处只做归纳、牵引)
- 02_swizzle:对模板库中
Swizzle策略的基本介绍,这影响了AI Core上计算基本块间的顺序。 - 03_dispatch_policies:对模板库在
Block层面上BlockMmad中的一个重要模板参数DispatchPolicy的介绍。 - 04_matmul_summary:对模板库的
examples目录内已有的matmul模板设计进行介绍,包含样例模板清单、理论模板清单、工程优化清单、模板应用浅述,可用于matmul性能调优时参考。 - 05_aswt:自适应滑窗tiling策略说明
- 06_quant_summary:低精度专题
- 02_tla:
- 01_layout:TLA设计的layout结构和相关接口说明
- 02_layout_tag:RowMajor、ColumnMajor、zN、nZ等layoutTag介绍和接口说明
- 03_tensor:tensor结构体
- 03_evg
- 01_evg_design:EVG 的定位、分层关系、执行模型与图组织方式
- 02_evg_extension:EVG 的扩展规范,说明何时加 ComputeFn、何时加节点,以及实现时的约束
- 03_evg_quick_start:以
Matmul + Add为例说明 EVG 的基础接入流程
3 API
- README:API清单入口
- gemm api:Gemm API
- evg api:EVG 的接入方式、参数顺序和常用节点说明
- Ascend C API:昇腾社区Ascend C API列表
Appendix
外部开源文章、视频
- 常见问题 Q&A
- 技术文章
- 基础入门
- C++ template详解
- Ascend C算子开发文档
- 概念理解
- 问题定位
- 性能优化
- 优秀实践
- 基础入门
- 培训视频
- 昇腾社区在线课程:通过体系化的课程视频学习昇腾。相关课程推荐:
- Ascend C算子开发(入门)
- Ascend C算子开发(进阶)
- Ascend C算子开发(高级)
- 昇腾训练营 CATLASS相关特辑
- 一站式掌握CATLASS模板库基本概念:
昇腾CANN【码力全开特辑】CATLASS学习系列课程第一讲。完整介绍CATLASS整体情况、算子快速上手、发展全景、生态共建。 - CATLASS算子开发初体验:
昇腾CANN【码力全开特辑】CATLASS学习系列课程第二讲。以基础Matmul算子为例,完整介绍基于NPU的矩阵乘理论建模、代码实现(host/kernel/block三个层面)。
- 一站式掌握CATLASS模板库基本概念:
- 昇腾社区在线课程:通过体系化的课程视频学习昇腾。相关课程推荐:
【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考