gpt4 book ai didi

gcc - 对于具有单独管道的 ARM,为 "-mfpu=neon-vfpv3"指定 "-mfpu=neon"比 0x104567910 有优势吗?

转载 作者:行者123 更新时间:2023-12-04 22:40:10 25 4
gpt4 key购买 nike

我的 Zynq-7000 ARM Cortex-A9 处理器同时具有 NEON 和 VFPv3 扩展,Zynq-7000-TRM 表示处理器配置为具有“VFPv3 和高级 SIMD 指令的独立管道”。

到目前为止,我使用 Linaro GCC 6.3-2017.05 和 -mfpu=neon 编译了我的程序选项,以使用 SIMD 指令。但是在编译器也有非SIMD操作要下发的情况下,使用-mfpu=neon-vfpv3会有区别吗? ? GCC 的指令选择和调度程序是否会为两个版本发出指令,以便它可以利用两个管道来提高 CPU 的利用率?

最佳答案

从技术上讲,是的。

现实,没有。

NEON 在 ARMv7 上是可选的。

被许可人可以从以下选择一种配置:

  • 仅限 VFP
  • NEON 加 VFP

  • 与 NEON 不同的是,ARMv7 上有不同的 VFP 版本,Cortex-A8 上的 VFP-lite 是最臭名昭著的不流水线,因此速度非常慢。

    因此,通过编译器选项指定 CPU 配置和架构版本在技术上是有意义的,以便编译器可以为该特定架构/配置生成最优化的机器代码。

    然而,实际上,如今的编译器忽略了这些构建选项中的大部分,甚至还忽略了指令。

    并且将 VFP 和 NEON 指令分配给不同的管道不会有太大帮助,如果有的话,因为它们都共享寄存器组。

    通过使用尽可能多的寄存器来提高 NEON 的性能将带来的不仅仅是让 VFP 并行运行。

    我不明白为什么以及如何有这么多人如此信任 免费 这些天的编译器。

    可用的最好的 ARM 编译器是值(value) 6000 美元以上的 DS-5 Ultimate Edition 附带的 ARM 编译器。他们的支持非常好,但我不确定它是否证明了价格标签的合理性。

    关于gcc - 对于具有单独管道的 ARM,为 "-mfpu=neon-vfpv3"指定 "-mfpu=neon"比 0x104567910 有优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47768539/

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