Allwinner A13 - ssvb/tinymembench GitHub Wiki
16-bit DDR2/DDR3 is clocked at 408MHz
tinymembench v0.2.9 (simple benchmark for memory throughput and latency)
==========================================================================
== Memory bandwidth tests ==
== ==
== Note 1: 1MB = 1000000 bytes ==
== Note 2: Results for 'copy' tests show how many bytes can be ==
== copied per second (adding together read and writen ==
== bytes would have provided twice higher numbers) ==
== Note 3: 2-pass copy means that we are using a small temporary buffer ==
== to first fetch data into it, and only then write it to the ==
== destination (source -> L1 cache, L1 cache -> destination) ==
== Note 4: If sample standard deviation exceeds 0.1%, it is shown in ==
== brackets ==
==========================================================================
C copy backwards : 209.4 MB/s (0.7%)
C copy : 232.8 MB/s (0.5%)
C copy prefetched (32 bytes step) : 406.5 MB/s (1.3%)
C copy prefetched (64 bytes step) : 406.4 MB/s (0.7%)
C 2-pass copy : 211.4 MB/s (0.3%)
C 2-pass copy prefetched (32 bytes step) : 329.0 MB/s (0.3%)
C 2-pass copy prefetched (64 bytes step) : 325.8 MB/s
C fill : 1005.9 MB/s (1.3%)
---
standard memcpy : 249.8 MB/s (0.3%)
standard memset : 1006.2 MB/s (1.4%)
---
NEON read : 855.6 MB/s (1.2%)
NEON read prefetched (32 bytes step) : 625.9 MB/s (0.8%)
NEON read prefetched (64 bytes step) : 622.8 MB/s (0.6%)
NEON copy : 438.0 MB/s (0.5%)
NEON copy prefetched (32 bytes step) : 440.6 MB/s (0.3%)
NEON copy prefetched (64 bytes step) : 440.7 MB/s (0.7%)
NEON unrolled copy : 499.9 MB/s (0.5%)
NEON unrolled copy prefetched (32 bytes step) : 490.8 MB/s (0.5%)
NEON unrolled copy prefetched (64 bytes step) : 490.4 MB/s (0.5%)
NEON copy backwards : 430.2 MB/s (28.1%)
NEON copy backwards prefetched (32 bytes step) : 435.1 MB/s (0.6%)
NEON copy backwards prefetched (64 bytes step) : 434.7 MB/s (1.2%)
NEON 2-pass copy : 409.4 MB/s (0.5%)
NEON 2-pass copy prefetched (32 bytes step) : 392.9 MB/s (0.6%)
NEON 2-pass copy prefetched (64 bytes step) : 397.2 MB/s (0.7%)
NEON unrolled 2-pass copy : 414.7 MB/s (0.7%)
NEON unrolled 2-pass copy prefetched (32 bytes step) : 375.2 MB/s (0.4%)
NEON unrolled 2-pass copy prefetched (64 bytes step) : 380.8 MB/s (0.5%)
NEON fill : 1002.8 MB/s (0.8%)
NEON fill backwards : 1006.0 MB/s (1.1%)
ARM fill (STRD) : 1005.8 MB/s (1.3%)
ARM fill (STM with 8 registers) : 1006.1 MB/s (1.9%)
ARM fill (STM with 4 registers) : 1006.1 MB/s (1.7%)
ARM copy prefetched (incr pld) : 420.3 MB/s (0.6%)
ARM copy prefetched (wrap pld) : 389.6 MB/s (0.6%)
ARM 2-pass copy prefetched (incr pld) : 357.0 MB/s (0.6%)
ARM 2-pass copy prefetched (wrap pld) : 345.5 MB/s (0.7%)
==========================================================================
== Memory latency test ==
== ==
== Average time is measured for random memory accesses in the buffers ==
== of different sizes. The larger is the buffer, the more significant ==
== are relative contributions of TLB, L1/L2 cache misses and SDRAM ==
== accesses. For extremely large buffer sizes we are expecting to see ==
== page table walk with total 3 requests to SDRAM for almost every ==
== memory access (though 64MiB is not large enough to experience this ==
== effect to its fullest). ==
== ==
== Note 1: All the numbers are representing extra time, which needs to ==
== be added to L1 cache latency. The cycle timings for L1 cache ==
== latency can be usually found in the processor documentation. ==
== Note 2: Dual random read means that we are simultaneously performing ==
== two independent memory accesses at a time. In the case if ==
== the memory subsystem can't handle multiple outstanding ==
== requests, dual random read has the same timings as two ==
== single reads performed one after another. ==
==========================================================================
block size : read access time (single random read / dual random read)
2 : 0.0 ns / 0.0 ns
4 : 0.0 ns / 0.0 ns
8 : 0.0 ns / 0.0 ns
16 : 0.0 ns / 0.0 ns
32 : 0.0 ns / 0.0 ns
64 : 0.0 ns / 0.0 ns
128 : 0.0 ns / 0.0 ns
256 : 0.0 ns / 0.0 ns
512 : 0.0 ns / 0.2 ns
1024 : 0.0 ns / 0.1 ns
2048 : 0.0 ns / 0.0 ns
4096 : 0.0 ns / 0.0 ns
8192 : 0.0 ns / 0.0 ns
16384 : 0.0 ns / 0.0 ns
32768 : 0.0 ns / 0.1 ns
65536 : 5.5 ns / 10.4 ns
131072 : 8.3 ns / 15.9 ns
262144 : 48.9 ns / 99.7 ns
524288 : 158.1 ns / 310.5 ns
1048576 : 218.0 ns / 426.1 ns
2097152 : 248.1 ns / 487.0 ns
4194304 : 264.5 ns / 519.4 ns
8388608 : 275.3 ns / 540.4 ns
16777216 : 286.9 ns / 561.4 ns
33554432 : 303.5 ns / 595.1 ns
67108864 : 341.2 ns / 673.0 ns