Análise de Desempenho e Consumo Energético de Aplicações Recursivas em Ambientes OpenMP, CUDA e CUDA DP

  • Angelo Gaspar Diniz Nogueira UNIPAMPA
  • Arthur Francisco Lorenzon UFRGS
  • Claudio Schepke UNIPAMPA
  • Diego Kreutz UNIPAMPA

Resumo


Interfaces de programação paralela como CUDA possibilitam explorar a concorrência em GPUs. Embora o poder de processamento seja significativo neste tipo de arquitetura, a eficiência pode ser limitada em aplicações recursivas, devido à necessidade de comunicação entre GPU e CPU. Uma alternativa é utilizar a extensão Dynamic Parallelism, também conhecida como CUDA DP. Com o objetivo de investigar em maior profundidade esta extensão de paralelismo, neste artigo avaliamos o desempenho e o consumo energético de aplicações recursivas usando OpenMP, CUDA e CUDA DP. Os resultados obtidos indicam que CUDA DP viabiliza uma economia significativa na execução de aplicações com características semelhantes ao Mergesort, chegando a uma redução de até 23× no tempo de execução e 7× no consumo de energia quando comparado com as variantes CUDA e OpenMP, respectivamente. Na implementação do BFS com CUDA DP, observa-se um ganho aproximado de 5× no consumo de energia e no tempo de execução em comparação com o OpenMP. Contudo, em comparação com CUDA, há uma leve perda de 1, 6% no consumo de energia e de 5% no tempo de execução.

Referências

Adinetz, A. (2014). Adaptive parallel computation with CUDA dynamic parallelism. NVIDIA Corporation) Retrieved January, 4:2016.

Araujo, G., Griebler, D., Rockenbach, D. A., Danelutto, M., and Fernandes, L. G. (2023). NAS Parallel Benchmarks with CUDA and beyond. Software: Practice and Experience, 53(1):53–80.

Bozorgmehr, B., Willemsen, P., Gibbs, J. A., Stoll, R., Kim, J.-J., and Pardyjak, E. R. (2021). Utilizing dynamic parallelism in CUDA to accelerate a 3D red-black successive over relaxation wind-field solver. Environmental Modelling & Software, 137:104958.

El Hajj, I., Gómez-Luna, J., Li, C., Chang, L.-W., Milojicic, D., and Hwu, W.-m. (2016). KLAP: Kernel launch aggregation and promotion for optimizing dynamic parallelism. In 49th Annual IEEE/ACM MICRO, pages 1–12. IEEE.

Guo, G., Huang, T.-W., Lin, Y., and Wong, M. (2021). GPU-accelerated path-based timing analysis. In 58th ACM/IEEE DAC, pages 721–726. IEEE.

Gupta, S. K., Singh, D. P., and Choudhary, J. (2023). New GPU Sorting Algorithm Using Sorted Matrix. Procedia Computer Science, 218:1682–1691.

Jarza̧bek, Ł. and Czarnul, P. (2017). Performance evaluation of unified memory and dynamic parallelism for selected parallel CUDA applications. The Journal of Supercomputing, 73:5378–5401.

Jin, C., de Supinski, B. R., Abramson, D., Poxon, H., DeRose, L., Dinh, M. N., Endrei, M., and Jessup, E. R. (2017). A survey on software methods to improve the energy efficiency of parallel computing. The International Journal of High Performance Computing Applications, 31(6):517–549.

Khalilov, M. and Timoveev, A. (2021). Performance analysis of CUDA, OpenACC and OpenMP programming models on TESLA V100 GPU. In Journal of Physics: Conference Series, volume 1740, page 012056. IOP Publishing.

Memeti, S., Li, L., Pllana, S., Kołodziej, J., and Kessler, C. (2017). Benchmarking OpenCL, OpenACC, OpenMP, and CUDA: Programming Productivity, Performance, and Energy Consumption. In Proceedings of the Workshop on Adaptive Resource Management and Scheduling for Cloud Computing, pages 1–6.

Nana, R., Tadonki, C., Dokládal, P., and Mesri, Y. (2023). Energy Concerns with HPC Systems and Applications. arXiv preprint arXiv:2309.08615.

Navaux, P. O. A., Lorenzon, A. F., and da Silva Serpa, M. (2023). Challenges in High-Performance Computing. Journal of the Brazilian Computer Society, 29(1):51–62.

Nogueira, A. G. D., Lorenzon, A. F., Schepke, C., and Kreutz, D. (2024). Apêndice de Algoritmos do Trabalho: Análise de Desempenho e Consumo Energético de Aplicações Recursivas em Ambientes OpenMP, CUDA e CUDA DP. [link].

NVIDIA (2022). CUDA C++ Programming Guide. Nvidia Corporation. OpenMP Architecture Review Board (2022). OpenMP Application Program Interface. O’brien, K., Pietri, I., Reddy, R., Lastovetsky, A., and Sakellariou, R. (2017). A survey of power and energy predictive models in HPC systems and applications. ACM CSUR, 50(3):1–38.

Palencia, J. and Rutten, P. (2024). Worldwide High-Performance Computing Server Forecast, 2023–2027: Enterprise Will Overtake HPC Labs. IDC. [link].

Park, S., Kim, H., Ahmad, T., Ahmed, N., Al-Ars, Z., Hofstee, H. P., Kim, Y., and Lee, J. (2022). SALoBa: Maximizing Data Locality and Workload Balance for Fast Sequence Alignment on GPUs. In IEEE IPDPS, pages 728–738. IEEE.

Plauth, M., Feinbube, F., Schlegel, F., and Polze, A. (2015). Using dynamic parallelism for fine-grained, irregular workloads: a case study of the n-queens problem. In CANDAR, pages 404–407. IEEE.

Quezada, F. A., Navarro, C. A., Romero, M., and Aguilera, C. (2023). Modeling GPU Dynamic Parallelism for self similar density workloads. Future Generation Computer Systems, 145.

Wang, J. and Yalamanchili, S. (2014). Characterization and analysis of dynamic parallelism in unstructured GPU applications. In IEEE IISWC, pages 51–60. IEEE.

Yi, X., Stokes, D., Yan, Y., and Liao, C. (2021). CUDAMicroBench: Microbenchmarks to Assist CUDA Performance Programming. In IEEE IPDPSW, pages 397–406. IEEE.
Publicado
23/10/2024
NOGUEIRA, Angelo Gaspar Diniz; LORENZON, Arthur Francisco; SCHEPKE, Claudio; KREUTZ, Diego. Análise de Desempenho e Consumo Energético de Aplicações Recursivas em Ambientes OpenMP, CUDA e CUDA DP. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 25. , 2024, São Carlos/SP. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 264-275. DOI: https://doi.org/10.5753/sscad.2024.244712.