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.

[参考译文] TMS320C6674:TMS320C6674的延迟时间和处理速度

Guru**** 2539500 points
Other Parts Discussed in Thread: TMS320C6674, MATHLIB

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/905601/tms320c6674-delay-time-and-processing-speed-for-tms320c6674

器件型号:TMS320C6674
主题中讨论的其他器件: MATHLIB

尊敬的 TI 专家:

TMS320C6674用于实现我的算法。 该算法主要是矩阵操作。 计算金额约为1万亿次乘以运算。 它通过 MATLAB 转换为 C 语言(浮点双精度型)。 通过计算 TMS320C6674上的指令周期执行次数、处理延迟为287ms、超出预期。 我有几个问题:

1.您能不能就减少处理延迟和提高运行速度提出任何建议?

2、 定点数和浮点数的 TMS320C6674处理器的处理速度有何区别? 现在、算法是浮点数、是否需要将算法转换为定点数?

3.当前算法只有一个内核打开。 TMS320C6674多核如何自动开启或需要手动配置? 您能否提供演示或教程来打开多核以提高运行速度?

4. DDR3不能被读取或写入。 如何配置它? 是否有教程或演示?

谢谢、此致、

Thomas

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

    您好!

    对于此类性能问题:

    首先检查您是否启用了 L1D、L1P 作为32KB 高速缓存、并尽可能快地运行 CPU、例如1.0GHz 或1.25GHz。 然后尝试首先将代码/数据放入 L2中、如果 L2不够大、则接下来使用 MSMC。 最后、您可以考虑 DDR3。 如果必须使用 DDR3、请将其配置为启用高速缓存和启用预取。 您必须将 L2的一部分作为缓存。

    然后、查看您的编译器选项、至少使用-O3。

    >>>通过 MATLAB 转换为 C 语言(浮点双精度数)>>>我没有将 Matlab 代码转换为 C 代码的经验,效率如何? 大多数人使用 Matlab 进行仿真、因此他们直接为相同的实现方式编写 C 代码。

    我觉得你可以利用上述建议来了解你可以得到哪些改进。 如果仍未达到您的目标、则其余为高级主题。 您应该使用定点32位还是16位 C、还是浮点或双精度。 您可以容忍哪些类型的量化错误以牺牲执行速度为代价。 您可以在此处查看 Keystone 架构培训: https://training.ti.com/keystone-arm-dsp-multicore-device-training-series?context=15819

    您可以编写 C66x 内在函数来替换您的通用 C 代码以进行改进。 此外、如果您使用更多的数学运算和 FFT 类型、则可以考虑使用 TI 优化的 MATHLIB 和 DSPLIB。

    最后,如果要并行处理,则需要 OpenMP:  

    对于 DDR 初始化、这是一个单独的主题、请打开一个新主题。 我们需要了解这是 TI EVM 还是客户电路板、他们如何在电路板制造过程中进行 DDR 初始化、他们如何计算 DDR 时序? 是否使用 GEL?

    此致、Eric