BestPractices样例介绍

概述

基于Ascend C的性能优化实践,聚焦于关键算子与内存访问的调优,旨在提升在Ascend平台上的运行效率。

算子开发样例

目录名称 功能描述
00_add_doublebuffer 本样例介绍基于静态Tensor方式编程的场景下Add算子的实现方法,优化性能,使用double buffer进行流水排布,支持main函数和kernel函数在同一个cpp文件中实现,并提供<<<>>>直调方法。
01_bank_conflict 基于AscendC的bank冲突性能优化样例。
02_aicpu_device_tiling 本样例介绍使用AI CPU算子进行tiling下沉计算的实现, 在device侧将AI CPU算子的计算结果传给AI Core算子,使用<<<>>>内核调用符来完成算子核函数在NPU侧运行验证的基础流程。
03_l2_cache_bypass 本样例介绍了设置L2 CacheMode的方法以及其影响场景,并提供核函数直调方法。
05_mata_address_conflict 本样例介绍了同地址冲突的影响以及两种解决方法,并提供核函数直调方法。
06_grouped_matmul 本样例介绍QuantGroupMatmul算子在NPU上高性能实现,支持分组量化矩阵乘与Gelu激活计算。
10_compatibility_cases 本样例介绍Atlas A2 训练系列产品/Atlas A2 推理系列产品部分不兼容特性迁移至950的实现样例方法,不兼容场景包括从L1 Buffer直接搬运到GM、L0A Buffer/L0B Buffer、int4b_t数据类型下的矩阵计算、L1 Buffer带边界值场景。
11_pattern_transformation 新架构下基础的mmad样例,从L1 Buffer->L0A的通路不需要做Nz2Zz分型转换。
12_high_performance_vf 基于VF函数的性能优化样例,通过<<<>>>直调的实现方式,介绍了VF循环优化、VF指令双发优化、VF连续非对齐场景优化、VF融合优化的方法。
13_optimize_datacopy 基于搬运类API使用的优化样例,通过<<<>>>直调的实现方式,介绍了减少无效数据搬运、减少搬运指令数量等方法。
14_pure_simt_gather 纯SIMT编程方式实现的算子样例,支持动态计算切分参数。