Optimizing Dirac Wilson Operator and linear solvers for Intel KNL
Lattice Quantumchromodynamics (QCD) is a powerful tool to numerically access the low energy regime of QCD in a straightforward way with quantifyable uncertainties. In this approach, QCD is discretized on a four dimensional, euclidian space-time grid with millions of degrees of freedom. In modern lattice calculations, most of the work is still spent in solving large, sparse linear systems. This part has two challenges, i.e. optimizing the sparse matrix application as well as BLAS-like kernels used in the linear solver. We are going to present performance optimizations of the Dirac operator (dslash) with and without clover term for recent Intel architectures, including Knights Landing (KNL). Using only a single right hand side, we were able to achieve a good fraction of peak performance for slash, CG and BiCGStab. We will also present a series of experiments we performed on KNL, i.e. running MCDRAM in different modes, enabling or disabling hardware prefetching, using different SoA lengths as well as different sub-NUMA-clustering modes.