👋 您好,欢迎向 MindStudio msprof 提交 Issue!
我们已收到您的反馈,感谢你对开源社区的支持。🎉
📅处理时效: 维护团队将在24小时内 查看并回复您的问题(工作日)。
🔍自助查询: 在等待期间,建议您先查阅以下资料,可能已有解决方案:
📖 MindStudio msprof官方文档
📝 贡献者指南
请确保 Issue 描述清晰,包含复现步骤和日志,这将帮助我们更快定位问题。谢谢!


/label add triaged


您好,有几个信息和您同步一下:
1、算子名称相关
①当前阶段您拿到的算子名称为kernelName,是算子侧编译后,基于算子类型和tiling key得到的具备唯一性的算子名。该名称主要用于内部的算子类型标识。
而您所谓的aclnn接口名,则为aclnn框架对于算子的命名,他的命名规则当前为:aclnn算子接口名+kernelName前半部分 组成。该命名定义为opName。
在profiling相关数据中,优先显示算子的opName,次选kernelName。
②当前使用的包版本为CANN商用版8.5.0,业务执行模式为ACLGraph场景。
在CANN8.5.0版本上,配合torch_npu的8.5.0版本,已经具备在ACLGraph场景获取算子shape的能力,但依然呈现kernelName。建议尝试配套版本,如果依然无法获取相关信息,可以留言提供相关PROF数据做进一步问题定位。
③您提供的pr和对应issue是为了解决另一个问题做的。当前提供的kernelName并不是完全无用,当前在算子侧,“静态算子”特性,依赖kernelName命名做呈现(静态算子的kernelName会以static命名)。为避免用户在切换上述CANN8.5.0新包后找不到相关标识,我们在当前阶段做了新的特性修复。
I 在CANN8.5.0上优先保留kernelName命名,确保前后版本兼容
II 在新版本上,在task-time.csv交付件中提供kernelName命名,并还原op_summary中的opName。后续用户可在task-time.csv中获取算子的kernelName。
④当前CANN8.5.0配套版本并不具备呈现opName的能力。想将kernelName再映射回aclnn命名存在一定困难。如果真有必要,可取用当前社区pr40后的msprof-profiler包进行安装,重新解析数据即可使用新版本特性。
2、相关算子tensor信息
当前算子调用层面是Pytorch框架层面的接口,该接口内部会调用CANN内部算子。对于msprof工具而言,采集获取的tensor信息,均为CANN内部的接口信息。即呈现的tensor内容并不完全和Pytorch层面的接口一致。如果有相关必要,建议联系Pytorch社区做相关问题跟踪。明确在参数传递过程有什么转换。


/label add pending


在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。
环境信息
使用场景及问题
背景
客户期望使用msprof工具在vllm-ascend推理引擎运行大模型推理时采集Profile信息,通过构建一个单算子执行用例来分析某个算子的性能情况。因此预期msprof采集解析后的
kernel_details.csv文件中能够显示正确的算子名,以及整网执行到该算子时的入参shape信息,方便构建单算子用例。此外,算子文档对外开放的最底层接口为aclnn层级的接口。现状
在当前CANN商用版8.5.0版本下,以一个attention算子为例,采集到的信息如下(部分,来自于解析到的
kernel_details.csv):在msprof的文档中实际上并没有关于
kernel_details.csv的介绍,从内容上看最接近的文件是op_summary_*.csv。其中关于Name,Input Shapes字段的解释仅为简单的 “算子名称。” 和 “算子的输入维度。task_time为l0时,不采集该字段,显示为N/A。”疑问1:图模式下如何将采集到的 Name 对应到具体 aclnn算子接口
对于单算子测试来说,客户感知到的是 aclnn算子接口。Fused Infer Attention当前CANN 8.5.0提供了4个版本的aclnn接口,如下图所示。那么,应当如何将上述 Name (
FusedInferAttentionScore_3b093497fc536d61a77a7a3293a524da_5000000000010200203) 对应到这些aclnn接口?根据我个人的探索,发现图模式下的Name大概率来自于算子编译后产生的.o的名字,如下图所示,能找到对应的文件,但msprof解析后还拼接了一段类似TilingKey的字段上去。
针对疑问1,请问:
疑问2:FIA算子的Shape信息如何与aclnn接口完成对应
16,4,128;12550,128,128;12550,128,128;;2048,2048;16;16;;;;;;;;16,512;;;;;;;;;;;;;;;;这里采集到的FIA算子Input Shape一共有30个分号,根据我的理解代表了有31个入参,这里想咨询一下这里采集到的入参是aclnn接口的入参吗?如果是比aclnn更底层的接口,应该如何去找?希望可以在文档中补充相关信息。欢迎加入社区,感谢您对社区的贡献 🎉!