Microsoft Surface Pro X (Microsoft SQ1 Qualcomm SC8180X) - ssvb/tinymembench GitHub Wiki

Running Debian 10 in Hyper-V virtual machine, with 8 vCPU allocated. Memory clocks at 2133MHz.

Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  1
Core(s) per socket:  8
Socket(s):           1
Vendor ID:           Qualcomm
Model:               14
Stepping:            0xd
BogoMIPS:            38.40
Flags:               fp asimd aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp

Compiler flags:

-O3 -march=armv8.2-a -mtune=cortex-a75.cortex-a55

==========================================================================
== 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                                     :  12442.3 MB/s (5.8%)
 C copy backwards (32 byte blocks)                    :  12567.4 MB/s (2.9%)
 C copy backwards (64 byte blocks)                    :  12717.2 MB/s (1.8%)
 C copy                                               :  13679.0 MB/s (1.4%)
 C copy prefetched (32 bytes step)                    :  14011.8 MB/s (1.2%)
 C copy prefetched (64 bytes step)                    :  13911.5 MB/s (0.5%)
 C 2-pass copy                                        :   5345.9 MB/s (10.9%)
 C 2-pass copy prefetched (32 bytes step)             :   8757.7 MB/s (4.0%)
 C 2-pass copy prefetched (64 bytes step)             :   8025.0 MB/s (1.7%)
 C fill                                               :  32692.9 MB/s (11.3%)
 C fill (shuffle within 16 byte blocks)               :  32590.8 MB/s (0.4%)
 C fill (shuffle within 32 byte blocks)               :  32490.2 MB/s (0.3%)
 C fill (shuffle within 64 byte blocks)               :  32638.4 MB/s (0.6%)
 ---
 standard memcpy                                      :  13689.7 MB/s (0.6%)
 standard memset                                      :  32481.3 MB/s (6.6%)
 ---
 NEON LDP/STP copy                                    :  13698.7 MB/s (8.7%)
 NEON LDP/STP copy pldl2strm (32 bytes step)          :  13278.6 MB/s (2.3%)
 NEON LDP/STP copy pldl2strm (64 bytes step)          :  13252.9 MB/s (0.4%)
 NEON LDP/STP copy pldl1keep (32 bytes step)          :  13101.1 MB/s (1.9%)
 NEON LDP/STP copy pldl1keep (64 bytes step)          :  13140.6 MB/s (1.1%)
 NEON LD1/ST1 copy                                    :  13496.3 MB/s (0.4%)
 NEON STP fill                                        :  32511.8 MB/s (5.9%)
 NEON STNP fill                                       :  32770.8 MB/s (8.4%)
 ARM LDP/STP copy                                     :  13682.9 MB/s (0.8%)
 ARM STP fill                                         :  32467.4 MB/s (2.0%)
 ARM STNP fill                                        :  32205.5 MB/s

==========================================================================
== 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 several requests to SDRAM for almost every      ==
== memory access (though 64MiB is not nearly 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 : single random read / dual random read, [MADV_NOHUGEPAGE]
      1024 :    0.0 ns          /     0.0 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.0 ns
     65536 :    0.0 ns          /     0.0 ns
    131072 :    0.9 ns          /     1.2 ns
    262144 :    1.7 ns          /     2.2 ns
    524288 :    3.4 ns          /     4.4 ns
   1048576 :    9.1 ns          /    12.3 ns
   2097152 :   12.2 ns          /    15.4 ns
   4194304 :   16.8 ns          /    20.1 ns
   8388608 :   64.3 ns          /    86.5 ns
  16777216 :  100.1 ns          /   129.8 ns
  33554432 :  127.4 ns          /   153.3 ns
  67108864 :  146.2 ns          /   163.5 ns

block size : single random read / dual random read, [MADV_HUGEPAGE]
      1024 :    0.0 ns          /     0.0 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.0 ns
     65536 :    0.0 ns          /     0.0 ns
    131072 :    0.8 ns          /     1.2 ns
    262144 :    1.6 ns          /     2.0 ns
    524288 :    3.2 ns          /     4.1 ns
   1048576 :    8.9 ns          /    12.3 ns
   2097152 :   12.2 ns          /    15.3 ns
   4194304 :   16.7 ns          /    20.4 ns
   8388608 :   60.4 ns          /    84.4 ns
  16777216 :  101.2 ns          /   130.0 ns
  33554432 :  125.6 ns          /   148.5 ns
  67108864 :  140.5 ns          /   156.2 ns