Application Processor Benchmarks

From HBMobile
Jump to navigationJump to search

To get a feel for the performance of the various application processors avaliable on the market, we have benchmarked as many as we can get access to. The tool we have used to benchmark the processors is nbench 2.2.2, as it is easy to cross-compile and only depends on libc.

DISCLAIMER: These are simple synthetic benchmarks and may not represent "real-world" performance. The results may also not match different configurations than those tested (e.g. if different memory is used). The results we've got so far also seem to differ to other (probably more professional) results. E.g. The Synchromesh Computing benchmarks


Overview of Results

TEST i.MX31 (532Mhz) PXA255 (400Mhz) PXA270 (600Mhz) S3C2440A (400Mhz) OMAP1710 (252 Mhz) OMAP2420 (330 Mhz)
NUMERIC SORT 133.72 152.44 198.12 91.523 75.819 116.56
STRING SORT 8.1317 10.753 17.469 8.307 5.1752 6.5519
BITFIELD 4.3146e+07 3.6149e+07 6.6802e+07 3.0876e+07 2.4423e+07 3.2551e+07
FP EMULATION 30.475 13.023 41.583 7.9239 9.603 13.204
FOURIER 147.52 - 251.35 11.727 68.432 996.52
ASSIGNMENT - 1.2438 1.2438 0.48694 0.7025 1.0108
IDEA 396.2 393.08 538.49 340.46 224.89 284.63
HUFFMAN 171.95 21.716 302.12 40.497 89.866 119.99
NEURAL NET 0.22022 - 0.306 0.014012 0.092834 1.1723
LU DECOMPOSITION 7.1372 - 7.372 0.48278 3.0535 39.681
MEMORY INDEX - - - 0.673 0.601 0.808
INTEGER INDEX - - - 0.783 0.862 1.185
FLOATING-POINT INDEX - - - 0.011 0.068 0.908

Test Setups

i.MX31

  • Hardware: i.MX31 LITEKIT from LogicPD
  • GCC 4.1.2, armv6-vfp-linux-gnueabi
  • CFLAGS -s -static -Wall -O3 -fomit-frame-pointer -funroll-loops -mcpu=arm1136jf-s -mtune=arm1136jf-s -march=armv6 -mfpu=vfp
  • Kernel 2.6.19

PXA255

  • Hardware Gumstix 400


PXA270

  • gumstix verdex XL6P motherboard with PXA270 CPU at 624MHz
  • RAM: 16bit, 104MHz bus, tRP = 2 clks, CL = 2, tRCD = 2 clks, tRAS(min) = 5 clks, tRC = 8 clks
  • linux 2.6.21gum, uclibc snapshot (gumstix patched) from 20070424, gcc 4.1.1 (with gumstix patches)
  • using EABI and iWMMXt instructions in kernel and libc
  • nbench compiled with CFLAGS = -O3 -march=armv5te -mtune=iwmmxt -Wa,-mcpu=iwmmxt -s -static -Wall -fomit-frame-pointer -funroll-loops -ftree-vectorize

S3C2440A

OMAP1710

  • Hardware: Nokia 770
  • GCC 3.4.4
  • CFLAGS -s -static -O3 -fomit-frame-pointer -Wall -fforce-addr -fforce-mem -falign-loops=2 -falign-functions=2 -falign-jumps=2 -funroll-loops
  • Kernel 2.6.16.27-omap1

OMAP2420

  • Hardware: Nokia N800
  • GCC 3.4.4
  • CFLAGS -s -static -O3 -fomit-frame-pointer -Wall -fforce-addr -fforce-mem -falign-loops=2 -falign-functions=2 -falign-jumps=2 -funroll-loops -mfpu=vfp -mfloat-abi=softfp
  • Kernel 2.6.18-omap1