Accelerating Pre-stack Kirchhoff Time Migration by using SIMD Vector Instructions
ResumoThe Pre-stack Kirchhoff Time Migration (PKTM) is a central process in petroleum exploration. As PKTM is computationally intensive, many works have proposed the use of accelerators like GPU and FPGA to improve its execution time. On the other hand, although many off-the-shelf processors are endowed with a set of SIMD vector instructions, few papers tackle the problem considering vectorization and, all of them, consider that compilers can successfully vectorize the code. In this paper, we show that a hand-written Kirchhoff code by using SIMD vector instructions is more efﬁcient than the autovectorized code provided by GCC. Experiments considering both real and synthetic datasets showed that our solution is up to eight times faster than the autovectorized one. We believe that the proposed strategy can be used together with the other ones to accelerate seismic migration methods in general without new investments in hardware and software.
Cohen, J. and Stockwell, J. J. (2008). Cwp/su: Seismic unix release no. 41: An open source software package for seismic research and processing. Center for Wave Phenomena, Colorado School of Mines.
Deschizeaux, B. and Blanc, J.-Y. (2007). Imaging earth's subsurface using cuda. GPU Gems, 3:831–850.
Intel (2015). The intel intrinsics guide. https://software.intel.com/sites/landingpage/IntrinsicsGuide/. [Online; accessed in July-2015].
Levin, S. A. et al. (2004). Numerical precision in 3d prestack kirchhoff migration. In SEG Annual Meeting. Society of Exploration Geophysicists.
Maleki, S., Gao, Y., Garzaran, M. J., Wong, T., and Padua, D. A. (2011). An evaluation of vectorizing compilers. In International Conference on Parallel Architectures and Compilation Techniques (PACT), pages 372–382. IEEE.
Mitra, G., Johnston, B., Rendell, A. P., McCreath, E., and Zhou, J. (2013). Use of simd vector operations to accelerate application code performance on low-powered arm and intel platforms. In 27th International Parallel and Distributed Processing Symposium, Workshops and PhD Forum (IPDPSW), pages 1107–1116. IEEE.
Panetta, J., Teixeira, T., de Souza Filho, P. R., da Cunha Filho, C. A., Sotelo, D., da Motta, F. M. R., Pinheiro, S. S., Rosa, A. L. R., Monnerat, L. R., Carneiro, L. T., et al. (2012). Accelerating time and depth seismic migration by cpu and gpu cooperation. International Journal of Parallel Programming, 40(3):290–312.
Pommier, J. (2007). Simple SSE and SSE2 (and now NEON) optimized sin, cos, log and exp. http://gruntthepeon.free.fr/ssemath/. [Online; accessed July2015].
Rahmad, M. H., Meng, S. S., Karuppiah, E. K., and Ong, H. (2011). Comparison of cpu and gpu implementation of computing absolute difference. In International Conference on Control System, Computing and Engineering (ICCSCE), pages 132–137. IEEE.
Rizvandi, N. B., Boloori, A. J., Kamyabpour, N., and Zomaya, A. Y. (2011). Mapreduce implementation of prestack kirchhoff time migration (pktm) on seismic data. In 12th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), pages 86–91. IEEE.
Shi, X., Li, C., Wang, S., and Wang, X. (2011). Computing prestack kirchhoff time migration on general purpose gpu. Computers & Geosciences, 37(10):1702–1710.
Sun, P. and Shi, X. (2012). An opencl approach of prestack kirchhoff time migration algorithm on general purpose gpu. In 13th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), pages 179–183. IEEE.
Teixeira, D., Yeh, A., and Sampath Gajawada, T. (2013). Implementation of kirchhoff prestack depth migration on gpu. SEG Technical Program Expanded Abstracts, 3683:3686.
Xu, R., Hugues, M., Calandra, H., Chandrasekaran, S., and Chapman, B. (2014). Accelerating kirchhoff migration on gpu using directives. In First Workshop on Accelerator Programming using Directives, pages 37–46. IEEE.
Yilmaz, O. and Doherty, S. M. (1987). Seismic Data Processing, volume 2 of Investigations in Geophysics. Society of Exploration.