Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2021, Volume 33, Issue 5, Pages 167–180
DOI: https://doi.org/10.15514/ISPRAS-2021-33(5)-10
(Mi tisp634)
 

This article is cited in 1 scientific paper (total in 1 paper)

Using the functional programming library for solving numerical problems on graphics accelerators with cuda technology

M. M. Krasnovab, O. B. Feodoritovaa

a Keldysh Institute of Applied Mathematics of Russian Academy of Sciences
b Moscow Institute of Physics and Technology
Full-text PDF (773 kB) Citations (1)
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 the transfer of programs to such accelerators is carried out by almost completely rewriting them (for example, when using the OpenCL technology). This raises the daunting task of maintaining two independent source codes. However, CUDA graphics accelerators, thanks to technology developed by NVIDIA, allow you to have a single source code for both conventional processors (CPUs) and CUDA. The machine code generated when compiling this single text depends on which compiler it is compiled with (the usual one, such as gcc, icc and msvc, or the compiler for CUDA, nvcc). However, in this single source code, you need to somehow tell the compiler which parts of this code to parallelize on shared memory. For the CPU, this is usually done using OpenMP and special pragmas to the compiler. For CUDA, parallelization is done in a completely different way. 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.
Document Type: Article
Language: Russian
Citation: M. M. Krasnov, O. B. Feodoritova, “Using the functional programming library for solving numerical problems on graphics accelerators with cuda technology”, Proceedings of ISP RAS, 33:5 (2021), 167–180
Citation in format AMSBIB
\Bibitem{KraFeo21}
\by M.~M.~Krasnov, O.~B.~Feodoritova
\paper Using the functional programming library for solving numerical problems on graphics accelerators with cuda technology
\jour Proceedings of ISP RAS
\yr 2021
\vol 33
\issue 5
\pages 167--180
\mathnet{http://mi.mathnet.ru/tisp634}
\crossref{https://doi.org/10.15514/ISPRAS-2021-33(5)-10}
Linking options:
  • https://www.mathnet.ru/eng/tisp634
  • https://www.mathnet.ru/eng/tisp/v33/i5/p167
  • This publication is cited in the following 1 articles:
    Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:26
    Full-text PDF :17
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024