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_contribution_guide:完整样例的设计、开发、测试、合入流程
  • 10_matmul_optimization:介绍模板库下的基础调优方式,包括如何通过Tiling调参、应用不同的Dispatch策略的方式,快速获得性能提升。
  • 11_example_integration:样例适配、接入到整网的方式
  • evaluation_tools
  • others(folder):存放内部和外部贡献的难以归类的实践文档
    • tla_rebuild:TLA样例改造

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_quant_summary:低精度专题
  • 02_tla:
    • 01_layout:TLA设计的layout结构和相关接口说明
    • 02_layout_tag:RowMajor、ColumnMajor、zN、nZ等layoutTag介绍和接口说明
    • 03_tensor:tensor结构体
  • 03_evg

3 API

Appendix

外部开源文章、视频

  • 常见问题 Q&A
  • 技术文章
    • 基础入门
      • C++ template使用
    • 概念理解
    • 问题定位
    • 性能优化
    • 优秀实践
  • 培训视频
    • Ascend C算子开发
    • 昇腾训练营 CATLASS相关特辑