Other Parts Discussed in Thread: AM62P, SYSCONFIG
部件号: AM62P
主题: SysConfig 中讨论的其他器件
尊敬的团队:
我目前正在研究 BW 限制器。 我尝试读取该值、但观察 0 作为输出。
- 我们是否需要为 A53/GPU 的 BW 限制器启用时钟?
- 如何使用此计算 BW? 我们是否有此或示例输出的示例?
谢谢、
Shriya
寄存器->


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.
Other Parts Discussed in Thread: AM62P, SYSCONFIG
部件号: AM62P
主题: SysConfig 中讨论的其他器件
尊敬的团队:
我目前正在研究 BW 限制器。 我尝试读取该值、但观察 0 作为输出。
谢谢、
Shriya
寄存器->


您好 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
尊敬的 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
尊敬的 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.需要对该数据的输入。
2.有没有方法计算 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
尊敬的 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