implemented nbnxn AVX-256 2x(N+N) kernels
authorBerk Hess <hess@kth.se>
Mon, 10 Dec 2012 17:20:24 +0000 (18:20 +0100)
committerBerk Hess <hess@kth.se>
Tue, 18 Dec 2012 12:21:39 +0000 (13:21 +0100)
commit0f26a48719fe046a3aeab2048be302721cd7bad0
tree93705a6adaace4165e78215cd32485662ac49e6f
parent46d3f7f6b62e74930b2de1f0aca712a7db0e4941
implemented nbnxn AVX-256 2x(N+N) kernels

With AVX-256 nbnxn kernels are faster with 2x(4+4)=4x4 than 4x8.
To reduce the number of nbnxn kernels, there are no longer both
simd128 and simd256 kernels, but simd_4xn and for AVX-256 additionally
simd_2xnn kernels. The nbnxn search code is simplified significantly,
as it no longer has 128-bit and 256-bit simd simultaneously.
The SIMD pair-search and kernel configuration is now separated from
the SSE SIMD bounding box code configuration.

Additionally the label x86_simd in all nbnxn files is replaced by simd
only, in prepartion for non-x86 SIMD acceleration.

Change-Id: If03cf569cf918dcec675fbcb43e1ff3a30528f74
23 files changed:
include/gmx_x86_avx_256.h
include/gmx_x86_simd_macros.h
include/types/nb_verlet.h
src/kernel/calc_verletbuf.c
src/kernel/pme_loadbal.c
src/mdlib/forcerec.c
src/mdlib/nbnxn_atomdata.c
src/mdlib/nbnxn_internal.h
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_2xnn.c [moved from src/mdlib/nbnxn_kernels/nbnxn_kernel_x86_simd256.c with 83% similarity]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_2xnn.h [moved from src/mdlib/nbnxn_kernels/nbnxn_kernel_x86_simd256.h with 69% similarity]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_2xnn_includes.h [new file with mode: 0644]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_2xnn_inner.h [new file with mode: 0644]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_2xnn_outer.h [new file with mode: 0644]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_4xn.c [moved from src/mdlib/nbnxn_kernels/nbnxn_kernel_x86_simd128.c with 84% similarity]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_4xn.h [moved from src/mdlib/nbnxn_kernels/nbnxn_kernel_x86_simd128.h with 71% similarity]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_4xn_includes.h [moved from src/mdlib/nbnxn_kernels/nbnxn_kernel_x86_simd_includes.h with 86% similarity]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_4xn_inner.h [moved from src/mdlib/nbnxn_kernels/nbnxn_kernel_x86_simd_inner.h with 99% similarity]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_4xn_outer.h [moved from src/mdlib/nbnxn_kernels/nbnxn_kernel_x86_simd_outer.h with 95% similarity]
src/mdlib/nbnxn_kernels/nbnxn_kernel_simd_utils.h [moved from src/mdlib/nbnxn_kernels/nbnxn_kernel_x86_simd_utils.h with 90% similarity]
src/mdlib/nbnxn_search.c
src/mdlib/nbnxn_search_simd_2xnn.h [new file with mode: 0644]
src/mdlib/nbnxn_search_simd_4xn.h [moved from src/mdlib/nbnxn_search_x86_simd.h with 77% similarity]
src/mdlib/sim_util.c