我使用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 =氖-FP-armv8
配置很好,但是在调用make时,--with-fpu标志在gcc / gcc / config.gcc中崩溃:4351
echo"此目标不支持--with- $ option。" 2 - ;&安培; 1
由于garch / gcc / config.gcc中定义的aarch64架构的supported_default 3464:3467
supported_defaults = case" $ {target}"在 aarch64 * - - 的) supported_defaults =" abi cpu arch"
为什么不支持fpu选项?任何建议都表示赞赏,我以前从未这样做过,我有点失落:)
答案 0 :(得分:1)
32位arm和64位aarch64目标在GCC中是分开的。
aarch64目标不支持Where()
配置选项(或Where()
命令行选项),因为默认情况下假定存在FPU。因此,默认情况下,您始终可以获得浮点和AdvancedSIMD支持。
这与32位arm目标(--with-fpu
三元组)不同,后者也支持软浮点ABI,并且可以从旧版本的架构中配置不同级别的FPU支持。
总结:如果你定位aarch64,则不需要指定--with-fpu配置选项(无论如何都不支持aarch64)