Repository logo

Using Barrier Elision to Improve Transactional Code Generation

Loading...
Thumbnail Image

Advisor

Coadvisor

Graduate program

Undergraduate course

Journal Title

Journal ISSN

Volume Title

Publisher

Assoc Computing Machinery

Type

Article

Access right

Abstract

With chip manufacturers such as Intel, IBM, and ARM offering native support for transactional memory in their instruction set architectures, memory transactions are on the verge of being considered a genuine application tool rather than just an interesting research topic. Despite this recent increase in popularity on the hardware side of transactional memory (HTM), software support for transactional memory (STM) is still scarce and the only compiler with transactional support currently available, the GNU Compiler Collection (GCC), does not generate code that achieves desirable performance. For hybrid solutions of TM (HyTM), which are frameworks that leverage the best aspects of HTM and STM, the subpar performance of the software side, caused by inefficient compiler generated code, might forbid HyTM to offer optimal results. This article extends previous work focused exclusively on STM implementations by presenting a detailed analysis of transactional code generated by GCC in the context of HybridTM implementations. In particular, it builds on previous research of transactional memory support in the Clang/LLVM compiler framework, which is decoupled from any TM runtime, and presents the following novel contributions: (a) it shows that STM's performance overhead, due to an excessive amount of read and write barriers added by the compiler, also impacts the performance of HyTM systems; and (b) it reveals the importance of the previously proposed annotation mechanism to reduce the performance gap between HTM and STM in phased runtime systems. Furthermore, it shows that, by correctly using the annotations on just a few lines of code, it is possible to reduce the total number of instrumented barriers by 95% and to achieve speed-ups of up to 7x when compared to the original code generated by GCC and the Clang compiler.(1)

Description

Keywords

Transactional memory, Debugging

Language

English

Citation

Acm Transactions On Architecture And Code Optimization. New York: Assoc Computing Machinery, v. 19, n. 3, 23 p., 2022.

Related itens

Units

Item type:Unit,
Instituto de Geociências e Ciências Exatas
IGCE
Campus: Rio Claro


Departments

Undergraduate courses

Graduate programs

Other forms of access