This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] [参考译文] [常见问题解答] TDA4VM:如何使用 OpenVx 性能分析器在 OpenVX 应用中对事件进行运行时记录?

Guru**** 2204280 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/930770/faq-tda4vm-how-to-do-a-run-time-logging-of-events-in-an-openvx-application-using-openvx-performance-analyzer

器件型号:TDA4VM

我想在 OpenVX 应用中进行某种甚至是日志记录、以查找执行中可能存在的瓶颈、我是否可以这样做? 我使用的是 PSDKRA 7.0。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    TDA4 SoC 中有许多硬件加速器和 CPU、因此、应用中的许多处理函数可以并行运行、并通过流水线实现更好的性能。

    但有时由于某些配置问题或其他问题、我们无法获得预期的性能、而当时我们需要查看运行情况、运行顺序以及运行速度。 通过这些信息、我们可以了解瓶颈在哪里。

    TIVX_LOG_RT 工具可帮助我们直观地检查不同 CPU /硬件加速器上不同节点的执行情况以及全局时间戳。

    我们可以按如下方式进行两级分析:

    1. 性能统计:框架在运行项目时收集信息、在交互模式下(通过在菜单中按"p")、我们可以打印此信息的快照。 性能统计数据快照包含有关节点处理1帧的平均执行时间以及整个应用程序处理一帧所需的时间的信息(让我们称之为确定 FPS 的 T)。
      1. 管道良好的应用程序将使 T 略高于各个处理节点的最大值。
      2. 如果 t >>各个处理节点的最大值、则可以使用 TIVX_LOG_RT 工具转到下一级分析。
    2. TIVX_LOG_RT:请参见下文

    TIVX_LOG_RT

    此工具支持运行时节点启动/停止事件记录。

    工具在目标(EVM)上输出.bin 文件、可以使用离线工具对其进行后处理、以提供.VCD.html 文件。

    如何在应用程序中启用 RT 日志记录

    要在程序中启用运行时事件记录、请执行以下操作:

    1. 在图形验证之后、但在图形执行之前、调用  TIvxLogRtTraceTM (graph) 以启用该图形的事件记录。
    2. 照常执行图形。
    3. 在图形执行停止后、或者定期调用  TIvxLogRtTraceExportToFile (filename) 将事件数据保存到文件中。
    4. 在图形执行已经停止并且 在 vxReleaseGraph 之前、调用  tivxLogrtTraceTM Disable (graph) 来禁用该图形的运行时日志记录。

    如何可视化图形数据

    安装并构建 gtkwave:[仅一次]

    sudo apt-get install gtkwave
    CD /tiovx/tools/tivx_log_rt
    制造 

    要可视化图形数据、请执行以下操作:

    1. 将通过    TIvxLogRtTraceExportToFile (filename)保存在 EVM 上的事件日志.bin 文件复制到 Linux PC 中的文件夹中。
    2. 生成 .VCD  文件(值更改转储)文件以可视化 Gtkwaveas 中的事件、如下所示
      tiovx/tools/tivx_log_rt/tivx_log_rt_2_vcd.out -i event_log.bin -o event_log.VCD 
    3. 生成.html 文件以可视化每个节点帧级别的统计信息、如下所示
      tiovx/tools/tivx_log_rt/tivx_log_rt_2_html.out -i event_log.bin -o event_log.html 
    4. 在 gtkwave 中打开.VCD 文件
      gtkwave event_log.VCD 
    5. 在 gtkwave 中、将感兴趣的"点火"从左下方框拖放到中间框、并在右侧框中显示"点火"。
      1. 请注意、需要按顺序拖放"点火"、以便于解释应用程序的执行。 首先执行的处理节点应位于上方。
      2. 您可以使用生成的图形来了解节点需要放置的顺序。
    6. 在 Web 浏览器中打开.html 文件以可视化每个节点帧级别的统计信息。
      1. 请注意、html 文件使用 http://dygraphs.com/中的 dystings.js 、因此请确保互联网连接正常。

    PSDKRA 7.0上 TIVX_LOG_RT 和其他离线工具的补丁

    该工具是在 PSDKRA 7.0版本之后添加的、将作为后续 SDK 的一部分提供支持。 所附的补丁旨在使 PSDKRA 7.0上的客户能够在下一版本之前使用。

    补丁位于 tiovx vision_apps 之上、 基线为 PSDKRA 7.0

    /cfs-file/__key/communityserver-discussions-components-files/791/tivx_5F00_log_5F00_rt.zip

    上述软件包的自述文件中介绍了应用修补程序的步骤。

    APP_tidl_avp2演示的输出示例

    /cfs-file/__key/communityserver-discussions-components-files/791/app_5F00_tidl_5F00_avp2_5F00_output.zip

    VCD 视图

    1. 此视图中有两种类型的"点火"、即 openVX 节点和 CPU/HW 加速器。 节点通常表示为总线[3:0],后接*节点,而 CPU/硬件加速器表示为单个位值(高或低)。
    2. 节点为 ScalarNode[3:0]、ODPreProcNode[3:0]、ODTODLNode[3:0]等。CPU /硬件加速器为 DISPLAY1、DSP-1、DSP-2、DSP_C7-1等
    3. 节点0、1、2、3的值。 描述了要处理的帧。 这是一个相对数字、只是为了更好地了解当特定节点处理帧3时、其他节点正在处理帧编号。

    .html 视图

    1. HTML 视图提供更多统计数据。