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.

[参考译文] AM275-FreeRTOS-SDK:有关针对 64 阶协方差矩阵分解的 DSP 性能优化

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1596793/am275-freertos-sdk-regarding-the-performance-optimization-of-dsp-for-64th-order-covariance-matrix-decomposition

器件型号:AM275-FREERTOS-SDK

使用 DSP 计算 64 阶协方差矩阵分解,最耗时的 SVD 分解需要 15ms ;
仅使用了 DSP0 的核心、编译优化参数为:38]“E:/ti/ccs2031/ccs/tools/compiler/ti-cgt-c7000_5.0.0.LTS/bin/cl7x /TI/freertos_sdk_am275x_11_01_00_16/source /TI/freertos_sdk_am275x_11_01_00_16/source/dsplib src /TI/freertos_sdk_am275x_11_01_00_16/source/kernel/freertos/config/am275x/c75x --mma_version=2_256f -mv7524 -O3 --opt_for_speed=5 --include_path=“E /TI/freertos_sdk_am275x_11_01_00_16/source/kernel/freertos/portable/TI_CGT/DSP_C75X:/ti/ccs2031/ccs/tools/compiler/ti-cgt-c7000_5.0.0.LTS/include /TI/freertos_sdk_am275x_11_01_00_16/source/kernel/freertos/FreeRTOS-Kernel/include --include_path=“C /Users/Administrator/workspace_ccstheia/hello_world_cpp_am275x-evm_c75ss0-0_freertos_ti-c7000/Debug/syscfg  
[39]Completed building:“SYSCFG/ti_drivers_conf

要求:1. 要求将处理时间优化到 1ms 以下。 需要协调的异构处理、例如 CPU 和 DSP2 内核的联合操作。 DSP 调优还需要哪些其他参数?
您想提供一些优化解决方案吗?  
附件包含我的例行程序。

3hello_world_cpp_am275x-c75ss0-0_freertos_ti-c7000 .zip 

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

    您好、  
    我来看看它。 请期待下周初回复。

    谢谢、

    Shreyansh

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

    您能否提供 SPRUIU4 (C7X 安装 GUI) 文件?

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

    您好、
    您可以申请访问指南: https://www.ti.com/drr/opn/C7X-EA-DEV

    谢谢、
    Shreyansh

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

    是否有更新的信息? 谢谢你

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

    您好、
    我无法解决这个问题。 我会再由星期四来解答。

    谢谢、
    Shreyansh

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

    核心要求是在 1ms 内计算复杂 64×64 协方差矩阵的特征值和特征向量。

    我们尝试了许多方法,例如 QR 分解和 SVD 分解—SVD 在大约 16 毫秒时速度稍快一些。

    我们也使用了 DSPLIB 库、但只有 DSP0 处于活动状态;我们尚未能协同利用这两个 DSP 内核进行加速。

    因此、我们仍然无法满足工程的时间要求。

    专家能否建议更好的方法或提供有效的演示?

    或者、是否有其他芯片可直接满足此要求(在 1ms 内、功耗低于 5W)?

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

    您好、
    我正在积极研究它。 首先、让我回顾一下您的代码并查看 SVD 内核、看看是否还有改进的空间、尽管 15x 可能仍然遥不可及。 我们的当前 DSPLIB 仅在单核上运行。

    谢谢、
    Shreyansh

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

    您好、
    我审核了项目。 首先、在调试模式下编译示例、这会删除任何编译器优化。 我切换到发布版本、这是我看到的数字:

    为此、可将构建配置设置为 RELEASE:

    除此之外、您还必须通过转到工程属性并将文件夹添加到文件搜索路径来链接发行库构建:

    我目前还在检查输入缓冲器的对齐情况。 建议将缓冲区与存储器中的 64 字节边界对齐、以获得出色性能。

    谢谢、
    Shreyansh

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

    是否有任何用于封装基本复数函数的官方优化库? 目前、我正在处理所有复数、将它们分别展开为实部和虚部。

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

    1.是否可以通过提高主频率来增强 am275x 上 dsp0 的处理能力? 如果是、应如何配置?

    2.是否有更强大且功耗相同且适用于复杂矩阵运算的芯片?

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

    您好、  

    1.dsp0 在 am275x 上的处理能力是否可以通过提高主频率来增强? 如果是、应如何配置?

    内核已在尽可能高的频率 (1GHz) 下运行。

    2.是否有更强大且功耗相同且适用于复杂矩阵运算的芯片?

    您正在寻找什么样的复杂操作? 复数的实部和虚部是什么数据类型? 截至目前、DSPLIB 不支持复数数据类型作为输入、但它受编译器内在函数的支持。

    谢谢、
    Shreyansh

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

    对于 64 阶协方差矩阵分解;、例程的运行时间应约为 3ms、但需要达到 1ms。 我是否可以询问 DSP0 和 DSP1 是否可以同时工作以缩短计算时间? 应该如何执行?

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

    让我在内部讨论是否可以并行运行该算法以及是否还有任何优化空间。

    谢谢、
    Shreyansh

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

    我可以询问是否有任何更新或解决方案?

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

    您好、
    经过内部讨论、我们确定了让两个 DSP 协同工作以缩短计算时间是一种可能的解决方案。 但是、这需要您的大量实施工作、尽管我们可以在整个过程中提供支持。 例如、您可能必须分解算法并使用 IPC 在两个内核之间进行通信。 此外、通过调整算法以使用复杂内在函数、可以获得一些性能优势、但我们预计这不会为内核带来 3 倍的改进。 由于涉及大量开发工作、这种优化方法也将更多地成为一种长期解决方案。


    谢谢、
    Shreyansh