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.

[参考译文] AM5748:GPU 影响 DSP

Guru**** 2398695 points
Other Parts Discussed in Thread: AM5748, AM5718

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1484282/am5748-gpu-affecting-dsp

器件型号:AM5748
主题中讨论的其他器件: AM5718

工具与软件:

尊敬的专家!!

我们目前正在使用 Sitara AM5748、并正在努力处理一些影响 DSP 性能的奇怪行为。 vía 使用 C66x 从两个 ADC 的 McASP 及其 EDMA 接收样本。 EDMA 将样本留在 L2中、完全配置为 SRAM。

当我们与器件的显示屏(由在 A15内核上运行的 Linux 控制)进行交互并且它必须重新绘制一些东西时、我们看到 DSP 需要更多的时间来完成 McASP 回调和后续 SWI。

我们已经尝试过禁用 GPU、让 MPU 来处理图形工作、而 DSP 工作正常。

处理这些样本需要严格的实时、因此我们不能让 GPU (或任何其他启动器)影响 DSP 的性能。

 

那么、我们的问题是:为了确保 DSP/McASP/EDMA 始终具有高于任何其他内核或启动器(例如 GPU)的优先级来访问 L3和 DDR、并防止影响 DSP 的性能、我们应该怎么做?

 

此致

RO

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

    您好、Ro、

    虽然不确定 i8有任何与此相关的示例、但请查看 TRM 的以下一章。

    15.2.3.3带宽稳压器

    仅供参考、下周我要出差、因此回复会延迟至周四13日。

    -若苏厄

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

    您好、Josue:

    我尝试过以下操作、但似乎没有避免问题。 如果我出错了、请告知我:




    我还尝试了"触摸"SDRAM & L3_Main Initiator 优先级寄存器,PEG 优先级,DSP NOC 仲裁和 DMM 紧急,没有工作 .  

    我将在下面的帖子上写下我所做的事情

    我无法理解如何仅对 DSP 或 DSP + IPU 使用服务类进行优先级调节。 还不能看到 只是他们的 masterID+mask 组合或优先级。

    感谢您的支持

    此致

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

    您好、Ro、

    正如我之前说过的、我以前没有看到过这方面的示例、因此我也不确定。 希望 GPU 开发团队可以提供帮助。

    -若苏厄

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

    您好、Josue:

    让我与您分享我尝试过的其他"选项"、以便向 GPU 开发团队提供更完整的信息。 所以、除了 BW 稳压器和限制器 从我的上一篇文章,我尝试:

    启动器初级寄存器

    DMM PEG 优先级

    DSP NOC 仲裁

    DISPC MFLAG

    MFLAG 覆盖

    经过所有这些更改、GPU 对 DSP 的影响似乎小于默认值、但有时仍然会发生。

    因此、如果 GPU 开发团队或任何人可以分享任何提示或帮助来避免这种情况、我将非常感激。 或者 、如果有人发现寄存器的值错误、或者我们可能必须按照正确的顺序、在引导的适当阶段或诸如此类的情况下执行该操作...



      

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

    您好、Ro、

    开发团队基本上是指使用与您所使用的 QoS "旋钮"相同的工具。

    您可以使用以下应用手册获取更多指导: https://www.ti.com/lit/an/sprabx1a/sprabx1a.pdf

    这是非常相似的器件、因此相同的"旋钮"适用。

    由于您使用 devmem2来写入寄存器、因此可以放心地假设您正在使用 Linux 吗?

    一种想法是分析 AM5718中这些"旋钮"的默认值、并将其与 AM5748进行比较。 否则,他们认为可能有必要调整他们一些适合你的用例。  

    如果这有帮助、请告诉我。 我还将在本周晚些时候审核您的更改。

    -若苏厄

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

    您好、Josue:  

    实际上、我使用 sprabx1a 以及 TRM 来使用 我之前的帖子中提到的所有旋钮、您是对的、 我们正在 A15内核上运行 Linux。 具体来说是 Yocto Dunfell、内核5.10.100-rt62、SDK 08.02.01.00。

    按照您的建议、我在复位时(从 TRM 获取)、Linux 启动后和应用旋钮后检查了寄存器值。

    对于 AM5718和 AM5748、TRM 复位值相同。 下图中的 D 列和 E 列。

    Linux 引导后的寄存器值对于 AM5718和 AM5748 (列 F 和 G)也是相同的。唯一与复位值不同的寄存器是 DISPC_GLOBAL_MFLAG_ATTRIBUTE、它已激活 MFLAG_CTRL (通过 GPU 驱动程序我猜测)。

    您可以 在下图中看到该 LED 的蓝色、以及应用旋钮后更改的寄存器(红色、I 列)(H 列)。

    我可以更改上述寄存器的任何其他寄存器或值。 如果我们做错了事或缺少其他事情、我们将感谢开发团队的光照和定位。

    感谢您的支持

    此致

    RO

     

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

    RO、

    我需要花几天时间来回顾。

    -若苏厄

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

    您好、Ro、

    我没有太多的带宽,开发团队只建议打开这些旋钮,直到您获得应用所需的结果。  

    反馈是需要进行一些实验。  

    其他反馈更多的是系统级问题。 在您的应用程序中、您是否为帧速率设置上限? 也就是说、如果降低帧速率、问题是否仍然存在? 它会变得更好吗?

    -若苏厄

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

    您好、Josue:

    抱歉,我误推了"这解决了我的 Isse"。  

    我很欣赏反馈、但我想不出还有什么可以尝试的。 我不知道开发团队是否有机会查看我们根据先前帖子中的旋钮和 TRM 尝试修改的所有寄存器... 我们一直在试验 DSP、DMA 和 GPU 的带式稳压器;GPU 的带式限制器;SDRAM 发起方优先级;L3_MAIN 发起方优先级;PEG 优先级;DSP NOC 仲裁; DISPC MFlag 机制和仲裁;MFlag 覆盖和 DMM 紧急。

    剩下的唯一一件事是服务类别、该类别仅在设置了 Mflag 覆盖功能时有效(然后、我已经尝试了其他操作)、因为我没有办法让 DSP 具有优先级、并且可能横向配置 IPU、而不同时也优先考虑 MPU 或其他非实时外设。

    也许我误解了一些东西,我不是写正确的价值或正确的顺序,但如何知道没有专家的方向? 所有我"触及"的寄存器都旨在使 DSP 及其 DMA 具有最高优先级、或移除 GPU 的优先级、或至少将其保持为默认的中等值。


    另一个线程的问题仍然存在、为什么 AM5748会出现这种问题、但 AM5718不会出现这种问题? 会有什么不同?


    关于帧速率,据我所知,我们没有限定帧速率,我的意思是我们不知道帧速率(我没有在 TRM 中找到它)。 我们可以在哪里查看任何提示?

    感谢您的支持
    RO

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

    RO、您可以在"更多"下拉列表下进行编辑、以从响应中删除绿色的"已激活"高亮显示。

    但是如何在没有专家指导的情况下知道? [报价]

    遗憾的是、大多数 J6开发人员不再在 TI 工作、或者转而担任不同的角色。 这意味着只有我。 (就 BW 而言、不是专家、有时传播得太少)。 我需要一些时间来了解您的更改、此时我的 BW 非常低。

    [报价 userid="451400" url="~/support/processors-group/processors/f/processors-forum/1484282/am5748-gpu-affecting-dsp/5725811 #5725811"]并且还有另一个线程的问题:为什么 AM5748中会出现这一问题、而 AM5718中则不会出现这一问题? 有什么区别?

    我认为差异已得到解决、我无法确认的根本原因、我会联系我们的硬件团队进行评论。

    关于帧速率,据我所知,我们没有限定帧速率,我的意思是我们不知道帧速率(我没有在 TRM 中找到它)。 在哪里可以查看任何提示?

    开发团队提到这一点时应在应用程序级别完成。 其中一种方法是使用 KMS (内核模式设置)、并强制使用较低的分辨率。 看起来你可以通过引导目标将参数传递给内核(我们没有测试过)

    示例: https://wiki.archlinux.org/title/Kernel_mode_setting

    如果您尝试一下、请告诉我。

    -若苏厄