Extended SIMD implementation for 256-bit AVX and AVX2
authorErik Lindahl <erik@kth.se>
Tue, 28 Apr 2015 21:02:39 +0000 (17:02 -0400)
committerErik Lindahl <erik@kth.se>
Mon, 21 Dec 2015 09:37:54 +0000 (10:37 +0100)
commit898b586ed5da79ed2c238b72998234ca810dcb5a
treef8f66f73b897ef2177991605f18291b82ba50b75
parent74157ac75ab156c46a8a0bde6e3bff5f6235ec5e
Extended SIMD implementation for 256-bit AVX and AVX2

Added support for nonbonded kernel utilities,
gather-transpose and transpose-store operations. Most
routines have been optimized to reduce cross-lane
shuffling which is more expensive on Haswell (AVX2).

Change-Id: Ia9b3733051410355ed9d4a68cbdb9646c9d3e41d
24 files changed:
docs/doxygen/suppressions.txt
src/gromacs/listed-forces/bonded.cpp
src/gromacs/listed-forces/bonded.h
src/gromacs/mdlib/clincs.cpp
src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256.h
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h [new file with mode: 0644]
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_general.h [new file with mode: 0644]
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_simd4_double.h
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_simd4_float.h
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_simd_double.h
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_simd_float.h
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_util_double.h [moved from src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_common.h with 70% similarity]
src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_util_float.h [moved from src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_common.h with 54% similarity]
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256.h
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h [new file with mode: 0644]
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_general.h [new file with mode: 0644]
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_simd4_double.h
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_simd4_float.h
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_simd_double.h
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_simd_float.h
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h [new file with mode: 0644]
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h [new file with mode: 0644]
src/gromacs/simd/simd.h