ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
613886 Топик полностью
Ruslan (14.08.2015 09:56 - 10:00, просмотров: 241) ответил akm на Странные результаты для ARM -а приводят
Результаты теста linpackc на FPGA SoC Altera. Платформа: модуль на FPGA SoC Altera, 5CSEBA6U19C8ES. В составе процессор Cortex-A9, два ядра 800 МГц. Версия ядра - r3p0 На платформу установлена ОС Gentoo Linux. Информация о системе и компиляторе:
# uname -a
Linux localhost 4.0.0-rt4-00178-g5d36469-dirty #12 SMP PREEMPT RT Thu Jul 30 17:26:38 MSK 2015 armv7l Altera SOCFPGA GNU/Linux
информация о процессоре:
# cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 0 (v7l)
BogoMIPS        : 1591.29
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x3
CPU part        : 0xc09
CPU revision    : 0

processor       : 1
model name      : ARMv7 Processor rev 0 (v7l)
BogoMIPS        : 1591.29
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x3
CPU part        : 0xc09
CPU revision    : 0

Hardware        : Altera SOCFPGA
Revision        : 0000
Serial          : 0000000000000000
# gcc -v
Используются внутренние спецификации.
COLLECT_GCC=/usr/armv7a-hardfloat-linux-gnueabi/gcc-bin/4.8.4/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/armv7a-hardfloat-linux-gnueabi/4.8.4/lto-wrapper
Целевая архитектура: armv7a-hardfloat-linux-gnueabi
Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.8.4/work/gcc-4.8.4/configure --host=armv7a-hardfloat-linux-gnueabi --build=armv7a-hardfloat-linux-gnueabi --prefix=/usr --bindir=/usr/armv7a-hardfloat-linux-gnueabi/gcc-bin/4.8.4 --includedir=/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.8.4/include --datadir=/usr/share/gcc-data/armv7a-hardfloat-linux-gnueabi/4.8.4 --mandir=/usr/share/gcc-data/armv7a-hardfloat-linux-gnueabi/4.8.4/man --infodir=/usr/share/gcc-data/armv7a-hardfloat-linux-gnueabi/4.8.4/info --with-gxx-include-dir=/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.8.4/include/g++-v4 --with-python-dir=/share/gcc-data/armv7a-hardfloat-linux-gnueabi/4.8.4/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.8.4 p1.6, pie-0.6.1' --enable-libstdcxx-time --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-altivec --disable-fixed-point --with-float=hard --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --disable-libgcj --enable-libgomp --disable-libmudflap --disable-libssp --enable-lto --without-cloog --disable-libsanitizer
Модель многопоточности: posix
gcc версия 4.8.4 (Gentoo 4.8.4 p1.6, pie-0.6.1)
# gcc -print-multi-lib
.;
Исходники теста взяты отсюда - http://www.netlib.org/benchmark/linpackc В тест внесены следующие изменения: #define NTIMES 10 заменен на #define NTIMES 100 Закомментирована строка void getrusage(); Сборка теста проводилась со следующими ключами:
# gcc -DSP -DUNROLL -O4 -mfpu=neon -mfloat-abi=hard linpackc.c  -o linpackc
Тест запускался три раза:
Unrolled Single  Precision 142167 Kflops ; 100 Reps
Unrolled Single  Precision 131294 Kflops ; 100 Reps
Unrolled Single  Precision 142758 Kflops ; 100 Reps
Далее тест был собран со следующими ключами:
# gcc -DDP -DUNROLL -O4 -mfpu=neon -mfloat-abi=hard linpackc.c  -o linpackc
Тест запускался три раза:
Unrolled Double  Precision 119837 Kflops ; 100 Reps
Unrolled Double  Precision 119213 Kflops ; 100 Reps
Unrolled Double  Precision 121534 Kflops ; 100 Reps