已关闭
[Course-Feedback|课程反馈]: 08性能优化章节5处优化示例代码与正文指导表达模糊 #447
陈天銮创建于 8月2日关闭于 8月24日
8月2日 修改了issue 的描述
此处折叠了8条事件消息 查看更多
8月2日 修改了issue 的描述
ink_polymer
8月2日 评论:
8月2日 评论:
尊敬的开发者您好,您的建议已收到,待内部评估后反馈,感谢您的支持


8月2日 修改了issue 的描述
此处折叠了5条事件消息 查看更多
8月17日 关联了pull request:fix: 补充描述
ink_polymer
8月20日 评论:
8月20日 评论:
尊敬的开发者您好,您提出的问题都是要求开发者根据描述自行修改的部分,目前已经优化表述,感谢您的支持,该issue将在3天后关闭,若后续还有问题欢迎通过issue与我们交流


8月24日 issue状态由 进行中 改变为 已完成
8月24日 关闭了 issue
8月24日 添加了label:resolved
Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
一、课程名称 (必填)
Ascend C 算子开发系列(进阶)> 第 8 章 性能优化
章节目录:08_performance_optimization
涉及文件:
二、反馈类型 (必填)
• 课程内容错误
三、反馈详情 (必填)
问题概述
08_performance_optimization中,正文先描述优化思路,随后给出优化后的完整代码,学习者照抄后重新部署、抓取性能以观察优化效果。经核对,该章节8.02_profiling_tool_usage.ipynb、08.03_simulation_analysis.ipynb、08.04_ascendc_op_perf_optimization_demo.ipynb的共 5 处优化后代码未实施正文要求的优化,即实际没有优化效果等于没有优化,无法复现正文承诺的性能提升。
问题一: 8.02_profiling_tool_usage.ipynb printf 未屏蔽
8.02_profiling_tool_usage.ipynb 5 针对性优化中写到分析这三部分,我们可以发现,只有第一部分的tileLength计算可以放到host侧进行,第二部分的printf打印可以屏蔽。其他部分代码需要保持原来的实现,不能放到host侧进行。而tilingLength计算量较小,不会对性能造成较大影响,所以推测将printf打印屏蔽后,算子的性能会有较大提升。:

但优化后的代码并没有删除printf,或者没有指出要删除的printf的具体位置

问题二:08.03_simulation_analysis.ipynb printf 未屏蔽
08.03_simulation_analysis.ipynb 中的4 针对性优化明确写道:根据 trace 图或者源码时钟周期我们可以看出耗时主要集中在 printf 打印,所以推测将 printf 打印屏蔽后,算子的性能会有较大提升。
问题三:08.04_ascendc_op_perf_optimization_demo.ipynb Tiling 负载均衡优化未实施
08.04_ascendc_op_perf_optimization_demo.ipynb中2.2.1 Host 侧修改中写道**修改op_host/add_custom_template.cpp文件内的Tiling实现函数,假设我们有40个可用的Vector核时,设置为45会把数据均分为45份,先把前40份数据分配给每个核,然后把剩余的5份数据分配给前5个处理完数据的核,与我们模拟的场景一致。这里可以修改SetBlockDim设置核数为40,每个核处理23040个数据,数据均分,不会有核会多处理一块数据。

问题四:08.04_ascendc_op_perf_optimization_demo.ipynbDouble Buffer 未开启
08.04_ascendc_op_perf_optimization_demo.ipynb3.2.3 Kernel 侧实现中写到 修改 BUFFER_NUM 为 2,开启 DoubleBuffer 机制。但代码中DoubleBuffer=1。
四、环境信息 (可选)