mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 03:19:35 +03:00
70b258fc96
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
22 lines
561 B
Makefile
22 lines
561 B
Makefile
src = @abs_top_srcdir@/module/zcommon
|
|
obj = @abs_builddir@
|
|
|
|
MODULE := zcommon
|
|
|
|
EXTRA_CFLAGS = $(ZFS_MODULE_CFLAGS) @KERNELCPPFLAGS@
|
|
|
|
obj-$(CONFIG_ZFS) := $(MODULE).o
|
|
|
|
$(MODULE)-objs += zfs_deleg.o
|
|
$(MODULE)-objs += zfs_prop.o
|
|
$(MODULE)-objs += zprop_common.o
|
|
$(MODULE)-objs += zfs_namecheck.o
|
|
$(MODULE)-objs += zfs_comutil.o
|
|
$(MODULE)-objs += zfs_fletcher.o
|
|
$(MODULE)-objs += zfs_uio.o
|
|
$(MODULE)-objs += zpool_prop.o
|
|
|
|
$(MODULE)-$(CONFIG_X86) += zfs_fletcher_intel.o
|
|
$(MODULE)-$(CONFIG_X86) += zfs_fletcher_sse.o
|
|
$(MODULE)-$(CONFIG_X86) += zfs_fletcher_avx512.o
|