diff options
author | Gvozden Neskovic <[email protected]> | 2016-07-06 13:42:04 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-08-16 14:11:14 -0700 |
commit | 70b258fc962fd40673b9a47574cb83d8438e7d94 (patch) | |
tree | 6e45c08b144622dc78f1106681ce5566c77b588d /lib/libzpool/Makefile.am | |
parent | 32ffaa3de58981814342fe6d3556c03d41d121f8 (diff) |
Fletcher4 implementation using avx512f instruction set
Algorithm runs 8 parallel sums, consuming 8x uint32_t elements per
loop iteration. Size alignment of main fletcher4 methods is adjusted
accordingly. New implementation is called 'avx512f'.
Note: byteswap method can be implemented more efficiently when avx512bw hardware
becomes available. Currently, it is ~ 2x slower than native method.
Table shows result of full (native) fletcher4 calculation for different buffer size:
fletcher4 4KB 16KB 64KB 128KB 256KB 1MB 16MB
--------------------------------------------------------------------
[scalar] 1213 1228 1231 1231 1225 1200 1160
[sse2] 2374 2442 2459 2456 2462 2250 2220
[avx2] 4288 4753 4871 4893 4900 4050 3882
[avx512f] 5975 8445 9196 9221 9262 6307 5620
Signed-off-by: Gvozden Neskovic <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Issue #4952
Diffstat (limited to 'lib/libzpool/Makefile.am')
-rw-r--r-- | lib/libzpool/Makefile.am | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am index e73268b73..f56381d58 100644 --- a/lib/libzpool/Makefile.am +++ b/lib/libzpool/Makefile.am @@ -24,6 +24,7 @@ KERNEL_C = \ zfs_fletcher.c \ zfs_fletcher_intel.c \ zfs_fletcher_sse.c \ + zfs_fletcher_avx512.c \ zfs_namecheck.c \ zfs_prop.c \ zfs_uio.c \ |