ACA 2016: Advanced Computer Architecture pp 108-117 | Cite as
High Performance Stencil Computations for Intel\(^{\normalsize \circledR }\) Xeon Phi™ Coprocessor
Abstract
Stencil computations are a class of computational kernels which update array elements according to some stencil patterns, and they have drawn more attentions recently. The Intel Xeon Phi coprocessor, which is designed for high performance computing, has not been fully evaluated for stencil computations. In this paper, we present a series of optimizations to accelerate the 3-D 7-point stencil code on Intel Xeon Phi coprocessor. We focus on how to exploit the performance potential of many cores and wide-vector unit in each core. In order to exploit data locality, we use loop tiling and we propose a method for calculating the block size while tiling. The achieved performance brings a speedup of 211.6 in comparison with the serial code.
Keywords
Stencil computation Intel\(^{\circledR }\) Xeon Phi™ coprocessor Vectorization Loop tilingNotes
Acknowledgments
The work described in this paper is partially supported by the project of National Science Foundation of China under grant No.61170046 and No.61402495.
References
- 1.HiStencils. http://www.exastencils.org/histencils/. Accessed 15 Apr 2015
- 2.Stencil code. http://en.wikipedia.org/wiki/Stencil_code/. Accessed 15 Apr 2015
- 3.Michael, M., Reinders, J., Robison, A.: Structured Parallel Programming: Patterns for Efficient Computation. Elsevier, Amsterdam (2012)Google Scholar
- 4.Intel Corporation. Intel\(^{\textregistered }\) Xeon Phi™ coprocessor system software developers guide, March 2014Google Scholar
- 5.Duran, A., Michael, K.: The Intel\(^{\textregistered }\) many integrated core architecture. In: International Conference on High Performance Computing and Simulation (HPCS). IEEE (2012)Google Scholar
- 6.James, J., Reinders, J.: Intel\(^{\textregistered }\) Xeon Phi™ Coprocessor High-performance Programming. Newnes, Oxford (2013)Google Scholar
- 7.Top 500 list. http://www.top500.org/. Accessed 1 June 2016
- 8.Chapman, B., Jost, G., Van Der Pas, R.: Using OpenMP: Portable Shared Memory Parallel Programming, vol. 10. MIT press, Massachusetts (2008)Google Scholar
- 9.Xue, J.: Loop Tiling for Parallelism. Springer Science & Business Media, Berlin (2000)CrossRefMATHGoogle Scholar
- 10.Leopold, C.: Tight bounds on capacity misses for 3D stencil codes. In: Sloot, P.M.A., Tan, C.J.K., Dongarra, J., Hoekstra, A.G. (eds.) ICCS-ComputSci 2002, Part I. LNCS, vol. 2329, pp. 843–852. Springer, Heidelberg (2002)CrossRefGoogle Scholar
- 11.Schäfer, A., Fey, D.: High performance stencil code algorithms for GPGPUs. Procedia Comput. Sci. 4, 2027–2036 (2011)CrossRefGoogle Scholar
- 12.Maruyama, N., Takayuki, A.: Optimizing stencil computations for NVIDIA Kepler GPUs. In: Proceedings of the 1st International Workshop on High Performance Stencil Computations, Vienna (2014)Google Scholar
- 13.You, Y., et al.: Evaluating multi-core, many-core architectures through accelerating the three-dimensional LaxCWendroff correction stencil. Int. J. High Perform. Comput. Appl. 28(3), 301–318 (2014)CrossRefGoogle Scholar
- 14.Rahman, S.M., Faizur, Q.Y., Apan, Q.: Understanding stencil code performance on multicore architectures. In: Proceedings of the 8th ACM International Conference on Computing Frontiers. ACM (2011)Google Scholar
- 15.Wang, Q., et al.: Accelerating embarrassingly parallel algorithm on Intel MIC. In: International Conference on Progress in Informatics and Computing (PIC). IEEE (2014)Google Scholar
- 16.Tao, G., et al.: Using the intel many integrated core to accelerate graph traversal. Int. J. High Perform. Comput. Appl. 28(3), 255–266 (2014)CrossRefGoogle Scholar