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.

[参考译文] TMS320F28384D:CLA FP32精度问题

Guru**** 2513185 points
Other Parts Discussed in Thread: TMS320F28384D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1362367/tms320f28384d-cla-fp32-precision-issues

器件型号:TMS320F28384D

您好、TI 专家! 我使用的是 TMS320F28384D。

我进行了一个简单的测试、以同时使用 CPU 1和2以及每个 CLA。 结果如下:

单核时间=74ms
单核分辨率=1967.704102

多核时间=18ms
内核 CPU1 CPU 分辨率=502.574646
内核 CPU1 CLA 分辨率=493.185547
内核 CPU2 CPU 分辨率=502.574646
内核 CPU2 CLA 分辨率= 493.185547
多核分辨率=1991.520386

代码执行2000000 FP32加法。 加法单位是0.001。

CPU1单独处理的结果和四个处理单元共享处理的结果分别表示为单个和多个。
CPU 和 CLA 之间似乎存在差异、因此似乎有必要进行检查。 在提供建议之前、请随时询问您需要的任何信息。 谢谢!

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

    您好!

    问题到底是什么、或者您对什么结果有疑问? 您在应用中发现了精度问题吗? 如果是、请简要说明您的应用以及预期  结果与实际结果的对比情况、我将尽力为您提供帮助。

    此致、

    德拉尼

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

    你好 Delaney Woodward。

    源代码如下。

    ...
      for (i = 0;i < 500000;i++){
        fp32_data = fp32_data + 0.001f;
      }
    ...

    这两个内核的计算结果如下:

    CPU:502.574646
    CLA:493.185547

    CPU 的结果输出的值与普通 PC 相同、但 CLA 的结果出现问题、但结果不同。 我想知道此结果是否正常、或者它是否是由设置错误引起的问题。

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

    您好,安

    我明白了、我认为这是 CLA 的结果、只包含了 FPU32指令集的一个子集。 您可以在 CCS 中查看反汇编窗口以比较 每个内核上使用的汇编指令吗? 我怀疑在 CLA 上执行的更多操作之一会导致精度降低。

    此致、

    德拉尼

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

    你好 Delaney Woodward。

    感谢您的关注。

    首先、出现了另一个问题、我认为我们需要解决这个问题并继续。 CLA 仅适用于连接的调试器、如果在不使用调试器的情况下运行、则没有响应、因此我推断这是配置问题。 我们将在问题解决后稍后分享信息。

    谢谢!

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

    您好,安

    在没有调试器的情况下运行时,没有响应

    您是说如果您在不 连接调试器的情况下直接加载程序? 如何 验证 CLA 是否未连接(正在切换 GPIO?)?

    此致、

    德拉尼

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

    此问题通过修改 cmd 来解决。 当 MCU 从闪存引导时、CLA 还必须指定闪存、但不起作用、因为程序是从 RAM 读取的。

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

    您好,安

    很高兴听到您能够解决此问题。

    此致、

    德拉尼