mirror_zfs/man/man5
Gvozden Neskovic 70b258fc96 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 <neskovic@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #4952
2016-08-16 14:11:14 -07:00
..
Makefile.am Initial attempt to document events and payloads. 2014-07-25 11:58:36 -07:00
vdev_id.conf.5 Add extra keyword 'slot' to vdev_id.conf 2015-08-30 10:03:56 -07:00
zfs-events.5 Man page white space and spelling corrections 2015-12-18 13:33:37 -08:00
zfs-module-parameters.5 Fletcher4 implementation using avx512f instruction set 2016-08-16 14:11:14 -07:00
zpool-features.5 Implement large_dnode pool feature 2016-06-24 13:13:21 -07:00