All times are UTC - 6 hours




Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Tue Apr 12, 2005 3:53 am 
Offline


Wed Oct 13, 2004 7:26 am

342

Nafplion
After some experiments, I release this library, which is still under heavy testing, but i believe it should work. Please test it and tell me if there are any problems, whatsoever. I think they are ok, but there can never be too much testing :-)
I'm still not very happy with the performance in very small sizes, that's why I intend to probably rewrite these in asm (I just got the ppc manuals from Freescale :-).

The functions that are included in this lib are:

memchr memcpy memrchr memset strfill strnlen

I still have to make memcmp and memmove as standalone (shouldn't take long) but as far as strlen is concerned, I have already finished it, but it's slower than the glibc (glibc includes a fast hand optimized version of strlen, which is very good on small sizes, but loses from the altivec version on large sizes. I'm trying to beat that for small sizes as well, but it's tricky).

Anyway, you can get the lib at:

http://people.debian.org/~markos/powerpc/libfreevec.tgz

Right now you can just cd to optimized/src and do make for an optimized version or debug/src for a version suited for debugging.

About the license. Right now I only release it for testing purposes, though you're free to use it anyway you wish. I was too lazy to change from the default (GPL) but the final version will be dual licensed (GPL/BSD).

Konstantinos


Top
 Profile  
 
PostPosted: Tue Apr 12, 2005 6:05 pm 
Offline
Genesi


Fri Sep 24, 2004 1:39 am

1412
Nice work Konstantinos. Looking forward to giving it a try.

R&B :D


Top
 Profile  
 
PostPosted: Sun Apr 24, 2005 11:29 pm 
Offline


Wed Oct 13, 2004 7:26 am

342

Nafplion
Ok, I have at last finished memcpy() to be faster in both small and big sizes than glibc and other implementations. The 2nd column is the (new) altivec code, the 3rd column is libschily's function movebytes() which is a memcpy() clone. The second column denotes the alignment against 16-byte boundaries. As you can see, both glibc and altivec are consistent wrt alignment, while this is not the case with libschily. If the buffer copied is aligned to 32-bits (4-bytes) then it uses optimized code, otherwise it just does a byte-per-byte copy, which severely hurts performance.

Code:
Altivec is supported
Will do both scalar and vector tests
Will also do glibc tests
loops: 1000000
output file:
will do tests: memcpy
test: memcpy
# size  alignment       arrays  glibc                   altivec                 libschily
7       0       599186  0.060 111.3 MB/s        0.060 111.3 MB/s (1.0x)         0.050 133.5 MB/s (1.2x)
7       1       599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.050 133.5 MB/s (1.0x)
7       2       599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.060 111.3 MB/s (0.8x)
7       3       599186  0.060 111.3 MB/s        0.050 133.5 MB/s (1.2x)         0.050 133.5 MB/s (1.2x)
7       4       599186  0.050 133.5 MB/s        0.060 111.3 MB/s (0.8x)         0.050 133.5 MB/s (1.0x)
7       5       599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.060 111.3 MB/s (0.8x)
7       6       599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.050 133.5 MB/s (1.0x)
7       7       599186  0.050 133.5 MB/s        0.060 111.3 MB/s (0.8x)         0.050 133.5 MB/s (1.0x)
7       8       599186  0.060 111.3 MB/s        0.050 133.5 MB/s (1.2x)         0.060 111.3 MB/s (1.0x)
7       9       599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.050 133.5 MB/s (1.0x)
7       10      599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.050 133.5 MB/s (1.0x)
7       11      599186  0.050 133.5 MB/s        0.060 111.3 MB/s (0.8x)         0.050 133.5 MB/s (1.0x)
7       12      599186  0.050 133.5 MB/s        0.060 111.3 MB/s (0.8x)         0.060 111.3 MB/s (0.8x)
7       13      599186  0.060 111.3 MB/s        0.050 133.5 MB/s (1.2x)         0.060 111.3 MB/s (1.0x)
7       14      599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.050 133.5 MB/s (1.0x)
7       15      599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.060 111.3 MB/s (0.8x)
13      0       325000  0.080 155.0 MB/s        0.070 177.1 MB/s (1.1x)         0.070 177.1 MB/s (1.1x)
13      1       325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.080 155.0 MB/s (1.0x)
13      2       325000  0.090 137.8 MB/s        0.050 248.0 MB/s (1.8x)         0.080 155.0 MB/s (1.1x)
13      3       325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.080 155.0 MB/s (1.0x)
13      4       325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.080 155.0 MB/s (1.0x)
13      5       325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.080 155.0 MB/s (1.0x)
13      6       325000  0.080 155.0 MB/s        0.050 248.0 MB/s (1.6x)         0.080 155.0 MB/s (1.0x)
13      7       325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.080 155.0 MB/s (1.0x)
13      8       325000  0.080 155.0 MB/s        0.070 177.1 MB/s (1.1x)         0.080 155.0 MB/s (1.0x)
13      9       325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.080 155.0 MB/s (1.0x)
13      10      325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.090 137.8 MB/s (0.9x)
13      11      325000  0.080 155.0 MB/s        0.070 177.1 MB/s (1.1x)         0.080 155.0 MB/s (1.0x)
13      12      325000  0.090 137.8 MB/s        0.070 177.1 MB/s (1.3x)         0.080 155.0 MB/s (1.1x)
13      13      325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.080 155.0 MB/s (1.0x)
13      14      325000  0.080 155.0 MB/s        0.060 206.6 MB/s (1.3x)         0.080 155.0 MB/s (1.0x)
13      15      325000  0.090 137.8 MB/s        0.060 206.6 MB/s (1.5x)         0.080 155.0 MB/s (1.1x)
16      0       262144  0.080 190.7 MB/s        0.050 305.2 MB/s (1.6x)         0.090 169.5 MB/s (0.9x)
16      1       262144  0.100 152.6 MB/s        0.070 218.0 MB/s (1.4x)         0.080 190.7 MB/s (1.2x)
16      2       262144  0.100 152.6 MB/s        0.070 218.0 MB/s (1.4x)         0.090 169.5 MB/s (1.1x)
16      3       262144  0.090 169.5 MB/s        0.080 190.7 MB/s (1.1x)         0.090 169.5 MB/s (1.0x)
16      4       262144  0.090 169.5 MB/s        0.040 381.5 MB/s (2.2x)         0.090 169.5 MB/s (1.0x)
16      5       262144  0.090 169.5 MB/s        0.070 218.0 MB/s (1.3x)         0.090 169.5 MB/s (1.0x)
16      6       262144  0.100 152.6 MB/s        0.060 254.3 MB/s (1.7x)         0.090 169.5 MB/s (1.1x)
16      7       262144  0.100 152.6 MB/s        0.070 218.0 MB/s (1.4x)         0.090 169.5 MB/s (1.1x)
16      8       262144  0.080 190.7 MB/s        0.050 305.2 MB/s (1.6x)         0.090 169.5 MB/s (0.9x)
16      9       262144  0.090 169.5 MB/s        0.060 254.3 MB/s (1.5x)         0.100 152.6 MB/s (0.9x)
16      10      262144  0.100 152.6 MB/s        0.070 218.0 MB/s (1.4x)         0.090 169.5 MB/s (1.1x)
16      11      262144  0.090 169.5 MB/s        0.070 218.0 MB/s (1.3x)         0.100 152.6 MB/s (0.9x)
16      12      262144  0.080 190.7 MB/s        0.050 305.2 MB/s (1.6x)         0.090 169.5 MB/s (0.9x)
16      13      262144  0.090 169.5 MB/s        0.070 218.0 MB/s (1.3x)         0.090 169.5 MB/s (1.0x)
16      14      262144  0.090 169.5 MB/s        0.070 218.0 MB/s (1.3x)         0.090 169.5 MB/s (1.0x)
16      15      262144  0.090 169.5 MB/s        0.070 218.0 MB/s (1.3x)         0.090 169.5 MB/s (1.0x)
20      0       209715  0.080 238.4 MB/s        0.070 272.5 MB/s (1.1x)         0.110 173.4 MB/s (0.7x)
20      1       209715  0.100 190.7 MB/s        0.060 317.9 MB/s (1.7x)         0.110 173.4 MB/s (0.9x)
20      2       209715  0.100 190.7 MB/s        0.060 317.9 MB/s (1.7x)         0.100 190.7 MB/s (1.0x)
20      3       209715  0.090 211.9 MB/s        0.060 317.9 MB/s (1.5x)         0.110 173.4 MB/s (0.8x)
20      4       209715  0.080 238.4 MB/s        0.060 317.9 MB/s (1.3x)         0.110 173.4 MB/s (0.7x)
20      5       209715  0.090 211.9 MB/s        0.060 317.9 MB/s (1.5x)         0.110 173.4 MB/s (0.8x)
20      6       209715  0.090 211.9 MB/s        0.060 317.9 MB/s (1.5x)         0.110 173.4 MB/s (0.8x)
20      7       209715  0.100 190.7 MB/s        0.060 317.9 MB/s (1.7x)         0.100 190.7 MB/s (1.0x)
20      8       209715  0.090 211.9 MB/s        0.060 317.9 MB/s (1.5x)         0.110 173.4 MB/s (0.8x)
20      9       209715  0.100 190.7 MB/s        0.060 317.9 MB/s (1.7x)         0.110 173.4 MB/s (0.9x)
20      10      209715  0.110 173.4 MB/s        0.060 317.9 MB/s (1.8x)         0.110 173.4 MB/s (1.0x)
20      11      209715  0.090 211.9 MB/s        0.060 317.9 MB/s (1.5x)         0.110 173.4 MB/s (0.8x)
20      12      209715  0.080 238.4 MB/s        0.060 317.9 MB/s (1.3x)         0.110 173.4 MB/s (0.7x)
20      13      209715  0.090 211.9 MB/s        0.060 317.9 MB/s (1.5x)         0.110 173.4 MB/s (0.8x)
20      14      209715  0.100 190.7 MB/s        0.060 317.9 MB/s (1.7x)         0.110 173.4 MB/s (0.9x)
20      15      209715  0.100 190.7 MB/s        0.060 317.9 MB/s (1.7x)         0.110 173.4 MB/s (0.9x)
27      0       155344  0.100 257.5 MB/s        0.060 429.2 MB/s (1.7x)         0.140 183.9 MB/s (0.7x)
27      1       155344  0.100 257.5 MB/s        0.090 286.1 MB/s (1.1x)         0.140 183.9 MB/s (0.7x)
27      2       155344  0.090 286.1 MB/s        0.100 257.5 MB/s (0.9x)         0.140 183.9 MB/s (0.6x)
27      3       155344  0.100 257.5 MB/s        0.100 257.5 MB/s (1.0x)         0.130 198.1 MB/s (0.8x)
27      4       155344  0.100 257.5 MB/s        0.090 286.1 MB/s (1.1x)         0.140 183.9 MB/s (0.7x)
27      5       155344  0.090 286.1 MB/s        0.090 286.1 MB/s (1.0x)         0.140 183.9 MB/s (0.6x)
27      6       155344  0.090 286.1 MB/s        0.100 257.5 MB/s (0.9x)         0.130 198.1 MB/s (0.7x)
27      7       155344  0.100 257.5 MB/s        0.140 183.9 MB/s (0.7x)         0.130 198.1 MB/s (0.8x)
27      8       155344  0.100 257.5 MB/s        0.080 321.9 MB/s (1.2x)         0.140 183.9 MB/s (0.7x)
27      9       155344  0.100 257.5 MB/s        0.090 286.1 MB/s (1.1x)         0.140 183.9 MB/s (0.7x)
27      10      155344  0.100 257.5 MB/s        0.090 286.1 MB/s (1.1x)         0.140 183.9 MB/s (0.7x)
27      11      155344  0.100 257.5 MB/s        0.100 257.5 MB/s (1.0x)         0.140 183.9 MB/s (0.7x)
27      12      155344  0.100 257.5 MB/s        0.090 286.1 MB/s (1.1x)         0.130 198.1 MB/s (0.8x)
27      13      155344  0.090 286.1 MB/s        0.080 321.9 MB/s (1.1x)         0.140 183.9 MB/s (0.6x)
27      14      155344  0.100 257.5 MB/s        0.070 367.8 MB/s (1.4x)         0.140 183.9 MB/s (0.7x)
27      15      155344  0.090 286.1 MB/s        0.090 286.1 MB/s (1.0x)         0.140 183.9 MB/s (0.6x)
35      0       119837  0.090 370.9 MB/s        0.070 476.8 MB/s (1.3x)         0.130 256.8 MB/s (0.7x)
35      1       119837  0.100 333.8 MB/s        0.110 303.4 MB/s (0.9x)         0.050 667.6 MB/s (2.0x)
35      2       119837  0.100 333.8 MB/s        0.110 303.4 MB/s (0.9x)         0.130 256.8 MB/s (0.8x)
35      3       119837  0.100 333.8 MB/s        0.110 303.4 MB/s (0.9x)         0.140 238.4 MB/s (0.7x)
35      4       119837  0.100 333.8 MB/s        0.110 303.4 MB/s (0.9x)         0.130 256.8 MB/s (0.8x)
35      5       119837  0.090 370.9 MB/s        0.090 370.9 MB/s (1.0x)         0.060 556.3 MB/s (1.5x)
35      6       119837  0.100 333.8 MB/s        0.090 370.9 MB/s (1.1x)         0.140 238.4 MB/s (0.7x)
35      7       119837  0.100 333.8 MB/s        0.090 370.9 MB/s (1.1x)         0.130 256.8 MB/s (0.8x)
35      8       119837  0.100 333.8 MB/s        0.080 417.2 MB/s (1.2x)         0.140 238.4 MB/s (0.7x)
35      9       119837  0.100 333.8 MB/s        0.100 333.8 MB/s (1.0x)         0.040 834.5 MB/s (2.5x)
35      10      119837  0.100 333.8 MB/s        0.110 303.4 MB/s (0.9x)         0.130 256.8 MB/s (0.8x)
35      11      119837  0.100 333.8 MB/s        0.100 333.8 MB/s (1.0x)         0.140 238.4 MB/s (0.7x)
35      12      119837  0.100 333.8 MB/s        0.090 370.9 MB/s (1.1x)         0.130 256.8 MB/s (0.8x)
35      13      119837  0.100 333.8 MB/s        0.080 417.2 MB/s (1.2x)         0.050 667.6 MB/s (2.0x)
35      14      119837  0.100 333.8 MB/s        0.080 417.2 MB/s (1.2x)         0.130 256.8 MB/s (0.8x)
35      15      119837  0.100 333.8 MB/s        0.080 417.2 MB/s (1.2x)         0.130 256.8 MB/s (0.8x)
43      0       97542   0.110 372.8 MB/s        0.070 585.8 MB/s (1.6x)         0.160 256.3 MB/s (0.7x)
43      1       97542   0.120 341.7 MB/s        0.110 372.8 MB/s (1.1x)         0.070 585.8 MB/s (1.7x)
43      2       97542   0.120 341.7 MB/s        0.110 372.8 MB/s (1.1x)         0.160 256.3 MB/s (0.7x)
43      3       97542   0.110 372.8 MB/s        0.110 372.8 MB/s (1.0x)         0.150 273.4 MB/s (0.7x)
43      4       97542   0.110 372.8 MB/s        0.110 372.8 MB/s (1.0x)         0.160 256.3 MB/s (0.7x)
43      5       97542   0.110 372.8 MB/s        0.090 455.6 MB/s (1.2x)         0.080 512.6 MB/s (1.4x)
43      6       97542   0.120 341.7 MB/s        0.090 455.6 MB/s (1.3x)         0.160 256.3 MB/s (0.7x)
43      7       97542   0.120 341.7 MB/s        0.090 455.6 MB/s (1.3x)         0.160 256.3 MB/s (0.7x)
43      8       97542   0.110 372.8 MB/s        0.090 455.6 MB/s (1.2x)         0.160 256.3 MB/s (0.7x)
43      9       97542   0.110 372.8 MB/s        0.100 410.1 MB/s (1.1x)         0.080 512.6 MB/s (1.4x)
43      10      97542   0.110 372.8 MB/s        0.100 410.1 MB/s (1.1x)         0.150 273.4 MB/s (0.7x)
43      11      97542   0.110 372.8 MB/s        0.100 410.1 MB/s (1.1x)         0.160 256.3 MB/s (0.7x)
43      12      97542   0.120 341.7 MB/s        0.090 455.6 MB/s (1.3x)         0.160 256.3 MB/s (0.7x)
43      13      97542   0.120 341.7 MB/s        0.080 512.6 MB/s (1.5x)         0.070 585.8 MB/s (1.7x)
43      14      97542   0.110 372.8 MB/s        0.080 512.6 MB/s (1.4x)         0.170 241.2 MB/s (0.6x)
43      15      97542   0.130 315.4 MB/s        0.080 512.6 MB/s (1.6x)         0.170 241.2 MB/s (0.8x)
54      0       77672   0.120 429.2 MB/s        0.060 858.3 MB/s (2.0x)         0.200 257.5 MB/s (0.6x)
54      1       77672   0.130 396.1 MB/s        0.110 468.2 MB/s (1.2x)         0.200 257.5 MB/s (0.7x)
54      2       77672   0.120 429.2 MB/s        0.110 468.2 MB/s (1.1x)         0.120 429.2 MB/s (1.0x)
54      3       77672   0.120 429.2 MB/s        0.110 468.2 MB/s (1.1x)         0.190 271.0 MB/s (0.6x)
54      4       77672   0.120 429.2 MB/s        0.100 515.0 MB/s (1.2x)         0.210 245.2 MB/s (0.6x)
54      5       77672   0.130 396.1 MB/s        0.100 515.0 MB/s (1.3x)         0.200 257.5 MB/s (0.7x)
54      6       77672   0.120 429.2 MB/s        0.090 572.2 MB/s (1.3x)         0.110 468.2 MB/s (1.1x)
54      7       77672   0.130 396.1 MB/s        0.100 515.0 MB/s (1.3x)         0.200 257.5 MB/s (0.7x)
54      8       77672   0.120 429.2 MB/s        0.090 572.2 MB/s (1.3x)         0.200 257.5 MB/s (0.6x)
54      9       77672   0.130 396.1 MB/s        0.110 468.2 MB/s (1.2x)         0.190 271.0 MB/s (0.7x)
54      10      77672   0.120 429.2 MB/s        0.100 515.0 MB/s (1.2x)         0.120 429.2 MB/s (1.0x)
54      11      77672   0.120 429.2 MB/s        0.110 468.2 MB/s (1.1x)         0.200 257.5 MB/s (0.6x)
54      12      77672   0.110 468.2 MB/s        0.100 515.0 MB/s (1.1x)         0.200 257.5 MB/s (0.5x)
54      13      77672   0.120 429.2 MB/s        0.090 572.2 MB/s (1.3x)         0.200 257.5 MB/s (0.6x)
54      14      77672   0.120 429.2 MB/s        0.090 572.2 MB/s (1.3x)         0.110 468.2 MB/s (1.1x)
54      15      77672   0.120 429.2 MB/s        0.080 643.7 MB/s (1.5x)         0.200 257.5 MB/s (0.6x)
64      0       65536   0.120 508.6 MB/s        0.070 871.9 MB/s (1.7x)         0.060 1017.3 MB/s (2.0x)
64      1       65536   0.140 436.0 MB/s        0.120 508.6 MB/s (1.2x)         0.220 277.4 MB/s (0.6x)
64      2       65536   0.120 508.6 MB/s        0.110 554.9 MB/s (1.1x)         0.220 277.4 MB/s (0.5x)
64      3       65536   0.130 469.5 MB/s        0.120 508.6 MB/s (1.1x)         0.220 277.4 MB/s (0.6x)
64      4       65536   0.130 469.5 MB/s        0.100 610.4 MB/s (1.3x)         0.060 1017.3 MB/s (2.2x)
64      5       65536   0.120 508.6 MB/s        0.100 610.4 MB/s (1.2x)         0.220 277.4 MB/s (0.5x)
64      6       65536   0.130 469.5 MB/s        0.100 610.4 MB/s (1.3x)         0.230 265.4 MB/s (0.6x)
64      7       65536   0.130 469.5 MB/s        0.100 610.4 MB/s (1.3x)         0.210 290.6 MB/s (0.6x)
64      8       65536   0.120 508.6 MB/s        0.090 678.2 MB/s (1.3x)         0.060 1017.3 MB/s (2.0x)
64      9       65536   0.130 469.5 MB/s        0.110 554.9 MB/s (1.2x)         0.220 277.4 MB/s (0.6x)
64      10      65536   0.140 436.0 MB/s        0.100 610.4 MB/s (1.4x)         0.210 290.6 MB/s (0.7x)
64      11      65536   0.140 436.0 MB/s        0.100 610.4 MB/s (1.4x)         0.230 265.4 MB/s (0.6x)
64      12      65536   0.120 508.6 MB/s        0.090 678.2 MB/s (1.3x)         0.060 1017.3 MB/s (2.0x)
64      13      65536   0.140 436.0 MB/s        0.090 678.2 MB/s (1.6x)         0.210 290.6 MB/s (0.7x)
64      14      65536   0.140 436.0 MB/s        0.090 678.2 MB/s (1.6x)         0.210 290.6 MB/s (0.7x)
64      15      65536   0.140 436.0 MB/s        0.090 678.2 MB/s (1.6x)         0.230 265.4 MB/s (0.6x)
90      0       46603   0.140 613.1 MB/s        0.080 1072.9 MB/s (1.8x)        0.310 276.9 MB/s (0.5x)
90      1       46603   0.160 536.4 MB/s        0.120 715.3 MB/s (1.3x)         0.320 268.2 MB/s (0.5x)
90      2       46603   0.150 572.2 MB/s        0.120 715.3 MB/s (1.2x)         0.140 613.1 MB/s (1.1x)
90      3       46603   0.150 572.2 MB/s        0.120 715.3 MB/s (1.2x)         0.310 276.9 MB/s (0.5x)
90      4       46603   0.150 572.2 MB/s        0.110 780.3 MB/s (1.4x)         0.310 276.9 MB/s (0.5x)
90      5       46603   0.150 572.2 MB/s        0.110 780.3 MB/s (1.4x)         0.310 276.9 MB/s (0.5x)
90      6       46603   0.160 536.4 MB/s        0.100 858.3 MB/s (1.6x)         0.150 572.2 MB/s (1.1x)
90      7       46603   0.150 572.2 MB/s        0.100 858.3 MB/s (1.5x)         0.310 276.9 MB/s (0.5x)
90      8       46603   0.150 572.2 MB/s        0.100 858.3 MB/s (1.5x)         0.310 276.9 MB/s (0.5x)
90      9       46603   0.170 504.9 MB/s        0.110 780.3 MB/s (1.5x)         0.310 276.9 MB/s (0.5x)
90      10      46603   0.150 572.2 MB/s        0.110 780.3 MB/s (1.4x)         0.140 613.1 MB/s (1.1x)
90      11      46603   0.160 536.4 MB/s        0.110 780.3 MB/s (1.5x)         0.310 276.9 MB/s (0.5x)
90      12      46603   0.140 613.1 MB/s        0.100 858.3 MB/s (1.4x)         0.310 276.9 MB/s (0.5x)
90      13      46603   0.170 504.9 MB/s        0.090 953.7 MB/s (1.9x)         0.310 276.9 MB/s (0.5x)
90      14      46603   0.150 572.2 MB/s        0.090 953.7 MB/s (1.7x)         0.150 572.2 MB/s (1.0x)
90      15      46603   0.160 536.4 MB/s        0.090 953.7 MB/s (1.8x)         0.310 276.9 MB/s (0.5x)
128     0       32768   0.180 678.2 MB/s        0.070 1743.9 MB/s (2.6x)        0.110 1109.7 MB/s (1.6x)
128     1       32768   0.180 678.2 MB/s        0.130 939.0 MB/s (1.4x)         0.430 283.9 MB/s (0.4x)
128     2       32768   0.190 642.5 MB/s        0.120 1017.3 MB/s (1.6x)        0.420 290.6 MB/s (0.5x)
128     3       32768   0.190 642.5 MB/s        0.140 871.9 MB/s (1.4x)         0.420 290.6 MB/s (0.5x)
128     4       32768   0.180 678.2 MB/s        0.120 1017.3 MB/s (1.5x)        0.110 1109.7 MB/s (1.6x)
128     5       32768   0.190 642.5 MB/s        0.110 1109.7 MB/s (1.7x)        0.430 283.9 MB/s (0.4x)
128     6       32768   0.190 642.5 MB/s        0.110 1109.7 MB/s (1.7x)        0.420 290.6 MB/s (0.5x)
128     7       32768   0.190 642.5 MB/s        0.110 1109.7 MB/s (1.7x)        0.430 283.9 MB/s (0.4x)
128     8       32768   0.180 678.2 MB/s        0.100 1220.7 MB/s (1.8x)        0.110 1109.7 MB/s (1.6x)
128     9       32768   0.180 678.2 MB/s        0.110 1109.7 MB/s (1.6x)        0.430 283.9 MB/s (0.4x)
128     10      32768   0.190 642.5 MB/s        0.120 1017.3 MB/s (1.6x)        0.420 290.6 MB/s (0.5x)
128     11      32768   0.190 642.5 MB/s        0.120 1017.3 MB/s (1.6x)        0.440 277.4 MB/s (0.4x)
128     12      32768   0.170 718.1 MB/s        0.100 1220.7 MB/s (1.7x)        0.110 1109.7 MB/s (1.5x)
128     13      32768   0.190 642.5 MB/s        0.100 1220.7 MB/s (1.9x)        0.430 283.9 MB/s (0.4x)
128     14      32768   0.190 642.5 MB/s        0.100 1220.7 MB/s (1.9x)        0.430 283.9 MB/s (0.4x)
128     15      32768   0.190 642.5 MB/s        0.110 1109.7 MB/s (1.7x)        0.420 290.6 MB/s (0.5x)
185     0       22672   0.220 802.0 MB/s        0.090 1960.3 MB/s (2.4x)        0.630 280.0 MB/s (0.3x)
185     1       22672   0.230 767.1 MB/s        0.130 1357.2 MB/s (1.8x)        0.620 284.6 MB/s (0.4x)
185     2       22672   0.240 735.1 MB/s        0.130 1357.2 MB/s (1.8x)        0.620 284.6 MB/s (0.4x)
185     3       22672   0.220 802.0 MB/s        0.140 1260.2 MB/s (1.6x)        0.220 802.0 MB/s (1.0x)
185     4       22672   0.220 802.0 MB/s        0.120 1470.2 MB/s (1.8x)        0.630 280.0 MB/s (0.3x)
185     5       22672   0.240 735.1 MB/s        0.110 1603.9 MB/s (2.2x)        0.620 284.6 MB/s (0.4x)
185     6       22672   0.230 767.1 MB/s        0.120 1470.2 MB/s (1.9x)        0.630 280.0 MB/s (0.4x)
185     7       22672   0.220 802.0 MB/s        0.110 1603.9 MB/s (2.0x)        0.220 802.0 MB/s (1.0x)
185     8       22672   0.230 767.1 MB/s        0.100 1764.3 MB/s (2.3x)        0.620 284.6 MB/s (0.4x)
185     9       22672   0.240 735.1 MB/s        0.120 1470.2 MB/s (2.0x)        0.630 280.0 MB/s (0.4x)
185     10      22672   0.240 735.1 MB/s        0.120 1470.2 MB/s (2.0x)        0.630 280.0 MB/s (0.4x)
185     11      22672   0.230 767.1 MB/s        0.110 1603.9 MB/s (2.1x)        0.230 767.1 MB/s (1.0x)
185     12      22672   0.220 802.0 MB/s        0.110 1603.9 MB/s (2.0x)        0.630 280.0 MB/s (0.3x)
185     13      22672   0.230 767.1 MB/s        0.110 1603.9 MB/s (2.1x)        0.610 289.2 MB/s (0.4x)
185     14      22672   0.240 735.1 MB/s        0.100 1764.3 MB/s (2.4x)        0.620 284.6 MB/s (0.4x)
185     15      22672   0.220 802.0 MB/s        0.110 1603.9 MB/s (2.0x)        0.220 802.0 MB/s (1.0x)
256     0       16384   0.270 904.2 MB/s        0.110 2219.5 MB/s (2.5x)        0.210 1162.6 MB/s (1.3x)
256     1       16384   0.290 841.9 MB/s        0.140 1743.9 MB/s (2.1x)        0.850 287.2 MB/s (0.3x)
256     2       16384   0.300 813.8 MB/s        0.140 1743.9 MB/s (2.1x)        0.840 290.6 MB/s (0.4x)
256     3       16384   0.300 813.8 MB/s        0.140 1743.9 MB/s (2.1x)        0.850 287.2 MB/s (0.4x)
256     4       16384   0.270 904.2 MB/s        0.140 1743.9 MB/s (1.9x)        0.220 1109.7 MB/s (1.2x)
256     5       16384   0.290 841.9 MB/s        0.120 2034.5 MB/s (2.4x)        0.860 283.9 MB/s (0.3x)
256     6       16384   0.290 841.9 MB/s        0.130 1878.0 MB/s (2.2x)        0.840 290.6 MB/s (0.3x)
256     7       16384   0.290 841.9 MB/s        0.130 1878.0 MB/s (2.2x)        0.840 290.6 MB/s (0.3x)
256     8       16384   0.280 871.9 MB/s        0.110 2219.5 MB/s (2.5x)        0.210 1162.6 MB/s (1.3x)
256     9       16384   0.290 841.9 MB/s        0.150 1627.6 MB/s (1.9x)        0.840 290.6 MB/s (0.3x)
256     10      16384   0.290 841.9 MB/s        0.130 1878.0 MB/s (2.2x)        0.840 290.6 MB/s (0.3x)
256     11      16384   0.280 871.9 MB/s        0.150 1627.6 MB/s (1.9x)        0.830 294.1 MB/s (0.3x)
256     12      16384   0.270 904.2 MB/s        0.140 1743.9 MB/s (1.9x)        0.210 1162.6 MB/s (1.3x)
256     13      16384   0.290 841.9 MB/s        0.120 2034.5 MB/s (2.4x)        0.840 290.6 MB/s (0.3x)
256     14      16384   0.290 841.9 MB/s        0.120 2034.5 MB/s (2.4x)        0.840 290.6 MB/s (0.3x)
256     15      16384   0.280 871.9 MB/s        0.120 2034.5 MB/s (2.3x)        0.840 290.6 MB/s (0.3x)
347     0       12087   0.360 919.2 MB/s        0.120 2757.7 MB/s (3.0x)        1.140 290.3 MB/s (0.3x)
347     1       12087   0.350 945.5 MB/s        0.160 2068.3 MB/s (2.2x)        0.360 919.2 MB/s (1.0x)
347     2       12087   0.350 945.5 MB/s        0.170 1946.6 MB/s (2.1x)        1.140 290.3 MB/s (0.3x)
347     3       12087   0.360 919.2 MB/s        0.160 2068.3 MB/s (2.2x)        1.130 292.9 MB/s (0.3x)
347     4       12087   0.360 919.2 MB/s        0.150 2206.2 MB/s (2.4x)        1.140 290.3 MB/s (0.3x)
347     5       12087   0.350 945.5 MB/s        0.160 2068.3 MB/s (2.2x)        0.350 945.5 MB/s (1.0x)
347     6       12087   0.360 919.2 MB/s        0.140 2363.7 MB/s (2.6x)        1.140 290.3 MB/s (0.3x)
347     7       12087   0.350 945.5 MB/s        0.150 2206.2 MB/s (2.3x)        1.130 292.9 MB/s (0.3x)
347     8       12087   0.360 919.2 MB/s        0.150 2206.2 MB/s (2.4x)        1.130 292.9 MB/s (0.3x)
347     9       12087   0.360 919.2 MB/s        0.160 2068.3 MB/s (2.2x)        0.350 945.5 MB/s (1.0x)
347     10      12087   0.350 945.5 MB/s        0.160 2068.3 MB/s (2.2x)        1.140 290.3 MB/s (0.3x)
347     11      12087   0.360 919.2 MB/s        0.170 1946.6 MB/s (2.1x)        1.200 275.8 MB/s (0.3x)
347     12      12087   0.350 945.5 MB/s        0.150 2206.2 MB/s (2.3x)        1.130 292.9 MB/s (0.3x)
347     13      12087   0.360 919.2 MB/s        0.140 2363.7 MB/s (2.6x)        0.360 919.2 MB/s (1.0x)
347     14      12087   0.370 894.4 MB/s        0.140 2363.7 MB/s (2.6x)        1.140 290.3 MB/s (0.3x)
347     15      12087   0.350 945.5 MB/s        0.150 2206.2 MB/s (2.3x)        1.140 290.3 MB/s (0.3x)
512     0       8192    0.480 1017.3 MB/s       0.150 3255.2 MB/s (3.2x)        0.430 1135.5 MB/s (1.1x)
512     1       8192    0.490 996.5 MB/s        0.210 2325.1 MB/s (2.3x)        1.660 294.1 MB/s (0.3x)
512     2       8192    0.510 957.4 MB/s        0.190 2569.9 MB/s (2.7x)        1.680 290.6 MB/s (0.3x)
512     3       8192    0.490 996.5 MB/s        0.200 2441.4 MB/s (2.4x)        1.670 292.4 MB/s (0.3x)
512     4       8192    0.490 996.5 MB/s        0.190 2569.9 MB/s (2.6x)        0.420 1162.6 MB/s (1.2x)
512     5       8192    0.500 976.6 MB/s        0.180 2712.7 MB/s (2.8x)        1.680 290.6 MB/s (0.3x)
512     6       8192    0.480 1017.3 MB/s       0.190 2569.9 MB/s (2.5x)        1.670 292.4 MB/s (0.3x)
512     7       8192    0.510 957.4 MB/s        0.180 2712.7 MB/s (2.8x)        1.670 292.4 MB/s (0.3x)
512     8       8192    0.480 1017.3 MB/s       0.180 2712.7 MB/s (2.7x)        0.430 1135.5 MB/s (1.1x)
512     9       8192    0.500 976.6 MB/s        0.190 2569.9 MB/s (2.6x)        1.680 290.6 MB/s (0.3x)
512     10      8192    0.490 996.5 MB/s        0.190 2569.9 MB/s (2.6x)        1.690 288.9 MB/s (0.3x)
512     11      8192    0.490 996.5 MB/s        0.190 2569.9 MB/s (2.6x)        1.680 290.6 MB/s (0.3x)
512     12      8192    0.490 996.5 MB/s        0.180 2712.7 MB/s (2.7x)        0.420 1162.6 MB/s (1.2x)
512     13      8192    0.500 976.6 MB/s        0.180 2712.7 MB/s (2.8x)        1.670 292.4 MB/s (0.3x)
512     14      8192    0.490 996.5 MB/s        0.170 2872.2 MB/s (2.9x)        1.680 290.6 MB/s (0.3x)
512     15      8192    0.500 976.6 MB/s        0.170 2872.2 MB/s (2.9x)        1.710 285.5 MB/s (0.3x)
831     0       5047    0.760 1042.8 MB/s       0.210 3773.8 MB/s (3.6x)        2.710 292.4 MB/s (0.3x)
831     1       5047    0.740 1071.0 MB/s       0.270 2935.2 MB/s (2.7x)        0.770 1029.2 MB/s (1.0x)
831     2       5047    0.750 1056.7 MB/s       0.250 3170.0 MB/s (3.0x)        2.710 292.4 MB/s (0.3x)
831     3       5047    0.750 1056.7 MB/s       0.260 3048.1 MB/s (2.9x)        2.710 292.4 MB/s (0.3x)
831     4       5047    0.740 1071.0 MB/s       0.510 1553.9 MB/s (1.5x)        3.690 214.8 MB/s (0.2x)
831     5       5047    0.860 921.5 MB/s        0.290 2732.8 MB/s (3.0x)        0.870 910.9 MB/s (1.0x)
831     6       5047    0.840 943.5 MB/s        0.270 2935.2 MB/s (3.1x)        2.990 265.1 MB/s (0.3x)
831     7       5047    0.840 943.5 MB/s        0.260 3048.1 MB/s (3.2x)        2.790 284.1 MB/s (0.3x)
831     8       5047    0.750 1056.7 MB/s       0.230 3445.7 MB/s (3.3x)        2.730 290.3 MB/s (0.3x)
831     9       5047    0.750 1056.7 MB/s       0.250 3170.0 MB/s (3.0x)        0.770 1029.2 MB/s (1.0x)
831     10      5047    0.750 1056.7 MB/s       0.250 3170.0 MB/s (3.0x)        2.730 290.3 MB/s (0.3x)
831     11      5047    0.760 1042.8 MB/s       0.250 3170.0 MB/s (3.0x)        2.720 291.4 MB/s (0.3x)
831     12      5047    0.760 1042.8 MB/s       0.240 3302.1 MB/s (3.2x)        2.740 289.2 MB/s (0.3x)
831     13      5047    0.750 1056.7 MB/s       0.240 3302.1 MB/s (3.1x)        0.760 1042.8 MB/s (1.0x)
831     14      5047    0.750 1056.7 MB/s       0.240 3302.1 MB/s (3.1x)        2.720 291.4 MB/s (0.3x)
831     15      5047    0.750 1056.7 MB/s       0.240 3302.1 MB/s (3.1x)        2.720 291.4 MB/s (0.3x)
2048    0       2048    1.740 1122.5 MB/s       0.460 4245.9 MB/s (3.8x)        1.660 1176.6 MB/s (1.0x)
2048    1       2048    1.750 1116.1 MB/s       0.510 3829.7 MB/s (3.4x)        6.690 291.9 MB/s (0.3x)
2048    2       2048    1.740 1122.5 MB/s       0.500 3906.2 MB/s (3.5x)        6.660 293.3 MB/s (0.3x)
2048    3       2048    1.750 1116.1 MB/s       0.530 3685.1 MB/s (3.3x)        6.880 283.9 MB/s (0.3x)
2048    4       2048    1.740 1122.5 MB/s       0.500 3906.2 MB/s (3.5x)        1.690 1155.7 MB/s (1.0x)
2048    5       2048    2.080 939.0 MB/s        0.550 3551.1 MB/s (3.8x)        7.130 273.9 MB/s (0.3x)
2048    6       2048    1.820 1073.1 MB/s       0.510 3829.7 MB/s (3.6x)        6.840 285.5 MB/s (0.3x)
2048    7       2048    1.770 1103.5 MB/s       0.520 3756.0 MB/s (3.4x)        7.420 263.2 MB/s (0.2x)
2048    8       2048    1.730 1129.0 MB/s       0.480 4069.0 MB/s (3.6x)        1.670 1169.5 MB/s (1.0x)
2048    9       2048    1.750 1116.1 MB/s       0.490 3986.0 MB/s (3.6x)        6.690 291.9 MB/s (0.3x)
2048    10      2048    1.740 1122.5 MB/s       0.510 3829.7 MB/s (3.4x)        6.700 291.5 MB/s (0.3x)
2048    11      2048    1.840 1061.5 MB/s       0.500 3906.2 MB/s (3.7x)        6.690 291.9 MB/s (0.3x)
2048    12      2048    1.730 1129.0 MB/s       0.500 3906.2 MB/s (3.5x)        1.670 1169.5 MB/s (1.0x)
2048    13      2048    1.750 1116.1 MB/s       0.500 3906.2 MB/s (3.5x)        6.680 292.4 MB/s (0.3x)
2048    14      2048    2.040 957.4 MB/s        0.520 3756.0 MB/s (3.9x)        6.940 281.4 MB/s (0.3x)
2048    15      2048    1.840 1061.5 MB/s       0.500 3906.2 MB/s (3.7x)        6.890 283.5 MB/s (0.3x)
3981    0       1053    3.330 1140.1 MB/s       0.880 4314.3 MB/s (3.8x)        13.430 282.7 MB/s (0.2x)
3981    1       1053    3.530 1075.5 MB/s       1.220 3111.9 MB/s (2.9x)        13.610 279.0 MB/s (0.3x)
3981    2       1053    3.750 1012.4 MB/s       0.930 4082.3 MB/s (4.0x)        14.160 268.1 MB/s (0.3x)
3981    3       1053    3.320 1143.5 MB/s       0.910 4172.1 MB/s (3.6x)        3.320 1143.5 MB/s (1.0x)
3981    4       1053    3.340 1136.7 MB/s       0.890 4265.8 MB/s (3.8x)        13.830 274.5 MB/s (0.2x)
3981    5       1053    3.400 1116.6 MB/s       0.900 4218.4 MB/s (3.8x)        13.530 280.6 MB/s (0.3x)
3981    6       1053    3.390 1119.9 MB/s       0.890 4265.8 MB/s (3.8x)        14.040 270.4 MB/s (0.2x)
3981    7       1053    3.380 1123.2 MB/s       0.880 4314.3 MB/s (3.8x)        3.270 1161.0 MB/s (1.0x)
3981    8       1053    3.300 1150.5 MB/s       0.880 4314.3 MB/s (3.7x)        12.930 293.6 MB/s (0.3x)
3981    9       1053    3.310 1147.0 MB/s       0.910 4172.1 MB/s (3.6x)        13.860 273.9 MB/s (0.2x)
3981    10      1053    3.360 1129.9 MB/s       0.920 4126.7 MB/s (3.7x)        13.260 286.3 MB/s (0.3x)
3981    11      1053    3.470 1094.1 MB/s       0.890 4265.8 MB/s (3.9x)        3.430 1106.9 MB/s (1.0x)
3981    12      1053    3.370 1126.6 MB/s       0.920 4126.7 MB/s (3.7x)        13.420 282.9 MB/s (0.3x)
3981    13      1053    3.420 1110.1 MB/s       0.930 4082.3 MB/s (3.7x)        13.590 279.4 MB/s (0.3x)
3981    14      1053    3.300 1150.5 MB/s       0.870 4363.9 MB/s (3.8x)        13.430 282.7 MB/s (0.2x)
3981    15      1053    3.320 1143.5 MB/s       0.890 4265.8 MB/s (3.7x)        3.310 1147.0 MB/s (1.0x)
8192    0       512     6.760 1155.7 MB/s       1.720 4542.2 MB/s (3.9x)        6.720 1162.6 MB/s (1.0x)
8192    1       512     6.800 1148.9 MB/s       1.780 4389.0 MB/s (3.8x)        26.760 291.9 MB/s (0.3x)
8192    2       512     7.250 1077.6 MB/s       1.820 4292.6 MB/s (4.0x)        27.650 282.5 MB/s (0.3x)
8192    3       512     7.100 1100.4 MB/s       1.810 4316.3 MB/s (3.9x)        28.060 278.4 MB/s (0.3x)
8192    4       512     6.930 1127.3 MB/s       1.800 4340.3 MB/s (3.8x)        6.750 1157.4 MB/s (1.0x)
8192    5       512     6.800 1148.9 MB/s       1.770 4413.8 MB/s (3.8x)        26.960 289.8 MB/s (0.3x)
8192    6       512     6.830 1143.9 MB/s       1.770 4413.8 MB/s (3.9x)        27.370 285.4 MB/s (0.2x)
8192    7       512     6.770 1154.0 MB/s       1.740 4489.9 MB/s (3.9x)        27.300 286.2 MB/s (0.2x)
8192    8       512     7.110 1098.8 MB/s       1.780 4389.0 MB/s (4.0x)        6.890 1133.9 MB/s (1.0x)
8192    9       512     6.980 1119.3 MB/s       1.860 4200.3 MB/s (3.8x)        27.580 283.3 MB/s (0.3x)
8192    10      512     7.010 1114.5 MB/s       1.790 4364.5 MB/s (3.9x)        27.360 285.5 MB/s (0.3x)
8192    11      512     6.870 1137.2 MB/s       1.850 4223.0 MB/s (3.7x)        27.580 283.3 MB/s (0.2x)
8192    12      512     7.020 1112.9 MB/s       1.800 4340.3 MB/s (3.9x)        8.200 952.7 MB/s (0.9x)
8192    13      512     7.520 1038.9 MB/s       1.770 4413.8 MB/s (4.2x)        26.790 291.6 MB/s (0.3x)
8192    14      512     7.130 1095.7 MB/s       1.750 4464.3 MB/s (4.1x)        27.620 282.9 MB/s (0.3x)
8192    15      512     6.790 1150.6 MB/s       1.750 4464.3 MB/s (3.9x)        26.610 293.6 MB/s (0.3x)
13488   0       311     13.220 973.0 MB/s       2.930 4390.2 MB/s (4.5x)        10.750 1196.6 MB/s (1.2x)
13488   1       311     11.560 1112.7 MB/s      2.930 4390.2 MB/s (3.9x)        43.560 295.3 MB/s (0.3x)
13488   2       311     11.040 1165.1 MB/s      2.840 4529.3 MB/s (3.9x)        43.690 294.4 MB/s (0.3x)
13488   3       311     10.940 1175.8 MB/s      2.820 4561.4 MB/s (3.9x)        45.960 279.9 MB/s (0.2x)
13488   4       311     11.010 1168.3 MB/s      2.790 4610.5 MB/s (3.9x)        11.000 1169.4 MB/s (1.0x)
13488   5       311     12.370 1039.9 MB/s      2.780 4627.0 MB/s (4.4x)        44.590 288.5 MB/s (0.3x)
13488   6       311     10.990 1170.4 MB/s      2.740 4694.6 MB/s (4.0x)        43.460 296.0 MB/s (0.3x)
13488   7       311     11.010 1168.3 MB/s      2.740 4694.6 MB/s (4.0x)        45.120 285.1 MB/s (0.2x)
13488   8       311     11.170 1151.6 MB/s      2.790 4610.5 MB/s (4.0x)        10.960 1173.6 MB/s (1.0x)
13488   9       311     11.190 1149.5 MB/s      2.840 4529.3 MB/s (3.9x)        43.540 295.4 MB/s (0.3x)
13488   10      311     11.660 1103.2 MB/s      2.760 4660.6 MB/s (4.2x)        43.070 298.7 MB/s (0.3x)
13488   11      311     10.860 1184.5 MB/s      2.760 4660.6 MB/s (3.9x)        43.630 294.8 MB/s (0.2x)
13488   12      311     11.150 1153.6 MB/s      2.780 4627.0 MB/s (4.0x)        11.000 1169.4 MB/s (1.0x)
13488   13      311     10.980 1171.5 MB/s      6.780 1897.2 MB/s (1.6x)        43.020 299.0 MB/s (0.3x)
13488   14      311     10.930 1176.9 MB/s      2.750 4677.5 MB/s (4.0x)        43.470 295.9 MB/s (0.3x)
13488   15      311     10.770 1194.4 MB/s      2.740 4694.6 MB/s (3.9x)        45.580 282.2 MB/s (0.2x)
16384   0       256     13.960 1119.3 MB/s      3.580 4364.5 MB/s (3.9x)        14.110 1107.4 MB/s (1.0x)
16384   1       256     13.240 1180.1 MB/s      3.990 3916.0 MB/s (3.3x)        52.870 295.5 MB/s (0.3x)
16384   2       256     13.280 1176.6 MB/s      3.440 4542.2 MB/s (3.9x)        52.990 294.9 MB/s (0.3x)
16384   3       256     13.210 1182.8 MB/s      3.430 4555.4 MB/s (3.9x)        55.260 282.8 MB/s (0.2x)
16384   4       256     14.450 1081.3 MB/s      3.430 4555.4 MB/s (4.2x)        13.010 1201.0 MB/s (1.1x)
16384   5       256     13.170 1186.4 MB/s      3.440 4542.2 MB/s (3.8x)        51.870 301.2 MB/s (0.3x)
16384   6       256     13.150 1188.2 MB/s      3.400 4595.6 MB/s (3.9x)        51.780 301.8 MB/s (0.3x)
16384   7       256     13.170 1186.4 MB/s      3.390 4609.1 MB/s (3.9x)        53.660 291.2 MB/s (0.2x)
16384   8       256     13.160 1187.3 MB/s      3.390 4609.1 MB/s (3.9x)        13.040 1198.2 MB/s (1.0x)
16384   9       256     13.180 1185.5 MB/s      3.410 4582.1 MB/s (3.9x)        54.300 287.8 MB/s (0.2x)
16384   10      256     13.780 1133.9 MB/s      4.200 3720.2 MB/s (3.3x)        52.770 296.1 MB/s (0.3x)
16384   11      256     13.230 1181.0 MB/s      3.420 4568.7 MB/s (3.9x)        52.190 299.4 MB/s (0.3x)
16384   12      256     13.260 1178.4 MB/s      3.410 4582.1 MB/s (3.9x)        13.020 1200.1 MB/s (1.0x)
16384   13      256     13.200 1183.7 MB/s      3.400 4595.6 MB/s (3.9x)        53.900 289.9 MB/s (0.2x)
16384   14      256     13.240 1180.1 MB/s      3.410 4582.1 MB/s (3.9x)        52.010 300.4 MB/s (0.3x)
16384   15      256     13.230 1181.0 MB/s      3.410 4582.1 MB/s (3.9x)        52.020 300.4 MB/s (0.3x)
38893   0       108     36.500 1016.2 MB/s      15.610 2376.1 MB/s (2.3x)       128.190 289.3 MB/s (0.3x)
38893   1       108     40.120 924.5 MB/s       18.620 1992.0 MB/s (2.2x)       130.030 285.3 MB/s (0.3x)
38893   2       108     41.980 883.5 MB/s       19.360 1915.9 MB/s (2.2x)       134.620 275.5 MB/s (0.3x)
38893   3       108     41.370 896.6 MB/s       18.690 1984.6 MB/s (2.2x)       41.560 892.5 MB/s (1.0x)
38893   4       108     43.600 850.7 MB/s       16.450 2254.8 MB/s (2.7x)       133.530 277.8 MB/s (0.3x)
38893   5       108     40.220 922.2 MB/s       19.880 1865.8 MB/s (2.0x)       134.720 275.3 MB/s (0.3x)
38893   6       108     37.710 983.6 MB/s       18.900 1962.5 MB/s (2.0x)       136.090 272.5 MB/s (0.3x)
38893   7       108     37.990 976.3 MB/s       18.510 2003.8 MB/s (2.1x)       40.350 919.2 MB/s (0.9x)
38893   8       108     37.750 982.5 MB/s       18.780 1975.0 MB/s (2.0x)       133.300 278.3 MB/s (0.3x)
38893   9       108     41.610 891.4 MB/s       18.800 1972.9 MB/s (2.2x)       133.950 276.9 MB/s (0.3x)
38893   10      108     41.850 886.3 MB/s       18.160 2042.5 MB/s (2.3x)       133.810 277.2 MB/s (0.3x)
38893   11      108     43.700 848.8 MB/s       18.830 1969.8 MB/s (2.3x)       40.190 922.9 MB/s (1.1x)
38893   12      108     41.790 887.6 MB/s       18.870 1965.6 MB/s (2.2x)       138.320 268.2 MB/s (0.3x)
38893   13      108     44.330 836.7 MB/s       17.200 2156.5 MB/s (2.6x)       135.270 274.2 MB/s (0.3x)
38893   14      108     38.020 975.6 MB/s       20.500 1809.3 MB/s (1.9x)       137.290 270.2 MB/s (0.3x)
38893   15      108     41.750 888.4 MB/s       18.840 1968.8 MB/s (2.2x)       40.160 923.6 MB/s (1.0x)
65536   0       64      70.080 891.8 MB/s       31.940 1956.8 MB/s (2.2x)       69.790 895.5 MB/s (1.0x)
65536   1       64      70.040 892.3 MB/s       31.760 1967.9 MB/s (2.2x)       237.580 263.1 MB/s (0.3x)
65536   2       64      71.680 871.9 MB/s       35.530 1759.1 MB/s (2.0x)       248.430 251.6 MB/s (0.3x)
65536   3       64      73.990 844.7 MB/s       34.930 1789.3 MB/s (2.1x)       276.180 226.3 MB/s (0.3x)
65536   4       64      75.720 825.4 MB/s       33.470 1867.3 MB/s (2.3x)       71.780 870.7 MB/s (1.1x)
65536   5       64      70.230 889.9 MB/s       34.550 1809.0 MB/s (2.0x)       249.200 250.8 MB/s (0.3x)
65536   6       64      69.020 905.5 MB/s       31.820 1964.2 MB/s (2.2x)       236.260 264.5 MB/s (0.3x)
65536   7       64      70.980 880.5 MB/s       31.330 1994.9 MB/s (2.3x)       238.570 262.0 MB/s (0.3x)
65536   8       64      70.790 882.9 MB/s       31.810 1964.8 MB/s (2.2x)       69.950 893.5 MB/s (1.0x)
65536   9       64      72.200 865.7 MB/s       31.820 1964.2 MB/s (2.3x)       244.510 255.6 MB/s (0.3x)
65536   10      64      74.820 835.3 MB/s       33.610 1859.6 MB/s (2.2x)       240.300 260.1 MB/s (0.3x)
65536   11      64      73.550 849.8 MB/s       31.730 1969.7 MB/s (2.3x)       243.170 257.0 MB/s (0.3x)
65536   12      64      71.570 873.3 MB/s       32.240 1938.6 MB/s (2.2x)       72.700 859.7 MB/s (1.0x)
65536   13      64      69.630 897.6 MB/s       29.890 2091.0 MB/s (2.3x)       252.520 247.5 MB/s (0.3x)
65536   14      64      70.610 885.1 MB/s       29.930 2088.2 MB/s (2.4x)       255.100 245.0 MB/s (0.3x)
65536   15      64      70.880 881.8 MB/s       32.760 1907.8 MB/s (2.2x)       240.080 260.3 MB/s (0.3x)
105001  0       40      160.870 622.5 MB/s      53.310 1878.4 MB/s (3.0x)       372.240 269.0 MB/s (0.4x)
105001  1       40      122.510 817.4 MB/s      54.090 1851.3 MB/s (2.3x)       375.440 266.7 MB/s (0.3x)
105001  2       40      121.980 820.9 MB/s      51.940 1927.9 MB/s (2.3x)       367.570 272.4 MB/s (0.3x)
105001  3       40      128.070 781.9 MB/s      52.370 1912.1 MB/s (2.4x)       105.270 951.2 MB/s (1.2x)
105001  4       40      156.420 640.2 MB/s      45.630 2194.5 MB/s (3.4x)       368.610 271.7 MB/s (0.4x)
105001  5       40      106.370 941.4 MB/s      52.180 1919.1 MB/s (2.0x)       370.770 270.1 MB/s (0.3x)
105001  6       40      116.240 861.5 MB/s      52.380 1911.7 MB/s (2.2x)       392.520 255.1 MB/s (0.3x)
105001  7       40      119.900 835.2 MB/s      53.140 1884.4 MB/s (2.3x)       106.770 937.9 MB/s (1.1x)
105001  8       40      116.700 858.1 MB/s      52.750 1898.3 MB/s (2.2x)       391.030 256.1 MB/s (0.3x)
105001  9       40      129.510 773.2 MB/s      51.940 1927.9 MB/s (2.5x)       374.840 267.1 MB/s (0.3x)
105001  10      40      127.850 783.2 MB/s      50.230 1993.6 MB/s (2.5x)       370.520 270.3 MB/s (0.3x)
105001  11      40      114.940 871.2 MB/s      52.260 1916.1 MB/s (2.2x)       105.320 950.8 MB/s (1.1x)
105001  12      40      105.620 948.1 MB/s      56.470 1773.3 MB/s (1.9x)       390.500 256.4 MB/s (0.3x)
105001  13      40      113.880 879.3 MB/s      51.400 1948.2 MB/s (2.2x)       366.110 273.5 MB/s (0.3x)
105001  14      40      138.900 720.9 MB/s      52.360 1912.5 MB/s (2.7x)       386.720 258.9 MB/s (0.4x)
105001  15      40      113.540 882.0 MB/s      48.270 2074.5 MB/s (2.4x)       106.900 936.7 MB/s (1.1x)
262144  0       16      693.960 360.3 MB/s      630.310 396.6 MB/s (1.1x)       782.710 319.4 MB/s (0.9x)
262144  1       16      824.190 303.3 MB/s      586.990 425.9 MB/s (1.4x)       1406.220 177.8 MB/s (0.6x)
262144  2       16      752.320 332.3 MB/s      788.600 317.0 MB/s (1.0x)       1342.600 186.2 MB/s (0.6x)
262144  3       16      714.690 349.8 MB/s      521.610 479.3 MB/s (1.4x)       1287.130 194.2 MB/s (0.6x)
262144  4       16      733.870 340.7 MB/s      551.450 453.4 MB/s (1.3x)       591.730 422.5 MB/s (1.2x)
262144  5       16      779.500 320.7 MB/s      591.140 422.9 MB/s (1.3x)       1304.550 191.6 MB/s (0.6x)
262144  6       16      757.540 330.0 MB/s      509.110 491.1 MB/s (1.5x)       1275.210 196.0 MB/s (0.6x)
262144  7       16      644.610 387.8 MB/s      595.390 419.9 MB/s (1.1x)       1331.030 187.8 MB/s (0.5x)
262144  8       16      665.240 375.8 MB/s      625.340 399.8 MB/s (1.1x)       720.820 346.8 MB/s (0.9x)
262144  9       16      606.690 412.1 MB/s      578.830 431.9 MB/s (1.0x)       1375.630 181.7 MB/s (0.4x)
262144  10      16      664.260 376.4 MB/s      638.670 391.4 MB/s (1.0x)       1299.720 192.3 MB/s (0.5x)
262144  11      16      649.080 385.2 MB/s      692.070 361.2 MB/s (0.9x)       1253.780 199.4 MB/s (0.5x)
262144  12      16      762.970 327.7 MB/s      486.370 514.0 MB/s (1.6x)       624.090 400.6 MB/s (1.2x)
262144  13      16      616.320 405.6 MB/s      473.600 527.9 MB/s (1.3x)       1275.490 196.0 MB/s (0.5x)
262144  14      16      736.110 339.6 MB/s      530.860 470.9 MB/s (1.4x)       1282.700 194.9 MB/s (0.6x)
262144  15      16      824.560 303.2 MB/s      445.640 561.0 MB/s (1.9x)       1302.560 191.9 MB/s (0.6x)
600000  0       7       3662.800 156.2 MB/s     3529.990 162.1 MB/s (1.0x)      3696.180 154.8 MB/s (1.0x)


Konstantinos


Top
 Profile  
 
PostPosted: Sun Apr 24, 2005 11:40 pm 
Offline


Wed Oct 13, 2004 7:26 am

342

Nafplion
And I'm doing the same benchmarks against libmotovec (heh, libfreevec vs libmotovec) :-)

here are the results:
Code:
Altivec is supported
Will do both scalar and vector tests
Will also do glibc tests
loops: 1000000
output file:
will do tests: memcpy
test: memcpy
# size  alignment       arrays  libmotovec              libfreevec              libschily
7       0       599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.040 166.9 MB/s (1.0x)
7       1       599186  0.040 166.9 MB/s        0.050 133.5 MB/s (0.8x)         0.050 133.5 MB/s (0.8x)
7       2       599186  0.030 222.5 MB/s        0.060 111.3 MB/s (0.5x)         0.040 166.9 MB/s (0.8x)
7       3       599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.050 133.5 MB/s (0.8x)
7       4       599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.050 133.5 MB/s (0.8x)
7       5       599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.050 133.5 MB/s (0.8x)
7       6       599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.040 166.9 MB/s (1.2x)
7       7       599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.040 166.9 MB/s (1.0x)
7       8       599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.050 133.5 MB/s (0.8x)
7       9       599186  0.050 133.5 MB/s        0.050 133.5 MB/s (1.0x)         0.050 133.5 MB/s (1.0x)
7       10      599186  0.040 166.9 MB/s        0.050 133.5 MB/s (0.8x)         0.050 133.5 MB/s (0.8x)
7       11      599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.050 133.5 MB/s (0.8x)
7       12      599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.050 133.5 MB/s (0.8x)
7       13      599186  0.030 222.5 MB/s        0.060 111.3 MB/s (0.5x)         0.040 166.9 MB/s (0.8x)
7       14      599186  0.040 166.9 MB/s        0.050 133.5 MB/s (0.8x)         0.050 133.5 MB/s (0.8x)
7       15      599186  0.040 166.9 MB/s        0.060 111.3 MB/s (0.7x)         0.040 166.9 MB/s (1.0x)
13      0       325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.070 177.1 MB/s (0.9x)
13      1       325000  0.060 206.6 MB/s        0.070 177.1 MB/s (0.9x)         0.060 206.6 MB/s (1.0x)
13      2       325000  0.050 248.0 MB/s        0.060 206.6 MB/s (0.8x)         0.070 177.1 MB/s (0.7x)
13      3       325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.070 177.1 MB/s (0.9x)
13      4       325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.070 177.1 MB/s (0.9x)
13      5       325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.070 177.1 MB/s (0.9x)
13      6       325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.070 177.1 MB/s (0.9x)
13      7       325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.060 206.6 MB/s (1.0x)
13      8       325000  0.070 177.1 MB/s        0.060 206.6 MB/s (1.2x)         0.070 177.1 MB/s (1.0x)
13      9       325000  0.060 206.6 MB/s        0.050 248.0 MB/s (1.2x)         0.070 177.1 MB/s (0.9x)
13      10      325000  0.060 206.6 MB/s        0.050 248.0 MB/s (1.2x)         0.070 177.1 MB/s (0.9x)
13      11      325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.060 206.6 MB/s (1.0x)
13      12      325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.070 177.1 MB/s (0.9x)
13      13      325000  0.060 206.6 MB/s        0.060 206.6 MB/s (1.0x)         0.070 177.1 MB/s (0.9x)
13      14      325000  0.060 206.6 MB/s        0.070 177.1 MB/s (0.9x)         0.060 206.6 MB/s (1.0x)
13      15      325000  0.050 248.0 MB/s        0.060 206.6 MB/s (0.8x)         0.070 177.1 MB/s (0.7x)
16      0       262144  0.080 190.7 MB/s        0.040 381.5 MB/s (2.0x)         0.080 190.7 MB/s (1.0x)
16      1       262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.080 190.7 MB/s (0.9x)
16      2       262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.080 190.7 MB/s (0.9x)
16      3       262144  0.070 218.0 MB/s        0.080 190.7 MB/s (0.9x)         0.070 218.0 MB/s (1.0x)
16      4       262144  0.070 218.0 MB/s        0.050 305.2 MB/s (1.4x)         0.070 218.0 MB/s (1.0x)
16      5       262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.080 190.7 MB/s (0.9x)
16      6       262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.070 218.0 MB/s (1.0x)
16      7       262144  0.080 190.7 MB/s        0.070 218.0 MB/s (1.1x)         0.080 190.7 MB/s (1.0x)
16      8       262144  0.070 218.0 MB/s        0.040 381.5 MB/s (1.8x)         0.080 190.7 MB/s (0.9x)
16      9       262144  0.080 190.7 MB/s        0.070 218.0 MB/s (1.1x)         0.070 218.0 MB/s (1.1x)
16      10      262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.070 218.0 MB/s (1.0x)
16      11      262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.080 190.7 MB/s (0.9x)
16      12      262144  0.070 218.0 MB/s        0.050 305.2 MB/s (1.4x)         0.080 190.7 MB/s (0.9x)
16      13      262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.070 218.0 MB/s (1.0x)
16      14      262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.070 218.0 MB/s (1.0x)
16      15      262144  0.070 218.0 MB/s        0.070 218.0 MB/s (1.0x)         0.080 190.7 MB/s (0.9x)
20      0       209715  0.060 317.9 MB/s        0.070 272.5 MB/s (0.9x)         0.090 211.9 MB/s (0.7x)
20      1       209715  0.060 317.9 MB/s        0.060 317.9 MB/s (1.0x)         0.090 211.9 MB/s (0.7x)
20      2       209715  0.070 272.5 MB/s        0.060 317.9 MB/s (1.2x)         0.090 211.9 MB/s (0.8x)
20      3       209715  0.060 317.9 MB/s        0.070 272.5 MB/s (0.9x)         0.090 211.9 MB/s (0.7x)
20      4       209715  0.070 272.5 MB/s        0.070 272.5 MB/s (1.0x)         0.090 211.9 MB/s (0.8x)
20      5       209715  0.070 272.5 MB/s        0.060 317.9 MB/s (1.2x)         0.080 238.4 MB/s (0.9x)
20      6       209715  0.070 272.5 MB/s        0.060 317.9 MB/s (1.2x)         0.090 211.9 MB/s (0.8x)
20      7       209715  0.070 272.5 MB/s        0.070 272.5 MB/s (1.0x)         0.090 211.9 MB/s (0.8x)
20      8       209715  0.070 272.5 MB/s        0.070 272.5 MB/s (1.0x)         0.090 211.9 MB/s (0.8x)
20      9       209715  0.060 317.9 MB/s        0.060 317.9 MB/s (1.0x)         0.090 211.9 MB/s (0.7x)
20      10      209715  0.060 317.9 MB/s        0.060 317.9 MB/s (1.0x)         0.090 211.9 MB/s (0.7x)
20      11      209715  0.060 317.9 MB/s        0.070 272.5 MB/s (0.9x)         0.080 238.4 MB/s (0.7x)
20      12      209715  0.060 317.9 MB/s        0.070 272.5 MB/s (0.9x)         0.090 211.9 MB/s (0.7x)
20      13      209715  0.080 238.4 MB/s        0.060 317.9 MB/s (1.3x)         0.090 211.9 MB/s (0.9x)
20      14      209715  0.060 317.9 MB/s        0.060 317.9 MB/s (1.0x)         0.090 211.9 MB/s (0.7x)
20      15      209715  0.070 272.5 MB/s        0.060 317.9 MB/s (1.2x)         0.090 211.9 MB/s (0.8x)
27      0       155344  0.070 367.8 MB/s        0.060 429.2 MB/s (1.2x)         0.110 234.1 MB/s (0.6x)
27      1       155344  0.070 367.8 MB/s        0.100 257.5 MB/s (0.7x)         0.110 234.1 MB/s (0.6x)
27      2       155344  0.070 367.8 MB/s        0.100 257.5 MB/s (0.7x)         0.110 234.1 MB/s (0.6x)
27      3       155344  0.070 367.8 MB/s        0.100 257.5 MB/s (0.7x)         0.110 234.1 MB/s (0.6x)
27      4       155344  0.060 429.2 MB/s        0.100 257.5 MB/s (0.6x)         0.110 234.1 MB/s (0.5x)
27      5       155344  0.060 429.2 MB/s        0.090 286.1 MB/s (0.7x)         0.110 234.1 MB/s (0.5x)
27      6       155344  0.070 367.8 MB/s        0.090 286.1 MB/s (0.8x)         0.110 234.1 MB/s (0.6x)
27      7       155344  0.070 367.8 MB/s        0.140 183.9 MB/s (0.5x)         0.110 234.1 MB/s (0.6x)
27      8       155344  0.080 321.9 MB/s        0.080 321.9 MB/s (1.0x)         0.120 214.6 MB/s (0.7x)
27      9       155344  0.060 429.2 MB/s        0.100 257.5 MB/s (0.6x)         0.110 234.1 MB/s (0.5x)
27      10      155344  0.070 367.8 MB/s        0.090 286.1 MB/s (0.8x)         0.110 234.1 MB/s (0.6x)
27      11      155344  0.070 367.8 MB/s        0.100 257.5 MB/s (0.7x)         0.110 234.1 MB/s (0.6x)
27      12      155344  0.070 367.8 MB/s        0.090 286.1 MB/s (0.8x)         0.110 234.1 MB/s (0.6x)
27      13      155344  0.060 429.2 MB/s        0.090 286.1 MB/s (0.7x)         0.110 234.1 MB/s (0.5x)
27      14      155344  0.070 367.8 MB/s        0.080 321.9 MB/s (0.9x)         0.110 234.1 MB/s (0.6x)
27      15      155344  0.080 321.9 MB/s        0.080 321.9 MB/s (1.0x)         0.110 234.1 MB/s (0.7x)
35      0       119837  0.060 556.3 MB/s        0.070 476.8 MB/s (0.9x)         0.130 256.8 MB/s (0.5x)
35      1       119837  0.070 476.8 MB/s        0.110 303.4 MB/s (0.6x)         0.040 834.5 MB/s (1.8x)
35      2       119837  0.080 417.2 MB/s        0.110 303.4 MB/s (0.7x)         0.130 256.8 MB/s (0.6x)
35      3       119837  0.070 476.8 MB/s        0.110 303.4 MB/s (0.6x)         0.130 256.8 MB/s (0.5x)
35      4       119837  0.070 476.8 MB/s        0.100 333.8 MB/s (0.7x)         0.130 256.8 MB/s (0.5x)
35      5       119837  0.070 476.8 MB/s        0.090 370.9 MB/s (0.8x)         0.050 667.6 MB/s (1.4x)
35      6       119837  0.070 476.8 MB/s        0.090 370.9 MB/s (0.8x)         0.130 256.8 MB/s (0.5x)
35      7       119837  0.070 476.8 MB/s        0.090 370.9 MB/s (0.8x)         0.130 256.8 MB/s (0.5x)
35      8       119837  0.070 476.8 MB/s        0.080 417.2 MB/s (0.9x)         0.130 256.8 MB/s (0.5x)
35      9       119837  0.070 476.8 MB/s        0.100 333.8 MB/s (0.7x)         0.060 556.3 MB/s (1.2x)
35      10      119837  0.070 476.8 MB/s        0.110 303.4 MB/s (0.6x)         0.130 256.8 MB/s (0.5x)
35      11      119837  0.060 556.3 MB/s        0.100 333.8 MB/s (0.6x)         0.130 256.8 MB/s (0.5x)
35      12      119837  0.060 556.3 MB/s        0.100 333.8 MB/s (0.6x)         0.130 256.8 MB/s (0.5x)
35      13      119837  0.060 556.3 MB/s        0.090 370.9 MB/s (0.7x)         0.040 834.5 MB/s (1.5x)
35      14      119837  0.080 417.2 MB/s        0.090 370.9 MB/s (0.9x)         0.130 256.8 MB/s (0.6x)
35      15      119837  0.070 476.8 MB/s        0.080 417.2 MB/s (0.9x)         0.130 256.8 MB/s (0.5x)
43      0       97542   0.060 683.5 MB/s        0.060 683.5 MB/s (1.0x)         0.160 256.3 MB/s (0.4x)
43      1       97542   0.070 585.8 MB/s        0.120 341.7 MB/s (0.6x)         0.070 585.8 MB/s (1.0x)
43      2       97542   0.070 585.8 MB/s        0.110 372.8 MB/s (0.6x)         0.160 256.3 MB/s (0.4x)
43      3       97542   0.070 585.8 MB/s        0.110 372.8 MB/s (0.6x)         0.160 256.3 MB/s (0.4x)
43      4       97542   0.060 683.5 MB/s        0.110 372.8 MB/s (0.5x)         0.160 256.3 MB/s (0.4x)
43      5       97542   0.060 683.5 MB/s        0.100 410.1 MB/s (0.6x)         0.070 585.8 MB/s (0.9x)
43      6       97542   0.080 512.6 MB/s        0.100 410.1 MB/s (0.8x)         0.150 273.4 MB/s (0.5x)
43      7       97542   0.070 585.8 MB/s        0.100 410.1 MB/s (0.7x)         0.150 273.4 MB/s (0.5x)
43      8       97542   0.080 512.6 MB/s        0.090 455.6 MB/s (0.9x)         0.160 256.3 MB/s (0.5x)
43      9       97542   0.070 585.8 MB/s        0.110 372.8 MB/s (0.6x)         0.070 585.8 MB/s (1.0x)
43      10      97542   0.070 585.8 MB/s        0.100 410.1 MB/s (0.7x)         0.160 256.3 MB/s (0.4x)
43      11      97542   0.070 585.8 MB/s        0.100 410.1 MB/s (0.7x)         0.160 256.3 MB/s (0.4x)
43      12      97542   0.070 585.8 MB/s        0.090 455.6 MB/s (0.8x)         0.160 256.3 MB/s (0.4x)
43      13      97542   0.080 512.6 MB/s        0.080 512.6 MB/s (1.0x)         0.080 512.6 MB/s (1.0x)
43      14      97542   0.080 512.6 MB/s        0.080 512.6 MB/s (1.0x)         0.150 273.4 MB/s (0.5x)
43      15      97542   0.070 585.8 MB/s        0.080 512.6 MB/s (0.9x)         0.150 273.4 MB/s (0.5x)
54      0       77672   0.060 858.3 MB/s        0.070 735.7 MB/s (0.9x)         0.200 257.5 MB/s (0.3x)
54      1       77672   0.080 643.7 MB/s        0.110 468.2 MB/s (0.7x)         0.210 245.2 MB/s (0.4x)
54      2       77672   0.080 643.7 MB/s        0.100 515.0 MB/s (0.8x)         0.110 468.2 MB/s (0.7x)
54      3       77672   0.070 735.7 MB/s        0.100 515.0 MB/s (0.7x)         0.200 257.5 MB/s (0.4x)
54      4       77672   0.070 735.7 MB/s        0.100 515.0 MB/s (0.7x)         0.200 257.5 MB/s (0.4x)
54      5       77672   0.070 735.7 MB/s        0.100 515.0 MB/s (0.7x)         0.200 257.5 MB/s (0.4x)
54      6       77672   0.070 735.7 MB/s        0.090 572.2 MB/s (0.8x)         0.120 429.2 MB/s (0.6x)
54      7       77672   0.080 643.7 MB/s        0.090 572.2 MB/s (0.9x)         0.200 257.5 MB/s (0.4x)
54      8       77672   0.080 643.7 MB/s        0.090 572.2 MB/s (0.9x)         0.190 271.0 MB/s (0.4x)
54      9       77672   0.070 735.7 MB/s        0.100 515.0 MB/s (0.7x)         0.200 257.5 MB/s (0.4x)
54      10      77672   0.050 1030.0 MB/s       0.100 515.0 MB/s (0.5x)         0.120 429.2 MB/s (0.4x)
54      11      77672   0.080 643.7 MB/s        0.110 468.2 MB/s (0.7x)         0.190 271.0 MB/s (0.4x)
54      12      77672   0.070 735.7 MB/s        0.090 572.2 MB/s (0.8x)         0.200 257.5 MB/s (0.4x)
54      13      77672   0.080 643.7 MB/s        0.080 643.7 MB/s (1.0x)         0.200 257.5 MB/s (0.4x)
54      14      77672   0.080 643.7 MB/s        0.080 643.7 MB/s (1.0x)         0.120 429.2 MB/s (0.7x)
54      15      77672   0.090 572.2 MB/s        0.080 643.7 MB/s (1.1x)         0.210 245.2 MB/s (0.4x)
64      0       65536   0.050 1220.7 MB/s       0.070 871.9 MB/s (0.7x)         0.060 1017.3 MB/s (0.8x)
64      1       65536   0.080 762.9 MB/s        0.120 508.6 MB/s (0.7x)         0.220 277.4 MB/s (0.4x)
64      2       65536   0.080 762.9 MB/s        0.110 554.9 MB/s (0.7x)         0.230 265.4 MB/s (0.3x)
64      3       65536   0.070 871.9 MB/s        0.120 508.6 MB/s (0.6x)         0.220 277.4 MB/s (0.3x)
64      4       65536   0.080 762.9 MB/s        0.100 610.4 MB/s (0.8x)         0.060 1017.3 MB/s (1.3x)
64      5       65536   0.070 871.9 MB/s        0.100 610.4 MB/s (0.7x)         0.220 277.4 MB/s (0.3x)
64      6       65536   0.070 871.9 MB/s        0.110 554.9 MB/s (0.6x)         0.220 277.4 MB/s (0.3x)
64      7       65536   0.070 871.9 MB/s        0.100 610.4 MB/s (0.7x)         0.210 290.6 MB/s (0.3x)
64      8       65536   0.080 762.9 MB/s        0.090 678.2 MB/s (0.9x)         0.060 1017.3 MB/s (1.3x)
64      9       65536   0.080 762.9 MB/s        0.100 610.4 MB/s (0.8x)         0.230 265.4 MB/s (0.3x)
64      10      65536   0.070 871.9 MB/s        0.110 554.9 MB/s (0.6x)         0.210 290.6 MB/s (0.3x)
64      11      65536   0.080 762.9 MB/s        0.100 610.4 MB/s (0.8x)         0.220 277.4 MB/s (0.4x)
64      12      65536   0.070 871.9 MB/s        0.100 610.4 MB/s (0.7x)         0.060 1017.3 MB/s (1.2x)
64      13      65536   0.070 871.9 MB/s        0.090 678.2 MB/s (0.8x)         0.220 277.4 MB/s (0.3x)
64      14      65536   0.070 871.9 MB/s        0.090 678.2 MB/s (0.8x)         0.220 277.4 MB/s (0.3x)
64      15      65536   0.070 871.9 MB/s        0.090 678.2 MB/s (0.8x)         0.220 277.4 MB/s (0.3x)
90      0       46603   0.080 1072.9 MB/s       0.070 1226.2 MB/s (1.1x)        0.310 276.9 MB/s (0.3x)
90      1       46603   0.080 1072.9 MB/s       0.120 715.3 MB/s (0.7x)         0.300 286.1 MB/s (0.3x)
90      2       46603   0.080 1072.9 MB/s       0.130 660.2 MB/s (0.6x)         0.160 536.4 MB/s (0.5x)
90      3       46603   0.090 953.7 MB/s        0.120 715.3 MB/s (0.8x)         0.310 276.9 MB/s (0.3x)
90      4       46603   0.080 1072.9 MB/s       0.110 780.3 MB/s (0.7x)         0.310 276.9 MB/s (0.3x)
90      5       46603   0.080 1072.9 MB/s       0.110 780.3 MB/s (0.7x)         0.310 276.9 MB/s (0.3x)
90      6       46603   0.070 1226.2 MB/s       0.100 858.3 MB/s (0.7x)         0.140 613.1 MB/s (0.5x)
90      7       46603   0.110 780.3 MB/s        0.100 858.3 MB/s (1.1x)         0.310 276.9 MB/s (0.4x)
90      8       46603   0.100 858.3 MB/s        0.100 858.3 MB/s (1.0x)         0.310 276.9 MB/s (0.3x)
90      9       46603   0.100 858.3 MB/s        0.110 780.3 MB/s (0.9x)         0.310 276.9 MB/s (0.3x)
90      10      46603   0.090 953.7 MB/s        0.120 715.3 MB/s (0.8x)         0.150 572.2 MB/s (0.6x)
90      11      46603   0.130 660.2 MB/s        0.100 858.3 MB/s (1.3x)         0.310 276.9 MB/s (0.4x)
90      12      46603   0.110 780.3 MB/s        0.100 858.3 MB/s (1.1x)         0.310 276.9 MB/s (0.4x)
90      13      46603   0.110 780.3 MB/s        0.090 953.7 MB/s (1.2x)         0.310 276.9 MB/s (0.4x)
90      14      46603   0.100 858.3 MB/s        0.090 953.7 MB/s (1.1x)         0.140 613.1 MB/s (0.7x)
90      15      46603   0.100 858.3 MB/s        0.100 858.3 MB/s (1.0x)         0.310 276.9 MB/s (0.3x)
128     0       32768   0.090 1356.3 MB/s       0.070 1743.9 MB/s (1.3x)        0.120 1017.3 MB/s (0.8x)
128     1       32768   0.100 1220.7 MB/s       0.130 939.0 MB/s (0.8x)         0.440 277.4 MB/s (0.2x)
128     2       32768   0.110 1109.7 MB/s       0.130 939.0 MB/s (0.8x)         0.440 277.4 MB/s (0.2x)
128     3       32768   0.110 1109.7 MB/s       0.120 1017.3 MB/s (0.9x)        0.430 283.9 MB/s (0.3x)
128     4       32768   0.110 1109.7 MB/s       0.120 1017.3 MB/s (0.9x)        0.120 1017.3 MB/s (0.9x)
128     5       32768   0.110 1109.7 MB/s       0.120 1017.3 MB/s (0.9x)        0.420 290.6 MB/s (0.3x)
128     6       32768   0.100 1220.7 MB/s       0.110 1109.7 MB/s (0.9x)        0.430 283.9 MB/s (0.2x)
128     7       32768   0.100 1220.7 MB/s       0.120 1017.3 MB/s (0.8x)        0.430 283.9 MB/s (0.2x)
128     8       32768   0.110 1109.7 MB/s       0.100 1220.7 MB/s (1.1x)        0.120 1017.3 MB/s (0.9x)
128     9       32768   0.110 1109.7 MB/s       0.120 1017.3 MB/s (0.9x)        0.420 290.6 MB/s (0.3x)
128     10      32768   0.100 1220.7 MB/s       0.110 1109.7 MB/s (0.9x)        0.430 283.9 MB/s (0.2x)
128     11      32768   0.100 1220.7 MB/s       0.120 1017.3 MB/s (0.8x)        0.440 277.4 MB/s (0.2x)
128     12      32768   0.100 1220.7 MB/s       0.110 1109.7 MB/s (0.9x)        0.110 1109.7 MB/s (0.9x)
128     13      32768   0.100 1220.7 MB/s       0.110 1109.7 MB/s (0.9x)        0.420 290.6 MB/s (0.2x)
128     14      32768   0.100 1220.7 MB/s       0.100 1220.7 MB/s (1.0x)        0.430 283.9 MB/s (0.2x)
128     15      32768   0.100 1220.7 MB/s       0.100 1220.7 MB/s (1.0x)        0.440 277.4 MB/s (0.2x)
185     0       22672   0.110 1603.9 MB/s       0.080 2205.4 MB/s (1.4x)        0.620 284.6 MB/s (0.2x)
185     1       22672   0.110 1603.9 MB/s       0.140 1260.2 MB/s (0.8x)        0.610 289.2 MB/s (0.2x)
185     2       22672   0.120 1470.2 MB/s       0.130 1357.2 MB/s (0.9x)        0.630 280.0 MB/s (0.2x)
185     3       22672   0.120 1470.2 MB/s       0.120 1470.2 MB/s (1.0x)        0.230 767.1 MB/s (0.5x)
185     4       22672   0.140 1260.2 MB/s       0.120 1470.2 MB/s (1.2x)        0.630 280.0 MB/s (0.2x)
185     5       22672   0.110 1603.9 MB/s       0.110 1603.9 MB/s (1.0x)        0.630 280.0 MB/s (0.2x)
185     6       22672   0.130 1357.2 MB/s       0.110 1603.9 MB/s (1.2x)        0.620 284.6 MB/s (0.2x)
185     7       22672   0.110 1603.9 MB/s       0.110 1603.9 MB/s (1.0x)        0.220 802.0 MB/s (0.5x)
185     8       22672   0.140 1260.2 MB/s       0.100 1764.3 MB/s (1.4x)        0.630 280.0 MB/s (0.2x)
185     9       22672   0.120 1470.2 MB/s       0.120 1470.2 MB/s (1.0x)        0.630 280.0 MB/s (0.2x)
185     10      22672   0.140 1260.2 MB/s       0.120 1470.2 MB/s (1.2x)        0.620 284.6 MB/s (0.2x)
185     11      22672   0.120 1470.2 MB/s       0.120 1470.2 MB/s (1.0x)        0.230 767.1 MB/s (0.5x)
185     12      22672   0.130 1357.2 MB/s       0.110 1603.9 MB/s (1.2x)        0.620 284.6 MB/s (0.2x)
185     13      22672   0.120 1470.2 MB/s       0.110 1603.9 MB/s (1.1x)        0.620 284.6 MB/s (0.2x)
185     14      22672   0.130 1357.2 MB/s       0.110 1603.9 MB/s (1.2x)        0.620 284.6 MB/s (0.2x)
185     15      22672   0.120 1470.2 MB/s       0.100 1764.3 MB/s (1.2x)        0.230 767.1 MB/s (0.5x)
256     0       16384   0.120 2034.5 MB/s       0.100 2441.4 MB/s (1.2x)        0.220 1109.7 MB/s (0.5x)
256     1       16384   0.140 1743.9 MB/s       0.150 1627.6 MB/s (0.9x)        0.850 287.2 MB/s (0.2x)
256     2       16384   0.150 1627.6 MB/s       0.140 1743.9 MB/s (1.1x)        0.850 287.2 MB/s (0.2x)
256     3       16384   0.130 1878.0 MB/s       0.150 1627.6 MB/s (0.9x)        0.870 280.6 MB/s (0.1x)
256     4       16384   0.140 1743.9 MB/s       0.140 1743.9 MB/s (1.0x)        0.210 1162.6 MB/s (0.7x)
256     5       16384   0.140 1743.9 MB/s       0.140 1743.9 MB/s (1.0x)        0.840 290.6 MB/s (0.2x)
256     6       16384   0.140 1743.9 MB/s       0.130 1878.0 MB/s (1.1x)        0.840 290.6 MB/s (0.2x)
256     7       16384   0.140 1743.9 MB/s       0.140 1743.9 MB/s (1.0x)        0.850 287.2 MB/s (0.2x)
256     8       16384   0.140 1743.9 MB/s       0.130 1878.0 MB/s (1.1x)        0.220 1109.7 MB/s (0.6x)
256     9       16384   0.150 1627.6 MB/s       0.130 1878.0 MB/s (1.2x)        0.850 287.2 MB/s (0.2x)
256     10      16384   0.130 1878.0 MB/s       0.140 1743.9 MB/s (0.9x)        0.850 287.2 MB/s (0.2x)
256     11      16384   0.130 1878.0 MB/s       0.150 1627.6 MB/s (0.9x)        0.840 290.6 MB/s (0.2x)
256     12      16384   0.140 1743.9 MB/s       0.140 1743.9 MB/s (1.0x)        0.210 1162.6 MB/s (0.7x)
256     13      16384   0.130 1878.0 MB/s       0.120 2034.5 MB/s (1.1x)        0.850 287.2 MB/s (0.2x)
256     14      16384   0.140 1743.9 MB/s       0.120 2034.5 MB/s (1.2x)        0.850 287.2 MB/s (0.2x)
256     15      16384   0.150 1627.6 MB/s       0.120 2034.5 MB/s (1.2x)        0.860 283.9 MB/s (0.2x)
347     0       12087   0.160 2068.3 MB/s       0.120 2757.7 MB/s (1.3x)        1.150 287.8 MB/s (0.1x)
347     1       12087   0.170 1946.6 MB/s       0.160 2068.3 MB/s (1.1x)        0.360 919.2 MB/s (0.5x)
347     2       12087   0.170 1946.6 MB/s       0.160 2068.3 MB/s (1.1x)        1.150 287.8 MB/s (0.1x)
347     3       12087   0.170 1946.6 MB/s       0.160 2068.3 MB/s (1.1x)        1.160 285.3 MB/s (0.1x)
347     4       12087   0.170 1946.6 MB/s       0.160 2068.3 MB/s (1.1x)        1.140 290.3 MB/s (0.1x)
347     5       12087   0.160 2068.3 MB/s       0.140 2363.7 MB/s (1.1x)        0.370 894.4 MB/s (0.4x)
347     6       12087   0.180 1838.5 MB/s       0.160 2068.3 MB/s (1.1x)        1.140 290.3 MB/s (0.2x)
347     7       12087   0.180 1838.5 MB/s       0.150 2206.2 MB/s (1.2x)        1.140 290.3 MB/s (0.2x)
347     8       12087   0.170 1946.6 MB/s       0.140 2363.7 MB/s (1.2x)        1.150 287.8 MB/s (0.1x)
347     9       12087   0.170 1946.6 MB/s       0.150 2206.2 MB/s (1.1x)        0.360 919.2 MB/s (0.5x)
347     10      12087   0.180 1838.5 MB/s       0.170 1946.6 MB/s (1.1x)        1.140 290.3 MB/s (0.2x)
347     11      12087   0.160 2068.3 MB/s       0.160 2068.3 MB/s (1.0x)        1.140 290.3 MB/s (0.1x)
347     12      12087   0.170 1946.6 MB/s       0.160 2068.3 MB/s (1.1x)        1.150 287.8 MB/s (0.1x)
347     13      12087   0.160 2068.3 MB/s       0.140 2363.7 MB/s (1.1x)        0.360 919.2 MB/s (0.4x)
347     14      12087   0.180 1838.5 MB/s       0.140 2363.7 MB/s (1.3x)        1.140 290.3 MB/s (0.2x)
347     15      12087   0.180 1838.5 MB/s       0.130 2545.6 MB/s (1.4x)        1.160 285.3 MB/s (0.2x)
512     0       8192    0.200 2441.4 MB/s       0.150 3255.2 MB/s (1.3x)        0.440 1109.7 MB/s (0.5x)
512     1       8192    0.220 2219.5 MB/s       0.200 2441.4 MB/s (1.1x)        1.700 287.2 MB/s (0.1x)
512     2       8192    0.210 2325.1 MB/s       0.210 2325.1 MB/s (1.0x)        1.700 287.2 MB/s (0.1x)
512     3       8192    0.220 2219.5 MB/s       0.210 2325.1 MB/s (1.0x)        1.680 290.6 MB/s (0.1x)
512     4       8192    0.230 2123.0 MB/s       0.180 2712.7 MB/s (1.3x)        0.430 1135.5 MB/s (0.5x)
512     5       8192    0.220 2219.5 MB/s       0.190 2569.9 MB/s (1.2x)        1.700 287.2 MB/s (0.1x)
512     6       8192    0.220 2219.5 MB/s       0.190 2569.9 MB/s (1.2x)        1.710 285.5 MB/s (0.1x)
512     7       8192    0.220 2219.5 MB/s       0.190 2569.9 MB/s (1.2x)        1.680 290.6 MB/s (0.1x)
512     8       8192    0.220 2219.5 MB/s       0.170 2872.2 MB/s (1.3x)        0.430 1135.5 MB/s (0.5x)
512     9       8192    0.210 2325.1 MB/s       0.200 2441.4 MB/s (1.1x)        1.690 288.9 MB/s (0.1x)
512     10      8192    0.210 2325.1 MB/s       0.190 2569.9 MB/s (1.1x)        1.700 287.2 MB/s (0.1x)
512     11      8192    0.210 2325.1 MB/s       0.190 2569.9 MB/s (1.1x)        1.710 285.5 MB/s (0.1x)
512     12      8192    0.210 2325.1 MB/s       0.190 2569.9 MB/s (1.1x)        0.430 1135.5 MB/s (0.5x)
512     13      8192    0.210 2325.1 MB/s       0.280 1743.9 MB/s (0.7x)        1.680 290.6 MB/s (0.1x)
512     14      8192    0.230 2123.0 MB/s       0.170 2872.2 MB/s (1.4x)        1.700 287.2 MB/s (0.1x)
512     15      8192    0.220 2219.5 MB/s       0.180 2712.7 MB/s (1.2x)        1.710 285.5 MB/s (0.1x)
831     0       5047    0.300 2641.7 MB/s       0.220 3602.3 MB/s (1.4x)        2.750 288.2 MB/s (0.1x)
831     1       5047    0.290 2732.8 MB/s       0.250 3170.0 MB/s (1.2x)        0.780 1016.0 MB/s (0.4x)
831     2       5047    0.330 2401.5 MB/s       0.270 2935.2 MB/s (1.2x)        2.740 289.2 MB/s (0.1x)
831     3       5047    0.320 2476.6 MB/s       0.260 3048.1 MB/s (1.2x)        2.750 288.2 MB/s (0.1x)
831     4       5047    0.350 2264.3 MB/s       0.260 3048.1 MB/s (1.3x)        2.760 287.1 MB/s (0.1x)
831     5       5047    0.320 2476.6 MB/s       0.250 3170.0 MB/s (1.3x)        0.770 1029.2 MB/s (0.4x)
831     6       5047    0.320 2476.6 MB/s       0.260 3048.1 MB/s (1.2x)        2.750 288.2 MB/s (0.1x)
831     7       5047    0.320 2476.6 MB/s       0.240 3302.1 MB/s (1.3x)        2.770 286.1 MB/s (0.1x)
831     8       5047    0.320 2476.6 MB/s       0.240 3302.1 MB/s (1.3x)        2.760 287.1 MB/s (0.1x)
831     9       5047    0.310 2556.5 MB/s       0.260 3048.1 MB/s (1.2x)        0.770 1029.2 MB/s (0.4x)
831     10      5047    0.330 2401.5 MB/s       0.250 3170.0 MB/s (1.3x)        2.770 286.1 MB/s (0.1x)
831     11      5047    0.300 2641.7 MB/s       0.260 3048.1 MB/s (1.2x)        2.770 286.1 MB/s (0.1x)
831     12      5047    0.320 2476.6 MB/s       0.710 1116.2 MB/s (0.5x)        3.800 208.6 MB/s (0.1x)
831     13      5047    0.340 2330.9 MB/s       0.260 3048.1 MB/s (1.3x)        0.880 900.6 MB/s (0.4x)
831     14      5047    0.360 2201.4 MB/s       0.260 3048.1 MB/s (1.4x)        3.080 257.3 MB/s (0.1x)
831     15      5047    0.380 2085.5 MB/s       0.270 2935.2 MB/s (1.4x)        2.830 280.0 MB/s (0.1x)
2048    0       2048    0.650 3004.8 MB/s       0.470 4155.6 MB/s (1.4x)        1.700 1148.9 MB/s (0.4x)
2048    1       2048    0.720 2712.7 MB/s       0.520 3756.0 MB/s (1.4x)        6.980 279.8 MB/s (0.1x)
2048    2       2048    0.720 2712.7 MB/s       0.510 3829.7 MB/s (1.4x)        6.790 287.6 MB/s (0.1x)
2048    3       2048    0.690 2830.6 MB/s       0.540 3616.9 MB/s (1.3x)        6.800 287.2 MB/s (0.1x)
2048    4       2048    0.690 2830.6 MB/s       0.510 3829.7 MB/s (1.4x)        1.710 1142.2 MB/s (0.4x)
2048    5       2048    0.700 2790.2 MB/s       0.500 3906.2 MB/s (1.4x)        6.800 287.2 MB/s (0.1x)
2048    6       2048    0.700 2790.2 MB/s       0.500 3906.2 MB/s (1.4x)        6.800 287.2 MB/s (0.1x)
2048    7       2048    0.700 2790.2 MB/s       0.500 3906.2 MB/s (1.4x)        6.800 287.2 MB/s (0.1x)
2048    8       2048    0.720 2712.7 MB/s       0.490 3986.0 MB/s (1.5x)        1.690 1155.7 MB/s (0.4x)
2048    9       2048    0.690 2830.6 MB/s       0.510 3829.7 MB/s (1.4x)        6.790 287.6 MB/s (0.1x)
2048    10      2048    0.680 2872.2 MB/s       0.520 3756.0 MB/s (1.3x)        6.780 288.1 MB/s (0.1x)
2048    11      2048    0.690 2830.6 MB/s       0.510 3829.7 MB/s (1.4x)        6.780 288.1 MB/s (0.1x)
2048    12      2048    0.710 2750.9 MB/s       0.480 4069.0 MB/s (1.5x)        1.710 1142.2 MB/s (0.4x)
2048    13      2048    0.700 2790.2 MB/s       0.510 3829.7 MB/s (1.4x)        6.770 288.5 MB/s (0.1x)
2048    14      2048    0.690 2830.6 MB/s       0.490 3986.0 MB/s (1.4x)        6.790 287.6 MB/s (0.1x)
2048    15      2048    0.690 2830.6 MB/s       0.500 3906.2 MB/s (1.4x)        6.770 288.5 MB/s (0.1x)
3981    0       1053    1.220 3111.9 MB/s       0.860 4414.6 MB/s (1.4x)        13.180 288.1 MB/s (0.1x)
3981    1       1053    1.220 3111.9 MB/s       0.920 4126.7 MB/s (1.3x)        13.190 287.8 MB/s (0.1x)
3981    2       1053    1.300 2920.4 MB/s       0.910 4172.1 MB/s (1.4x)        13.160 288.5 MB/s (0.1x)
3981    3       1053    1.280 2966.1 MB/s       0.910 4172.1 MB/s (1.4x)        3.330 1140.1 MB/s (0.4x)
3981    4       1053    1.240 3061.8 MB/s       0.900 4218.4 MB/s (1.4x)        13.250 286.5 MB/s (0.1x)
3981    5       1053    1.280 2966.1 MB/s       0.900 4218.4 MB/s (1.4x)        13.170 288.3 MB/s (0.1x)
3981    6       1053    2.420 1568.8 MB/s       0.990 3834.9 MB/s (2.4x)        14.120 268.9 MB/s (0.2x)
3981    7       1053    1.250 3037.3 MB/s       0.900 4218.4 MB/s (1.4x)        3.320 1143.5 MB/s (0.4x)
3981    8       1053    1.240 3061.8 MB/s       0.890 4265.8 MB/s (1.4x)        13.130 289.2 MB/s (0.1x)
3981    9       1053    1.280 2966.1 MB/s       0.920 4126.7 MB/s (1.4x)        13.140 288.9 MB/s (0.1x)
3981    10      1053    1.280 2966.1 MB/s       0.900 4218.4 MB/s (1.4x)        13.180 288.1 MB/s (0.1x)
3981    11      1053    1.240 3061.8 MB/s       0.900 4218.4 MB/s (1.4x)        3.330 1140.1 MB/s (0.4x)
3981    12      1053    1.240 3061.8 MB/s       0.890 4265.8 MB/s (1.4x)        13.130 289.2 MB/s (0.1x)
3981    13      1053    1.240 3061.8 MB/s       0.890 4265.8 MB/s (1.4x)        13.150 288.7 MB/s (0.1x)
3981    14      1053    1.290 2943.1 MB/s       0.880 4314.3 MB/s (1.5x)        13.150 288.7 MB/s (0.1x)
3981    15      1053    1.300 2920.4 MB/s       0.890 4265.8 MB/s (1.5x)        3.330 1140.1 MB/s (0.4x)
8192    0       512     2.430 3215.0 MB/s       1.760 4438.9 MB/s (1.4x)        6.770 1154.0 MB/s (0.4x)
8192    1       512     2.610 2993.3 MB/s       1.780 4389.0 MB/s (1.5x)        28.680 272.4 MB/s (0.1x)
8192    2       512     3.160 2472.3 MB/s       2.220 3519.1 MB/s (1.4x)        27.920 279.8 MB/s (0.1x)
8192    3       512     2.600 3004.8 MB/s       1.800 4340.3 MB/s (1.4x)        27.070 288.6 MB/s (0.1x)
8192    4       512     2.600 3004.8 MB/s       1.770 4413.8 MB/s (1.5x)        6.760 1155.7 MB/s (0.4x)
8192    5       512     2.600 3004.8 MB/s       1.780 4389.0 MB/s (1.5x)        27.060 288.7 MB/s (0.1x)
8192    6       512     2.580 3028.1 MB/s       1.790 4364.5 MB/s (1.4x)        26.920 290.2 MB/s (0.1x)
8192    7       512     2.590 3016.4 MB/s       1.770 4413.8 MB/s (1.5x)        26.960 289.8 MB/s (0.1x)
8192    8       512     2.610 2993.3 MB/s       1.770 4413.8 MB/s (1.5x)        6.710 1164.3 MB/s (0.4x)
8192    9       512     2.580 3028.1 MB/s       1.760 4438.9 MB/s (1.5x)        28.900 270.3 MB/s (0.1x)
8192    10      512     2.590 3016.4 MB/s       1.770 4413.8 MB/s (1.5x)        26.920 290.2 MB/s (0.1x)
8192    11      512     2.570 3039.9 MB/s       1.760 4438.9 MB/s (1.5x)        26.890 290.5 MB/s (0.1x)
8192    12      512     2.590 3016.4 MB/s       1.750 4464.3 MB/s (1.5x)        6.740 1159.1 MB/s (0.4x)
8192    13      512     2.580 3028.1 MB/s       1.770 4413.8 MB/s (1.5x)        26.770 291.8 MB/s (0.1x)
8192    14      512     2.580 3028.1 MB/s       1.750 4464.3 MB/s (1.5x)        26.970 289.7 MB/s (0.1x)
8192    15      512     2.600 3004.8 MB/s       1.770 4413.8 MB/s (1.5x)        26.990 289.5 MB/s (0.1x)
13488   0       311     3.990 3223.8 MB/s       2.820 4561.4 MB/s (1.4x)        11.200 1148.5 MB/s (0.4x)
13488   1       311     4.380 2936.8 MB/s       2.900 4435.6 MB/s (1.5x)        44.670 288.0 MB/s (0.1x)
13488   2       311     4.020 3199.8 MB/s       2.890 4450.9 MB/s (1.4x)        44.510 289.0 MB/s (0.1x)
13488   3       311     4.000 3215.8 MB/s       2.910 4420.3 MB/s (1.4x)        44.360 290.0 MB/s (0.1x)
13488   4       311     3.970 3240.1 MB/s       2.860 4497.6 MB/s (1.4x)        11.100 1158.8 MB/s (0.4x)
13488   5       311     4.230 3040.9 MB/s       2.920 4405.2 MB/s (1.4x)        44.700 287.8 MB/s (0.1x)
13488   6       311     4.590 2802.4 MB/s       3.040 4231.3 MB/s (1.5x)        46.200 278.4 MB/s (0.1x)
13488   7       311     4.020 3199.8 MB/s       2.850 4513.4 MB/s (1.4x)        44.580 288.5 MB/s (0.1x)
13488   8       311     4.250 3026.6 MB/s       2.840 4529.3 MB/s (1.5x)        11.190 1149.5 MB/s (0.4x)
13488   9       311     4.250 3026.6 MB/s       2.870 4481.9 MB/s (1.5x)        44.580 288.5 MB/s (0.1x)
13488   10      311     4.020 3199.8 MB/s       2.840 4529.3 MB/s (1.4x)        46.690 275.5 MB/s (0.1x)
13488   11      311     4.180 3077.3 MB/s       2.840 4529.3 MB/s (1.5x)        44.320 290.2 MB/s (0.1x)
13488   12      311     4.270 3012.4 MB/s       2.850 4513.4 MB/s (1.5x)        11.130 1155.7 MB/s (0.4x)
13488   13      311     4.200 3062.7 MB/s       2.820 4561.4 MB/s (1.5x)        44.610 288.3 MB/s (0.1x)
13488   14      311     4.240 3033.8 MB/s       2.850 4513.4 MB/s (1.5x)        46.030 279.5 MB/s (0.1x)
13488   15      311     4.710 2731.0 MB/s       3.080 4176.4 MB/s (1.5x)        44.630 288.2 MB/s (0.1x)
16384   0       256     5.090 3069.7 MB/s       3.560 4389.0 MB/s (1.4x)        13.780 1133.9 MB/s (0.4x)
16384   1       256     5.350 2920.6 MB/s       3.630 4304.4 MB/s (1.5x)        58.590 266.7 MB/s (0.1x)
16384   2       256     5.380 2904.3 MB/s       3.600 4340.3 MB/s (1.5x)        54.310 287.7 MB/s (0.1x)
16384   3       256     5.380 2904.3 MB/s       3.640 4292.6 MB/s (1.5x)        54.370 287.4 MB/s (0.1x)
16384   4       256     5.400 2893.5 MB/s       3.610 4328.3 MB/s (1.5x)        13.620 1147.2 MB/s (0.4x)
16384   5       256     5.370 2909.7 MB/s       3.610 4328.3 MB/s (1.5x)        56.230 277.9 MB/s (0.1x)
16384   6       256     5.350 2920.6 MB/s       3.590 4352.4 MB/s (1.5x)        54.000 289.4 MB/s (0.1x)
16384   7       256     5.340 2926.0 MB/s       3.600 4340.3 MB/s (1.5x)        54.280 287.9 MB/s (0.1x)
16384   8       256     5.580 2800.2 MB/s       3.590 4352.4 MB/s (1.6x)        13.620 1147.2 MB/s (0.4x)
16384   9       256     5.370 2909.7 MB/s       3.630 4304.4 MB/s (1.5x)        54.380 287.3 MB/s (0.1x)
16384   10      256     5.460 2861.7 MB/s       3.590 4352.4 MB/s (1.5x)        54.070 289.0 MB/s (0.1x)
16384   11      256     5.360 2915.1 MB/s       3.620 4316.3 MB/s (1.5x)        56.270 277.7 MB/s (0.1x)
16384   12      256     5.430 2877.5 MB/s       3.630 4304.4 MB/s (1.5x)        13.670 1143.0 MB/s (0.4x)
16384   13      256     5.390 2898.9 MB/s       3.610 4328.3 MB/s (1.5x)        54.520 286.6 MB/s (0.1x)
16384   14      256     5.410 2888.2 MB/s       3.600 4340.3 MB/s (1.5x)        54.640 286.0 MB/s (0.1x)
16384   15      256     5.380 2904.3 MB/s       3.610 4328.3 MB/s (1.5x)        54.330 287.6 MB/s (0.1x)
38893   0       108     16.190 2291.0 MB/s      16.390 2263.0 MB/s (1.0x)       136.880 271.0 MB/s (0.1x)
38893   1       108     20.810 1782.4 MB/s      18.950 1957.3 MB/s (1.1x)       135.260 274.2 MB/s (0.2x)
38893   2       108     20.750 1787.5 MB/s      18.820 1970.8 MB/s (1.1x)       134.950 274.9 MB/s (0.2x)
38893   3       108     21.620 1715.6 MB/s      20.100 1845.3 MB/s (1.1x)       40.680 911.8 MB/s (0.5x)
38893   4       108     18.350 2021.3 MB/s      16.670 2225.0 MB/s (1.1x)       134.860 275.0 MB/s (0.1x)
38893   5       108     21.570 1719.6 MB/s      19.670 1885.7 MB/s (1.1x)       134.240 276.3 MB/s (0.2x)
38893   6       108     16.150 2296.7 MB/s      18.970 1955.3 MB/s (0.9x)       136.810 271.1 MB/s (0.1x)
38893   7       108     20.620 1798.8 MB/s      18.620 1992.0 MB/s (1.1x)       40.750 910.2 MB/s (0.5x)
38893   8       108     16.520 2245.2 MB/s      18.930 1959.4 MB/s (0.9x)       137.080 270.6 MB/s (0.1x)
38893   9       108     21.070 1760.4 MB/s      19.330 1918.8 MB/s (1.1x)       136.610 271.5 MB/s (0.2x)
38893   10      108     19.590 1893.4 MB/s      18.770 1976.1 MB/s (1.0x)       134.580 275.6 MB/s (0.1x)
38893   11      108     20.730 1789.3 MB/s      19.190 1932.8 MB/s (1.1x)       40.520 915.4 MB/s (0.5x)
38893   12      108     20.560 1804.0 MB/s      21.080 1759.5 MB/s (1.0x)       134.760 275.2 MB/s (0.2x)
38893   13      108     21.230 1747.1 MB/s      16.570 2238.5 MB/s (1.3x)       135.510 273.7 MB/s (0.2x)
38893   14      108     15.640 2371.6 MB/s      18.710 1982.4 MB/s (0.8x)       134.810 275.1 MB/s (0.1x)
38893   15      108     22.970 1614.8 MB/s      18.930 1959.4 MB/s (1.2x)       40.050 926.1 MB/s (0.6x)
65536   0       64      29.790 2098.0 MB/s      29.460 2121.5 MB/s (1.0x)       70.000 892.9 MB/s (0.4x)
65536   1       64      35.420 1764.5 MB/s      32.180 1942.2 MB/s (1.1x)       238.960 261.6 MB/s (0.1x)
65536   2       64      35.280 1771.5 MB/s      32.070 1948.9 MB/s (1.1x)       239.840 260.6 MB/s (0.1x)
65536   3       64      35.320 1769.5 MB/s      32.500 1923.1 MB/s (1.1x)       241.560 258.7 MB/s (0.1x)
65536   4       64      35.420 1764.5 MB/s      31.930 1957.4 MB/s (1.1x)       71.090 879.2 MB/s (0.5x)
65536   5       64      35.300 1770.5 MB/s      32.130 1945.2 MB/s (1.1x)       242.610 257.6 MB/s (0.1x)
65536   6       64      35.230 1774.1 MB/s      32.210 1940.4 MB/s (1.1x)       242.580 257.6 MB/s (0.1x)
65536   7       64      35.740 1748.7 MB/s      32.270 1936.8 MB/s (1.1x)       240.980 259.4 MB/s (0.1x)
65536   8       64      35.820 1744.8 MB/s      32.120 1945.8 MB/s (1.1x)       70.090 891.7 MB/s (0.5x)
65536   9       64      35.260 1772.5 MB/s      32.120 1945.8 MB/s (1.1x)       238.790 261.7 MB/s (0.1x)
65536   10      64      35.220 1774.6 MB/s      31.900 1959.2 MB/s (1.1x)       239.420 261.0 MB/s (0.1x)
65536   11      64      35.560 1757.6 MB/s      31.930 1957.4 MB/s (1.1x)       238.110 262.5 MB/s (0.1x)
65536   12      64      35.320 1769.5 MB/s      32.160 1943.4 MB/s (1.1x)       70.640 884.8 MB/s (0.5x)
65536   13      64      35.680 1751.7 MB/s      29.990 2084.0 MB/s (1.2x)       238.950 261.6 MB/s (0.1x)
65536   14      64      35.740 1748.7 MB/s      29.810 2096.6 MB/s (1.2x)       241.560 258.7 MB/s (0.1x)
65536   15      64      35.170 1777.1 MB/s      31.830 1963.6 MB/s (1.1x)       239.350 261.1 MB/s (0.1x)
105001  0       40      46.320 2161.8 MB/s      53.020 1888.7 MB/s (0.9x)       379.690 263.7 MB/s (0.1x)
105001  1       40      49.130 2038.2 MB/s      53.200 1882.3 MB/s (0.9x)       380.590 263.1 MB/s (0.1x)
105001  2       40      49.630 2017.7 MB/s      53.650 1866.5 MB/s (0.9x)       377.790 265.1 MB/s (0.1x)
105001  3       40      57.270 1748.5 MB/s      52.950 1891.2 MB/s (1.1x)       106.020 944.5 MB/s (0.5x)

(after that it took too long and I stopped it)


Ok, the numbers speak for themselves.


Top
 Profile  
 
PostPosted: Mon Apr 25, 2005 2:42 am 
Offline


Mon Oct 11, 2004 12:49 am

35
Wow, not bad at all! Frankly, I wouldn't have expected you to just walk in and beat Motorola/Freescale's code on your first attempt using AltiVec. You can be proud!


Top
 Profile  
 
PostPosted: Mon Apr 25, 2005 3:44 am 
Offline
Genesi


Fri Sep 24, 2004 1:39 am

1412
WOW! ...is right.

Nice work Konstatinos!

R&B :D


Top
 Profile  
 
PostPosted: Fri May 27, 2005 12:48 am 
Offline


Mon Oct 11, 2004 12:49 am

35
The download link no longer works. Is libfreevec still hosted somewhere?


Top
 Profile  
 
PostPosted: Wed Jun 08, 2005 3:59 am 
Offline


Wed Oct 13, 2004 7:26 am

342

Nafplion
hobold wrote:
The download link no longer works. Is libfreevec still hosted somewhere?


sorry for the long delay. I'm rewriting some parts of it and I'm waiting for NekoXP to open a subversion space here in ppczone.org so that I can host it properly. I'll prepare a tarball that works and upload it asap.

In the meantime, here's a vectorized zlib (apprx. 25% faster :-)
(vectorized code in deflate.c and adler32.c)

http://people.debian.org/~markos/powerp ... ltivec.tgz

There's still work that needs to be done here, after profiling zlib, I found ~6 functions that will probably benefit from vectorizing. I've done the 2 (fill_window() and longest_match()) but i have to look at the rest also.

Konstantinos


Top
 Profile  
 
PostPosted: Fri Jun 10, 2005 1:07 am 
Offline
Site Admin


Fri Sep 24, 2004 1:39 am

1589

Alamo Heights, TX
markos,

Put the code online anyway. I would like Holger to see it maybe he has some good suggestions on how to further improve it :)

Put it on the download spot at PPCZone in the mean time (log in on the front page, see the buttons Submit News and Upload Files)?

Neko


Top
 Profile  
 
PostPosted: Sun Jun 12, 2005 9:24 pm 
Offline


Mon Oct 11, 2004 12:49 am

35
With zlib and other LZ-type compressors you have to be careful with vectorization. Some emulate runlength coding by referencing strings that aren't fully decompressed yet (i.e. that span from the already decompressed bytes over the current one into the 'future' section of the buffer). This implicitly relies on the sequential nature of byte-wise accesses (i.e. the undefined parts of the source string will be defined by the time they are actually accessed).

Straight forward vectorization breaks these compressors. One has to verify that the end of the source string is before the current byte pointer.


Top
 Profile  
 
PostPosted: Mon Jun 13, 2005 9:15 pm 
Offline


Wed Oct 13, 2004 7:26 am

342

Nafplion
hobold wrote:
With zlib and other LZ-type compressors you have to be careful with vectorization. Some emulate runlength coding by referencing strings that aren't fully decompressed yet (i.e. that span from the already decompressed bytes over the current one into the 'future' section of the buffer). This implicitly relies on the sequential nature of byte-wise accesses (i.e. the undefined parts of the source string will be defined by the time they are actually accessed).

Straight forward vectorization breaks these compressors. One has to verify that the end of the source string is before the current byte pointer.


Well, I did the vectorization after profiling minigzip ( a simple gzip clone based on zlib) and found 6 functions that would benefit from vectorization. The 2 functions that I did so far are doing only very simple stuff like comparing buffers (longest_match()), or doing a bounds check on the buffers (fill_window()). So far, all tests seem to be working ok (eg. the md5sums of compressed files are equal for both cases), providing a 25% speed increase.


Top
 Profile  
 
PostPosted: Tue Jun 14, 2005 6:47 am 
Offline


Mon Oct 11, 2004 12:49 am

35
The name longest_match() indicates that it is part of the compressor; in that case it is uncritical, because all of the data buffer contains well-defined values. The case I tried to describe happens during decompression.

Some LZ-Style compressors handle runs of N identical bytes by encoding the first byte individually, then they claim a N-1 bytes long match starting from the first byte. During decompression, the well-defined first byte is copied in the first iteration of the copy loop. So in the 2nd iteration, it can serve as well-defined source data to be copied into the next byte, and so on and so forth, until the whole run of N bytes has been reproduced.

This strategy also works for repeating patterns that are longer than a single byte. The special case can be recognized by the fact that the source string is technically in undefined space of the decompression buffer. A vectorized version has to handle this, because it changes the order of byte-wise memory accesses and breaks the implicit assumption of sequential copying.


Top
 Profile  
 
PostPosted: Tue Jun 14, 2005 10:30 am 
Offline


Wed Oct 13, 2004 7:26 am

342

Nafplion
hobold wrote:
The name longest_match() indicates that it is part of the compressor; in that case it is uncritical, because all of the data buffer contains well-defined values. The case I tried to describe happens during decompression.


True, I didn't specify where I did the vectorization. So far I have only dealt with compression and not decompression. I'll try to deal with this separately.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group