All times are UTC-06:00




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

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
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
   
PostPosted: Tue Apr 12, 2005 6:05 pm 
Offline
Genesi

Joined: Fri Sep 24, 2004 1:39 am
Posts: 1422
Nice work Konstantinos. Looking forward to giving it a try.

R&B :D


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

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
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
   
PostPosted: Sun Apr 24, 2005 11:40 pm 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
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
   
PostPosted: Mon Apr 25, 2005 2:42 am 
Offline

Joined: Mon Oct 11, 2004 12:49 am
Posts: 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
   
PostPosted: Mon Apr 25, 2005 3:44 am 
Offline
Genesi

Joined: Fri Sep 24, 2004 1:39 am
Posts: 1422
WOW! ...is right.

Nice work Konstatinos!

R&B :D


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

Joined: Mon Oct 11, 2004 12:49 am
Posts: 35
The download link no longer works. Is libfreevec still hosted somewhere?


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

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
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
   
PostPosted: Fri Jun 10, 2005 1:07 am 
Offline
Site Admin

Joined: Fri Sep 24, 2004 1:39 am
Posts: 1589
Location: Austin, 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
   
PostPosted: Sun Jun 12, 2005 9:24 pm 
Offline

Joined: Mon Oct 11, 2004 12:49 am
Posts: 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
   
PostPosted: Mon Jun 13, 2005 9:15 pm 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
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
   
PostPosted: Tue Jun 14, 2005 6:47 am 
Offline

Joined: Mon Oct 11, 2004 12:49 am
Posts: 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
   
PostPosted: Tue Jun 14, 2005 10:30 am 
Offline

Joined: Wed Oct 13, 2004 7:26 am
Posts: 348
Quote:
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
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 13 posts ] 

All times are UTC-06:00


Who is online

Users browsing this forum: No registered users and 9 guests


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:  
PowerDeveloper.org: Copyright © 2004-2012, Genesi USA, Inc. The Power Architecture and Power.org wordmarks and the Power and Power.org logos and related marks are trademarks and service marks licensed by Power.org.
All other names and trademarks used are property of their respective owners. Privacy Policy
Powered by phpBB® Forum Software © phpBB Group