Включить поддержку fpu для aarch64 (armv8-a) в gcc версии 5.0.1
Я измеряю производительность GFLOPS Cortex-a57 с помощью тестов HPLinpack, и он едва достигает 1 FP/ цикл (учитывая ~2,4 GFLOPS при 2,4 ГГц). Поскольку старый компилятор (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
конфигурация прошла нормально, но при вызове заставьте флаг --with-fpu сбой в gcc / gcc / config.gcc: 4351
echo "Эта цель не поддерживает параметр --with-$." 2>&1
из-за support_defaults для архитектуры aarch64, как определено в gcc / gcc / config.gcc 3464: 3467
support_defaults= case "${target}" в aarch64 * --) support_defaults="abi cpu arch"
Почему опция fpu не поддерживается? Любой совет приветствуется, я никогда не делал этого раньше, и я немного потерян:)
1 ответ
32-битная рука и 64-битная цель aarch64 разделены в GCC. Цель aarch64 не поддерживает --with-fpu
настроить параметр (или -mfpu
опция командной строки), поскольку предполагается, что FPU присутствует по умолчанию. Таким образом, вы всегда получаете поддержку с плавающей точкой и AdvancedSIMD по умолчанию.
Это не похоже на цель 32-битной руки (arm*-*-*
triplets), который также поддерживает программный интерфейс с мягкими числами и может быть настроен с различными уровнями поддержки FPU от более старых версий архитектуры.
В итоге: если вы нацеливаетесь на aarch64, вам не нужно указывать опцию настройки --with-fpu (и она все равно не поддерживается на aarch64)