gpt4 book ai didi

android - ARM Neon Assembler - 奇怪的管道问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:05 25 4
gpt4 key购买 nike

我正在尝试提高使用 Neon 指令在 ARM 汇编程序中编写的一段代码的性能。

为了测试和计算,我使用这个计算器: http://pulsar.webshaker.net/ccc/sample-706454b3

我注意到在“n.34-0 1c n0”行,Neon 单元突然似乎必须等待(?)10 个周期。这可能是什么原因,还是只是计算器中的错误?

此外,我还需要一些关于如何提高 ARM/Neon 汇编器性能的一般信息。

目标是 ARM Cortex-A9。对于编译,我使用最新的 android-ndk 和内联汇编器。谢谢。

最佳答案

NEON 单元必须等待该指令,因为您正在引用在前一个 NEON 指令 (n.33-0 1c n0) 中加载的寄存器 (D4)。加载不是瞬时的,并且由于流水线,即使数据来自缓存,数据的可用性也会有延迟。您需要对 ARM 和 NEON 指令重新排序,以免在加载寄存器后立即尝试使用它们,否则最终会浪费周期(流水线停顿)。

关于android - ARM Neon Assembler - 奇怪的管道问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9724133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com