Code portability applied the Wave-propagation kernel

  • Rodrigo C. Machado UFRGS
  • Cristiano A. Künas UFRGS
  • Bruno Machado Morales UFRGS
  • Thiago da Silva Araújo UFRGS
  • Alexandre Sardinha PETROBRAS
  • Arthur F. Lorenzon UFRGS
  • Philippe O. A. Navaux UFRGS

Resumo


Reverse Time Migration (RTM) codes are often written using GPU vendor APIs, tying applications to one hardware supplier. The Fletcher method models wave propagation used by RTM. We port a CUDA implementation of the Fletcher method to HIP, Kokkos, RAJA, and SYCL, measuring eight kernel variants (1-pass or 2-pass, float vs. packed float2, with or without shared memory) across five GPUs from AMD and NVIDIA. No single kernel variant fits all architectures best. Packed float2 achieves the highest performance gains on AMD, whereas shared memory on NVIDIA often degrades throughput. On AMD (MI300A), HIP peaks at 22.15 GS/s with Kokkos within 4%, while on NVIDIA (GH200), CUDA/HIP reach 20.35 GS/s.

Referências

Fletcher, R. P., Du, X., and Fowler, P. J. (2009). Reverse time migration in tilted transversely isotropic (TTI) media. Geophysics, 74(6):WCA179–WCA187.

Harrell, S. L., Kitson, J., Bird, R., Pennycook, S. J., Sewall, J., Jacobsen, D., Asanza, D. N., Hsu, A., Carrillo, H. C., Kim, H., and Robey, R. (2018). Effective performance portability. In 2018 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), pages 24–36.

Lorenzon, A. F., Navaux, P. O. A., Sardinha, A., and Messer, B. (2024). Towards performance portability of an oil and gas application on heterogeneous architectures. In 2024 IEEE 36th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), pages 127–137.

Lorenzon, A. F., Navaux, P. O. A., Sardinha, A., and Messer, B. (2025). Evaluating code portability for carbon-efficient RTM computing. In 2025 IEEE/SBC 37th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), pages 91–101.

Malenza, G., Cesare, V., Santimaria, M. E., Birke, R., Vecchiato, A., Becciani, U., and Aldinucci, M. (2024). Performance portability via C++ PSTL, SYCL, OpenMP, and HIP: the Gaia AVU-GSR case study. In SC24-W: Workshops of the International Conference for High Performance Computing, Networking, Storage and Analysis, pages 1152–1163.

Marowka, A. (2025). Portability efficiency approach for calculating performance portability. Future Generation Computer Systems, 170:107826.

Micikevicius, P. (2009). 3D finite difference computation on GPUs using CUDA. In Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units, GPGPU-2, page 79–84, New York, NY, USA. Association for Computing Machinery.

Pennycook, S., Sewall, J., and Lee, V. (2019). Implications of a metric for performance portability. Future Generation Computer Systems, 92:947–958.

Pennycook, S. J. and Sewall, J. D. (2021). Revisiting a metric for performance portability. In 2021 International Workshop on Performance, Portability and Productivity in HPC (P3HPC), pages 1–9.

Serpa, M. S., Pavan, P. J., Cruz, E. H. M., Machado, R. L., Panetta, J., Azambuja, A., Carissimi, A. S., and Navaux, P. O. A. (2021). Energy efficiency and portability of oil and gas simulations on multicore and graphics processing unit architectures. Concurrency and Computation: Practice and Experience, 33(18):e6212.

Wahib, M. and Maruyama, N. (2014). Scalable kernel fusion for memory-bound GPU applications. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC ’14, page 191–202. IEEE Press.
Publicado
03/11/2026
MACHADO, Rodrigo C.; KÜNAS, Cristiano A.; MORALES, Bruno Machado; ARAÚJO, Thiago da Silva; SARDINHA, Alexandre; LORENZON, Arthur F.; NAVAUX, Philippe O. A.. Code portability applied the Wave-propagation kernel. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 27. , 2026, Natal/RN. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2026 . p. 385-397. DOI: https://doi.org/10.5753/sscad.2026.34957.