【问题标题】:enable fpu support for aarch64 (armv8-a) on gcc version 5.0.1在 gcc 版本 5.0.1 上启用对 aarch64 (armv8-a) 的 fpu 支持
【发布时间】:2015-06-26 12:45:05
【问题描述】:

我正在使用 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

配置进行得很好,但是在调用 make 时 --with-fpu 标志在 gcc/gcc/config.gcc :4351 中崩溃了

echo "此目标不支持 --with-$option。" 2>&1

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

supported_defaults= 案例“${target}”在 aarch64*--) supported_defaults="abi cpu 架构"

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

【问题讨论】:

  • 我有点惊讶在"read the documentation" 之前有人会去“构建一个新的编译器”...浮点支持是一个拱或 cpu 功能修饰符 - 我猜是因为浮点是AArch64 的标准化部分,因此选择变得简单地“开”或“关”,而不需要区分多种不同的 FPU 实现。

标签: arm neon arm64 fpu gcc5


【解决方案1】:

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

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

总而言之:如果您的目标是 aarch64,则无需指定 --with-fpu 配置选项(无论如何 aarch64 不支持它)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2020-09-13
    • 2016-12-02
    相关资源
    最近更新 更多