【问题标题】:Would a C6000 DSP be outperformed by a Cortex A9 for FP用于 FP 的 Cortex A9 是否会优于 C6000 DSP
【发布时间】:2013-06-06 14:28:43
【问题描述】:

我目前使用的是没有硬件 FPU 的 OMAP L138 处理器。我们将使用 FP 密集型算法处理光谱数据,因此 ARM 方面将不够用。我不是算法人,但一个是“动态时间扭曲”(我不知道这是什么意思,不)。初始性能数字是:

Core i7 笔记本电脑@ 2.9GHz:1 秒
树莓派 ARM1176 @ 700MHz:12 秒
OMAP L138 ARM926 @ 300MHz:193 秒

更糟糕的是,树莓派的价格大约是我正在使用的主板价格的 30%!

我确实有一个 TI C674x,它是 OMAP L138 中的另一个处理器。问题是我最好花几周时间尝试:

  • 学习 DSPLINK、互操作库和工具链,更不用说为 Code Composer 付出高昂的代价或
  • 扔掉 L138 并转移到像 Pandaboard 这样的 Dual Cortex A9,在此过程中可能会受到功率损失。

(当我查看 A8 上的 FPU 性能时,它并没有比 Rasp Pi 有所改进,但 Cortex A9 似乎是)。

我知道答案是“视情况而定”。这里的其他人have said 说“你解锁了一个令人难以置信的快速 DSP,如果分配正确的工作,它可以轻松胜过 Cortex-A8”但是对于定义的工作集,我最好还是跳到 A9,即使我不得不买一个以后外接DSP?

【问题讨论】:

  • 如果不了解应用程序的更多信息,这是一个很难回答的问题:它是否商业化? (如果是这样,您不能为此使用 Pandaboard),您对算法的 IO 要求是什么(同样,评估板通常没有快速 IO,依此类推。
  • 它是商业的,IO 似乎不是问题。从本质上讲,它归结为原始 FP 性能。在 FP DSP 上执行单精度或双精度加/减运算的速度与在 ARM Cortex A9 上的速度一样快。从另一篇文章中,答案似乎是“是的,如果优化正确”。那么问题就变成了:“即使节省电力,使用 DSP 是否值得花费成本/学习曲线/时间”?我倾向于说“不”。 (但后来我必须改变我目前的开发平台。)
  • 我对商业用途的评论是因为 Pandaboard 没有量产,也不够强大(我怀疑 Raspberry Pi 也不是)。就原始性能而言,NEON 理论上每个内核一个周期可以执行两个单精度 FP MAC(但是有一个巨大的管道,这使得分支非常低效)。很难相信 DSP 会做的远不止这些。
  • 有效点,非常值得注意。我目前正在使用 MityDSP SoM,它是商业的,但会在投入平台之前在 Pandaboard 或 Wandboard 上测试性能。我只需要对所有内容进行基准测试!谢谢。

标签: arm signal-processing ti-dsp


【解决方案1】:

如果不知道 DSP 和 ARM 的时钟频率,就无法回答这个问题。

这里有一些背景:

我刚刚检查了 c674x DSP 上浮点乘法的周期:

它可以在每个周期发出两次乘法,每次乘法的结果延迟为三个周期(这意味着您必须等待三个额外的周期才能将结果显示在目标寄存器中)。

您可以开始两个乘法每个循环,因为 DSP 不会等待结果。编译器/汇编器将为您执行所需的调度。

这仅使用了 DSP 的八个可用功能单元中的两个,因此当您执行两个乘法运算时,您也可以在每个周期执行:

  • 两个加载/存储(64 位宽)
  • 六个浮点加/减指令(或整数指令)

循环控制和分支是免费的,不会在 DSP 上花费任何费用。

这使得每个周期总共有六个浮点运算,具有并行加载/存储和循环控制。

另一方面,ARM-NEON 在浮点模式下可以:

每个周期发出两次乘法。延迟是可比的,并且指令也可以像 DSP 上一样流水线化。加载/存储与添加/减去内容一样需要额外的时间。循环控制和分支很可能在编写良好的代码中是免费的。

总的来说,DSP 每个周期的工作量是 Cortex-A9 NEON 单元的三倍。

现在您可以检查 DSP 和 ARM 的时钟频率,看看哪种方式更适合您的工作。

哦,有一件事:使用编写良好的 DSP 代码,您几乎不会在加载期间看到缓存未命中,因为您在访问数据之前使用 DMA 将数据从 RAM 移动到缓存。这也为 DSP 带来了令人印象深刻的速度优势。

【讨论】:

  • 这非常有用,谢谢 Nils。显然,如果我在大型阵列(我有)上进行 FP 计算,那么 DSP 将真正发挥作用,而且我仍然拥有 ARM。 L138 ARM+DSP 在此板上最高可运行 450MHz。我将订购 1GHz 的 Dual Cortex A9(Wandboard),我会看看效果如何。但是任何人都需要 3 周的时间来决定 100 美元的成本,同时我要弄清楚如何使用命令行 DSP 编译器(叹气),所以我应该有机会直接进行基准测试。根据您的说法,DSP 仍然会更快。
【解决方案2】:

它确实取决于应用程序,但一般来说,如今专用处理器很少能击败通用处理器。通用处理器现在具有更高的时钟频率和多媒体加速。即使对于 DSP 可能具有优势的数值密集型算法,处理异构多处理器环境所增加的工程复杂性也使得这种类型的解决方案从 ROI 角度来看是有问题的。

【讨论】:

  • 确实如此。正是复杂性意味着我们必须从 OMAPL138 更改为 OMAP4460。我确信 DSP 是可以接受的,但没有工程师有这方面的经验。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 2011-11-08
  • 2015-08-12
  • 2021-10-15
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多