ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

SDC命令详解:使用report_trace命令进行调试

SDC命令详解:使用report_trace命令进行调试

相关阅读

SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482


目录

指定开始性能剖析

指定停止性能剖析

指定恢复性能剖析

指定性能数据类型

指定累计资源消耗排名的命令数量

指定单次调用资源消耗排名的命令数量

指定报告某个具体命令

指定静默输出

简单使用


在使用Synopsys的EDA工具(如Design Compiler、PrimeTime、Fusion Compiler、IC Compiler II等)的过程中,随着设计规模不断增大,脚本运行时间往往会明显增长。此时用户常常会遇到一些典型问题:

  • 难以判断到底是哪个命令导致流程变慢
  • 难以区分是命令调用次数过多,还是某一次调用异常耗时
  • 难以量化CPU时间、内存和实际运行时间(wall clock时间)的消耗情况

在没有定量分析手段的情况下,性能调优往往只能依赖经验,效率较低。为了解决这些问题,Synopsys提供了report_trace命令(在2023版本引入),用于对被跟踪命令的执行过程进行性能剖析,并生成相应的统计报告,从而帮助用户在命令级别定位性能瓶颈(其实它并不是一个SDC命令,归为此类只是为了方便管理)。

report_trace命令的BNF范式(有关BNF范式,可以参考以往文章)为:

report_trace [-start | -stop | -resume] [-profile profile_type] [-command command_name] [-cumulative count] [-top count] [-quiet] // 注:该命令的选项和参数顺序任意

指定开始性能剖析

-start选项指定开始性能剖析,当使用该选项后,工具会对后续所有被跟踪命令的每一次调用进行统计,记录其CPU时间、内存消耗、wall clock时间以及调用次数。需要注意的是,如果此前使用-stop选项停止过性能剖析,再次使用-start选项时,之前已经收集的所有性能数据都会被清空,并重新开始统计。

-start选项与-stop选项、-resume选项、-profile选项、command选项、-cumulative选项和-top选项是互斥的,不能同时使用。

指定停止性能剖析

-stop选项指定停止性能剖析数据的收集。当使用该选项后,工具会冻结当前已经收集的性能数据,后续命令的执行将不再被统计。需要注意的是,停止性能剖析并不是生成报告的前提条件,即使在性能剖析仍在进行的过程中,也可以随时使用report_trace命令查看当前统计结果。

-stop选项与-start选项、-resume选项、-profile选项、command选项、-cumulative选项和-top选项是互斥的,不能同时使用。

指定恢复性能剖析

-resume选项指定在停止性能剖析之后恢复数据收集。与-start选项不同,-resume选项不会清空此前已经收集的性能数据,而是将新收集的数据追加到已有统计结果中。

-resume选项与-start选项、-stop选项、-resume选项、-profile选项、command选项、-cumulative选项和-top选项是互斥的,不能同时使用。

指定性能数据类型

-profile选项指定报告哪些性能数据(无法控制是否收集),可选的指标包括memory、cpu、time和count,也可以使用all表示包含所有指标。当指定该选项时,report_trace命令生成的报告中只会包含对应类型的性能数据;如果未指定该选项,则默认包含所有类型的性能数据。

-profile选项与-start选项、-stop选项和-resume选项是互斥的,不能同时使用。

指定累计资源消耗排名的命令数量

-cumulative选项用于指定在报告中显示累计资源消耗排名靠前的命令数量。如果多个命令的资源消耗值与排名边界相同,则这些命令都会一并显示。若未指定该选项,默认显示累计资源消耗排名前10的命令。

-cumulative选项与-start选项、-stop选项、-resume选项和-command选项是互斥的,不能同时使用。

指定单次调用资源消耗排名的命令数量

-top选项用于指定在报告中显示单次调用资源消耗排名靠前的命令数量。与-cumulative类似,如果存在资源消耗值相同的情况,相关命令也会一并显示。若未指定该选项,默认显示单次调用资源消耗排名前10的命令。

-top选项与-start选项、-stop选项、-resume选项和-command选项是互斥的,不能同时使用。

指定报告某个具体命令

-command选项用于生成针对某一个指定命令的性能剖析报告。报告中会同时显示该命令的累计资源消耗情况,以及资源消耗最大的单次调用情况。如果指定的命令在当前剖析周期内从未被调用,则report_trace命令会给出相应提示,而不会生成空报告。

-command选项与-start选项、-stop选项、-resume选项、-cumulative选项和-top选项是互斥的,不能同时使用。

指定静默输出

-quiet选项用于指定静默输出,例如重复启动性能剖析,或对不存在的命令生成报告,此时不会报错或警告(不过语法错误仍会报错)。

简单使用

dcnxt_shell-topo> report_trace -start dcnxt_shell-topo> source dc.tcl > log dcnxt_shell-topo> report_trace -cumulative 5 -top 5 MEM (kBytes): Cumulative(top 5): compile_ultra ( 2 calls): 309780 open_lib ( 2 calls): 12876 analyze ( 2 calls): 7464 elaborate ( 2 calls): 6240 check_design ( 2 calls): 908 Single Call(top 5): compile_ultra : 308000 open_lib : 12876 analyze : 7464 elaborate : 6240 check_design : 908 CPU: Cumulative(top 5): compile_ultra ( 2 calls): 00:00:31.12 analyze ( 2 calls): 00:00:01.09 elaborate ( 2 calls): 00:00:00.24 open_lib ( 2 calls): 00:00:00.08 set_tlu_plus_files ( 2 calls): 00:00:00.07 Single Call(top 5): compile_ultra : 00:00:17.96 analyze : 00:00:01.08 elaborate : 00:00:00.21 open_lib : 00:00:00.08 set_tlu_plus_files : 00:00:00.04 TIME: Cumulative(top 5): compile_ultra ( 2 calls): 00:00:31.08 analyze ( 2 calls): 00:00:01.09 elaborate ( 2 calls): 00:00:00.24 open_lib ( 2 calls): 00:00:00.08 set_tlu_plus_files ( 2 calls): 00:00:00.07 Single Call(top 5): compile_ultra : 00:00:17.94 analyze : 00:00:01.08 elaborate : 00:00:00.21 open_lib : 00:00:00.08 set_tlu_plus_files : 00:00:00.04 COUNT: Cumulative(top 5): get_ports : 38 echo : 18 set_output_delay : 10 ::SNPS::set_app_var : 8 capture_app_var : 8 get_clocks : 8 redirect : 8 set_input_delay : 8
返回列表