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, 2018, Volume 30, Issue 4, Pages 45–62
DOI: https://doi.org/10.15514/ISPRAS-2018-30(4)-3
(Mi tisp346)
 

Heterogeneous architectures programming library

G. V. Kirgizov, I. A. Kirilenko

Saint Petersburg State University
References:
Abstract: Embedded platforms with heterogeneous architecture, considered in this paper, consist of one primary and one or more secondary processors. Development of software systems for these platforms poses substantial difficulties, requiring a distinct set of tools for each constituent of the heterogeneous system. It also makes achieving high efficiency the more difficult task. Moreover, many use cases of embedded systems require runtime configuration, that cannot be easily achieved with usual approaches. This work presents a C-like metaprogramming DSL and a library that provides a unified interface for programming secondary processors of heterogeneous systems with this DSL. Together they help to resolve aforementioned problems. The DSL is embedded in C++ and allows to freely manipulate its expressions and thus embodies the idea of generative programming, when the expressive power of high-level C++ language is used to compose pieces of low-level DSL code. Together with other features, such as generic DSL functions, it makes the DSL a flexible and powerful tool for dynamic code generation. The approach behind the library is dynamic compilation: the DSL is translated to LLVM IR and then compiled to native executable code at runtime. It opens a possibility of dynamic code optimizations, e.g. runtime function specialization for specific parameters known only at runtime. Flexible library architecture allows simple extensibility to any target platform supported by LLVM. At the end of the paper a system approbation on different platforms and a demonstration of dynamic optimizations capability are presented.
Keywords: metaprogramming, code generation, embedded DSL, heterogeneous systems, embedded systems.
Bibliographic databases:
Document Type: Article
Language: English
Citation: G. V. Kirgizov, I. A. Kirilenko, “Heterogeneous architectures programming library”, Proceedings of ISP RAS, 30:4 (2018), 45–62
Citation in format AMSBIB
\Bibitem{KirKir18}
\by G.~V.~Kirgizov, I.~A.~Kirilenko
\paper Heterogeneous architectures programming library
\jour Proceedings of ISP RAS
\yr 2018
\vol 30
\issue 4
\pages 45--62
\mathnet{http://mi.mathnet.ru/tisp346}
\crossref{https://doi.org/10.15514/ISPRAS-2018-30(4)-3}
\elib{https://elibrary.ru/item.asp?id=35544581}
Linking options:
  • https://www.mathnet.ru/eng/tisp346
  • https://www.mathnet.ru/eng/tisp/v30/i4/p45
  • 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:128
    Full-text PDF :49
    References:20
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024