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.

[参考译文] AM62P:BW 限制器 — 需要有关如何启用此功能以及如何使用它来监控 BW 信息的信息

Guru**** 2894810 points

Other Parts Discussed in Thread: AM62P, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1632298/am62p-bw-limiters---need-information-on-how-to-enable-this-and-use-it-to-monitor-the-bw-information

部件号: AM62P
主题: SysConfig 中讨论的其他器件

尊敬的团队:

我目前正在研究 BW 限制器。 我尝试读取该值、但观察 0 作为输出。  

  1. 我们是否需要为 A53/GPU 的 BW 限制器启用时钟?
  2. 如何使用此计算 BW? 我们是否有此或示例输出的示例?

谢谢、

Shriya

寄存器->

image.png

image.png

 

 

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

    在上面添加此内容-

    指导我在 AM62P TI SDK 裸机上获取每条总线的总线主频率。 我想知道 GPU BW /A53 BW 等 目前我正在探索 BW 限制器。  

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

    您好 Shriya、

    感谢您添加更多信息。

    我了解此查询的范围是:

     但是、了解如何设置 AM62P BW 限制器 — 如有必要,启用时钟,设置 BW 最大值等。对于“每个 AM62P 总线“、请执行以下操作:

    Q1:在每条总线下,如果不仅仅是 GPU 和 A53 ,您意味着什么? 您能否提供您感兴趣的巴士的完整列表?  具体项目的范围请精确说明。

    期待您的反馈!

    此致

    Anastas Yordanov

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

    尊敬的 Anastas:

    感谢您再次参加本次课程。  

    对于我的项目,我需要监控 DDR 的带宽(这里我使用的是 DDR Perf 示例), A53 , GPU ,显示系统 ( DSS ), CBASS。 目前、我正在考虑使用 BW 限制器来获取带宽信息。 在我使用 Baremetal 的 AM62P TI SDK 时、为我提供有关该方面的建议。  

    查询-

    1. BW 限制器将有助于了解 A53/ GPU 的 BW 统计信息?

    2.我们是否有其他例子或寄存器在裸机上为 GPU 提供 BW ?

    谢谢、

    Shriya

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

    尊敬的 Shriya:

    谢谢!

    我来回顾一下您的意见。

    BR、

    Anastas Yordanov

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

    尊敬的 Anastas:

    您是否可以对此进行更新? 我很期待它,因为这个信息将是我的项目的关键.

    谢谢、

    Shriya

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

    尊敬的 Anastas:

    我正在读取 BW 限制器寄存器、但得到了 0 值。 请帮助我了解如何读取这些值。 共享代码片段-  

    代码->

    bwInfo = HW_RD_REG32 (CSL_A53_RS_BW_LIMITER0_REGS_BASE + 0x10CU);
    DebugP_log(“A53 读取带宽信息:0x%08X\n“、bwInfo);
    bwInfo1 = HW_RD_REG32 (CSL_A53_RS_BW_LIMITER0_REGS_BASE + 0x138U);
    DebugP_log(“A53 读取带宽最大字节:0x%08X\n“、bwInfo1);
    bwlim = HW_RD_REG32 (CSL_A53_RS_BW_LIMITER0_REGS_BASE + 0x4U);
    DebugP_log(“A53 读取限制:0x%08X\n“、bwInfo);

    时钟->  

    {TISCI_DEV_GPU_RS_BW_LIMITER9、TISCI_DEV_GPU_RS_BW_LIMITER9_CLK_CLK、500000000}
    {TISCI_DEV_GPU_WS_BW_LIMITER10、TISCI_DEV_GPU_WS_BW_LIMITER10_CLK_CLK、500000000}、
    {TISCI_DEV_A53_WS_BW_LIMITER1、TISCI_DEV_A3_WS_BW_LIMITER1_CLK_CLK、500000000}
    {TISCI_DEV_A53_RS_BW_LIMITER0、TISCI_DEV_A3_RS_BW_LIMITER0_CLK_CLK、500000000}

    请在这里指导我、因为 我正在读取上面提到的所有寄存器的 0。

     

    谢谢、

    Shriya

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

    您好 Shriya、

    是否确定已启用 BW 限制器的功能时钟。

    我将尝试跟进更多信息。

    谢谢

    此致

    Anastas

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

    尊敬的 Anastas:  

    我正在延迟回复。 让我澄清一下我正在寻找的问题-  

    问题 — 运行 GPU 工作负载时需要了解 GPU 带宽。

    方法 — 当前使用 BW 限制符来确定它。 请告诉我是否有其他方法可以在 AM62P + TI SDK +裸机上进行相关操作。

    分析 — 在运行 GPU 工作负载时尝试读取 GPU 的 BW 限制符(GPU 三角示例)

    输出-

    工作负荷之前:  

    GPU RS BW 统计信息阈值:0x00000000
    GPU RS BW 窗口 CNT:0x0000893B
    GPU RS BW 阈值 CNT:0x00008ED8
    GPU RS BW 最大字节:0x00000000
    GPU WR BW 统计信息阈值:0x00000000
    GPU WR BW 窗口 CNT:0x0000A0D9
    GPU WR BW 阈值 CNT:0x0000A676
    GPU WR BW 最大字节:0x00000000

    在工作负载后

    GPU RS BW 统计信息阈值:0x00000000
    GPU RS BW 窗口 CNT:0x000083AB
    GPU RS BW 阈值 CNT:0x00008948
    GPU RS BW 最大字节:0x00000200
    GPU WR BW 统计信息阈值:0x00000000
    GPU WR BW 窗口 CNT:0x00009B48
    GPU WR BW 阈值 CNT:0x0000A0E6
    GPU WR BW 最大字节:0x00000280

    观察 — 我看到有增加的窗口 cnt 读取/写入,但值接收上最大字节在单个窗口,这是这样计算 BW 乘以总窗口已经历? 我想在这里提供一些参考或您的输入。

    此致、

    Shriya

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

    是的、我已启用时钟。 如上一次答复所述─

    时钟->  

    {TISCI_DEV_GPU_RS_BW_LIMITER9、TISCI_DEV_GPU_RS_BW_LIMITER9_CLK_CLK、500000000}
    {TISCI_DEV_GPU_WS_BW_LIMITER10、TISCI_DEV_GPU_WS_BW_LIMITER10_CLK_CLK、500000000}、
    {TISCI_DEV_A53_WS_BW_LIMITER1、TISCI_DEV_A3_WS_BW_LIMITER1_CLK_CLK、500000000}
    {TISCI_DEV_A53_RS_BW_LIMITER0、TISCI_DEV_A3_RS_BW_LIMITER0_CLK_CLK、500000000}

    这是你问过的吗?

    谢谢、

    Shriya

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

    尊敬的 Shriya:

    对于我延迟的反馈、我深表歉意。  

    我们是否需要为 A53/GPU 的 BW 限制器启用时钟?

    事实证明、这 甚至可能没有必要、因为根据 AM62Px TRM、没有 BW 限制器本地时钟管理寄存器。 在 SYSCONFIG ClockTree 工具视图中、双核 A53 - AM62P52 GPU 和 A53 BW 限制器功能/接口时 钟均来自一个和同一 500MHz MAIN_SYSCLK0 时钟。  在 AM62P 上电复位后、默认情况下为其供电并设置为 500MHz。

    {TISCI_DEV_GPU_RS_BW_LIMITER9、TISCI_DEV_GPU_RS_BW_LIMITER9_CLK_CLK、500000000}
    {TISCI_DEV_GPU_WS_BW_LIMITER10、TISCI_DEV_GPU_WS_BW_LIMITER10_CLK_CLK、500000000}、
    {TISCI_DEV_A53_WS_BW_LIMITER1、TISCI_DEV_A3_WS_BW_LIMITER1_CLK_CLK、500000000}
    {TISCI_DEV_A53_RS_BW_LIMITER0、TISCI_DEV_A3_RS_BW_LIMITER0_CLK_CLK、500000000}

    我还不是 TI MCU+SDK 软件专家、 您能否向我解释一下这些 TISCI API 实际上有什么作用? (我只能猜测应用了 500MHz 设置,还有什么?)

    根据 AM62P/WS BW 限制器的功能逻辑 、  我在公开提供的 RS TRM 文档、E2E 源代码或应用手册中找不到更多信息、这些限制器似乎仅根据 SoC 中的 GPU、A53 和编解码器子系统进行显式实例化。 应遵循特定的寄存器编程模型、以保证 寄存器在 预期看到这些值的位置具有适当的初始化和准确的行为。

    因此、我会将此查询重新分配给相关的 AM62Px MCU+SDK 硬件和软件专家、他们可以告诉您有关 BW 限制器信息在公共域中的可用性的更多信息、并提供必要的参考(如果有)。 请预计他们的回复可能会有一些延迟(下周初)。

    感谢您的耐心!

    此致

    Anastas Yordanov

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

    好的、感谢您的更新。  

    是的、我使用可用的 TRM 来了解 BW 限制器、该信息有限。 目前、我只测量如下所示的 Peak BW -

    窗口寄存器默认值= 0x400 = 1024 个周期

    窗口持续时间= 1024 / 500,000,000 = 2.048µs

    峰值 BW (MB/s)= RD_BYTES_MAX /(WINDOW_CYCLES / 500,000,000)

    测试结果示例

    1. 将阈值设置为 0x100、GPU RS BW 统计数据阈值:0x00000100。
    2. 最大字节:0x00000000(之前)
    3. GPU RS BW 最大字节:0x000001C0 = 448 字节(之后)
    4. GPU WS BW 最大字节:0x00000280 = 640 字节
    5. 峰值读取 BW = 448 字节/ 2.048µs = 448/0.000002048 = 218,750,000 字节/秒= 208.6Mb/s
    6. 峰值写入 BW = 640 字节/ 2.048µs = 640 / 0.000002048 = 312,500,000 字节/秒= 298.8Mb/s
    7. 总峰值 GPU BW = 208.6 + 298.8 = 507.4Mb/s
    8. 设置阈值=  
    9. A53 读取 最大字节= 0x00000840 = 2112 字节
    10. A53 写入最大字节= 0x00000400 = 1024 个字节
    11. A53 读取 窗口 = 0x0000213F = 8511 个窗口= 17.4ms
    12. A53 写入窗口 = 0x000053F1 = 21,489 个窗口= 44.0ms
    13. A53 峰值读取 BW = 2.048µs = 1031.25Mb/s
    14. A53 峰值写入 BW = 1024 / 2.048µs = 500.00MB/s
    15. 总峰值 BW:1531.25 MB/s  

    查询-  

    1.需要对该数据的输入。

    2.有没有方法计算 GPU 的平均 BW ?

    期待专家的意见。

    此致、

    Shriya

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

    Shriya,  

    我认为带宽限制器不能为您提供有关您正在寻找的平均带宽的信息。 可用统计信息是您报告的内容、即最大字节数和峰值 BW。 因此、虽然您可以获得窗口中的最大字节以及经过的窗口数、但您不知道每个窗口中每个窗口传输了多少字节来获得平均值。

    谢谢、

    Chris  

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

    您好、Chris、

    感谢您的更新和说明。

    您能告诉我另一种方法来确定 GPU 的平均带宽吗? 这是我们项目所需的非常重要的信息。

    我还有一种方法-

    1.对 A53 和编解码器使用限制器并限制传输到 DDR 的字节数。  

    2.运行 GPU 工作负载并监控 DDR 性能计数器,以及 GPU BW 限制器,这是否有助于获得大约 GPU BW ?

    谢谢、

    Shriya

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

    Shriya,  

    我担心在 A53 和编解码器实时运行时、移除 A53 和编解码器流量然后进行测量可能会影响测量。 A53/编解码器的总线或存储器访问可能会影响 GPU 访问延迟、从而影响性能。  

    如果需要近似值、也许可以通过频繁清除统计信息并假设最大吞吐量与经过的窗口数一致来使用 BW 限制器? 这将取决于可变性的水平、但如果您可以足够频繁地对 BW 限制器进行采样、以便经过少量窗口、则可能需要足够精细才能给出近似值。  

    我还将邀请 GPU SW 专家、看看是否可以从 GPU 的角度执行任何操作来启用此请求。  

    谢谢、

    Chris  

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

    您好、Chris、

    感谢您的回答。 是的、我尝试了使用 BW 限制器来分析 GPU 带宽。 但我看到与 A53 相比,GPU 的 BW 大幅下降。 是否需要在 AXI 总线上启用任何时钟? 任何其他参数都是负责增加 GPU BW ?

    我正在运行 GPU 工作负载 (GPU Triangle) 50 毫秒、每 1000 毫秒采样一次。 共 50 个样本。  

    通过聚合所有样本->计算平均 GPU BW  

    ===== GPU BW 最终报告======

    持续时间:  50167 毫秒

    样本:   50167

    读取总计: 23582208 字节

    总共写入: 56468480 字节

    平均读取 BW: 0.45 MB/s

    平均写入 BW:1.07 MB/秒

    总 BW:  1.52 MB/秒

    谢谢、

    Shriya

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

    下一个查询-

    主互连上是否有任何有助于增加带宽的寄存器、计数器或时钟? 基本上、我们观察到的 GPU 带宽非常低、我没有找到有关 GPU/DSS/A53 的性能计数器(可用于 DDR)的更多信息?  

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

    尊敬的 Shriya:

    我们仅支持 GPU 的 Linux 驱动程序。 需要非 Linux 驱动程序的客户通常与第三方供应商(如 Green Hills、Wind River 等)合作 如果您使用的是自定义驱动程序、则需要自行负责优化和调试该驱动程序。 通常、没有会增加 GPU 活动的寄存器设置、这完全取决于驱动程序的实现。

    此致、
    Krunal

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

    尊敬的 Krunal:

    感谢您的澄清。  

    我遇到了 QoS、它有助于设置 GPU 或 A53 的优先级、但它没有更改 GPU BW 值。 那么、找出类似的东西可以做到-  

    如果存在任何特定于总线主器件或 CBASS 的寄存器、则需要参考这些寄存器、这将有助于满足带宽要求。

    除此之外->

    EMIF_SSCFG_PERF_CNT_SEL_REG

    EMIF_SSCFG_PERF_CNT1_REG

    EMIF_SSCFG_PERF_CNT2_REG

    EMIF_SSCFG_PERF_CNT3_REG

    EMIF_SSCFG_PERF_CNT4_REG

    我找不到特定于 GPU、A53 或其他总线主器件的性能计数器参考。

     谢谢、

    Shriya

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

    尊敬的 Shriya:

    仅当多个启动器同时访问 DDR 并且您遇到争用时、上述寄存器才会起作用。 我在您的用例中看不到这种情况。 您提到您正在 BareMetal OS GPU 驱动程序中运行三角测试、您是否分析过代码以查看它是带宽密集型测试还是仅是功能测试?

    此致、
    Krunal

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

    尊敬的 Krunal:

    很抱歉耽误您的回答。 它不是 BW 密集测试,而是功能测试。 但应该可以使用寄存器来了解 GPU 带宽。 我们可以关闭此 TT ,如果我得到任何输入,我将重新打开。 当前使用 BW 限制器进行监视。

    谢谢、

    Shriya