Standard

Heterogeneous architectures programming library. / Kirgizov, Grigoriy Valerievich; Kirilenko, Iakov Aleksandrovich.

в: Труды института системного программирования РАН, Том 30, № 4, 2018, стр. 45-62.

Результаты исследований: Научные публикации в периодических изданияхстатьяРецензирование

Harvard

Kirgizov, GV & Kirilenko, IA 2018, 'Heterogeneous architectures programming library', Труды института системного программирования РАН, Том. 30, № 4, стр. 45-62.

APA

Kirgizov, G. V., & Kirilenko, I. A. (2018). Heterogeneous architectures programming library. Труды института системного программирования РАН, 30(4), 45-62.

Vancouver

Kirgizov GV, Kirilenko IA. Heterogeneous architectures programming library. Труды института системного программирования РАН. 2018;30(4):45-62.

Author

Kirgizov, Grigoriy Valerievich ; Kirilenko, Iakov Aleksandrovich. / Heterogeneous architectures programming library. в: Труды института системного программирования РАН. 2018 ; Том 30, № 4. стр. 45-62.

BibTeX

@article{cc325d33646f40ba9dd6ed62b0152ab1,
title = "Heterogeneous architectures programming library",
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.",
author = "Kirgizov, {Grigoriy Valerievich} and Kirilenko, {Iakov Aleksandrovich}",
year = "2018",
language = "English",
volume = "30",
pages = "45--62",
journal = "Труды института системного программирования РАН",
issn = "2079-8156",
publisher = "Институт системного программирования им. В.П.Иванникова РАН",
number = "4",

}

RIS

TY - JOUR

T1 - Heterogeneous architectures programming library

AU - Kirgizov, Grigoriy Valerievich

AU - Kirilenko, Iakov Aleksandrovich

PY - 2018

Y1 - 2018

N2 - 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.

AB - 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.

UR - https://elibrary.ru/item.asp?id=35544581

M3 - Article

VL - 30

SP - 45

EP - 62

JO - Труды института системного программирования РАН

JF - Труды института системного программирования РАН

SN - 2079-8156

IS - 4

ER -

ID: 36982391