RUS  ENG
Full version
JOURNALS // Preprints of the Keldysh Institute of Applied Mathematics // Archive

Keldysh Institute preprints, 2022 051, 36 pp. (Mi ipmp3077)

This article is cited in 3 papers

The use of functional programming library to parallelize on graphics accelerators with CUDA technology

M. M. Krasnov, O. B. Feodoritova


Abstract: Modern graphics accelerators (GPUs) can significantly speed up the execution of numerical tasks. However, porting programs to graphics accelerators is not an easy task, sometimes requiring their almost complete rewriting. CUDA graphics accelerators, thanks to technology developed by NVIDIA, allow you to have a single source code for both conventional processors (CPUs) and CUDA. However, in this single source code, you need to somehow tell the compiler which parts of this code to parallelize on shared memory. The use of the functional programming library developed by the authors allows you to hide the use of one or another parallelization mechanism on shared memory within the library and make the user source code completely independent of the computing device used (CPU or CUDA). This article shows how this can be done.

Keywords: C++, functional programming library, CUDA, OpenMP, OpenCL, OpenACC.

DOI: 10.20948/prepr-2022-51



© Steklov Math. Inst. of RAS, 2024