msKPP 工具用于算子开发前的性能建模设计,开发者基于其 DSL(Domain-Specific Language,领域特定语言),以算子的数学逻辑为输入,编写算子表达式,即可在秒级内获得性能预测结果。该建模仅依赖输入/输出规模,无需执行真实计算,可高效验证算子实现方案。
本文档基于入门教程中开发的简易加法算子,演示 msKPP 工具的核心功能,帮助初学者直观感受 msKPP 在算子开发过程中的高效与便捷。
本章节以您已完成《》的全流程操作为前提;若尚未体验,建议先完成该指南以获得更佳的学习效果。
请严格按照《》完成环境安装与工作区配置。 即使您已具备类似环境,也需按该指南重新执行一遍,以确保所有依赖组件、环境变量等完整一致。
执行以下命令,若输出"All is OK",则表明所需 Python 包及其版本均符合要求:
在算子算法设计阶段,借助 msKPP 工具可在秒级时间内获得性能建模结果,无需硬件即可预估性能,快速验证实现方案的可行性。建议先跟随操作步骤体验效果,原理部分可稍后阅读:
[object Object]
[object Object]
请创建文件 mskpp_demo.py,内容如下:
参考《》获取芯片类型,将 [object Object] 中的 xxx 替换为查询到的芯片类型。
执行 Python 脚本开始性能建模,若执行成功,将自动在当前目录下生成 [object Object] 结果目录:
生成如下结果目录:
以 Instruction_statistic.csv 为例,其内容如下:
由上述内容可见,MOV-UB_TO_GM(从 UB 搬移到 GM)的耗时(Duration)最长,指令周期数(Cycle)也最多,是性能优化中需重点关注的关键路径。在实际开发中,如果发现此类内存搬运耗时占比过高,应优先考虑优化数据复用(Tiling)策略,或使用更高效的搬运指令。