arm - 在 gcc 版本 5.0.1 上启用对 aarch64 (armv8-a) 的 fpu 支持

标签 arm neon arm64 fpu gcc5

我正在使用 HPLinpack 基准测量 Cortex-a57 的 GFLOPS 性能,它勉强达到 1 FP/周期(考虑到 ~2.4 GFLOPS @ 2.4 GHz)。由于旧编译器 (gcc 4.9.1) 提示有几个版本的 -mfpu= 选项,我尝试如下配置 gcc 5.0.1

../gcc/configure --with-gmp=/tmp/gcc --with-mpfr=/tmp/gcc --with-mpc=/tmp/gcc --with-libelf=/tmp/gcc - -enable-languages=c,c++,fortran,go --target=aarch64-linux-gnu --prefix=/opt/another-gcc5 --with-arch=armv8-a --with-cpu=cortex-a57 - -with-fpu=neon-fp-armv8

配置没有问题,但是在 gcc/gcc/config.gcc 中调用 make --with-fpu 标志时崩溃了:4351

echo “这个目标不支持 --with-$option。” 2>&1

由于 gcc/gcc/config.gcc 3464:3467 中定义的 aarch64 架构的 supported_defaults

支持的默认值= 案例“${target}”在 aarch64*--) supported_defaults="abi cpu arch"

为什么不支持fpu选项?任何建议表示赞赏,我以前从未这样做过,我有点迷茫:)

最佳答案

32 位 arm 和 64 位 aarch64 目标在 GCC 中是分开的。 aarch64 目标不支持 --with-fpu 配置选项(或 -mfpu 命令行选项),因为假定 FPU 默认存在。因此,您始终默认获得浮点和 AdvancedSIMD 支持。

这与 32 位 arm 目标(arm*-*-* 三元组)不同,32 位 arm 目标也支持软浮点 ABI,并且可以配置为与旧版本不同级别的 FPU 支持的架构。

总结:如果你的目标是 aarch64,你不需要指定 --with-fpu 配置选项(而且它在 aarch64 上不受支持)

关于arm - 在 gcc 版本 5.0.1 上启用对 aarch64 (armv8-a) 的 fpu 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736921/

相关文章:

c - 在 C 中使用 ASM 命令

c - 如何将动态可执行文件转换为静态可执行文件?

c - 将硬 float 链接到 softfp 不良性能

assembly - 是否有用于 16 字节宽 VTBL 的 Armv8-A 内在函数?

ios - 如何将 Xcode arm64 编译器输出视为汇编语言?

arm - 如何使用有序提交来进行load-> store重新排序?

arm - 为什么 Clang 不对 AArch32 上的 __builtin_popcountll 使用 vcnt?

ios - iPhone 上最快的反平方根

ios - 仅将 arm64 保留为有效架构的后果?

java - 在 aarch64 Odroid C2 的 Java 1.8.0_73 上运行 WebStorm-143.382.36 在 libjnidispatch.so 上失败