A lot of work is spent on low-level optimization for regular computations; from instruction scheduling and cache-aware design to intensive use of SIMD instructions. Meanwhile, irregular applications, especially pointer intensive ones, are often only optimized at algorithm or compilation levels, since not so much hardware or dedicated instructions are available for this kind of code. In this paper, we investigate a low-level optimization of associative arrays intensively used in complex applications such as dynamic compilers, using self-modifying code. We propose to encode Red-Black trees, widely used to implement asssociative arrays, as specialized binary code rather than data, in order to accelerate the tree traversal by taking advantage of the underlying hardware: program cache, processor fetch and decode. We show a 45% gain on an ARM Cortex-A9 processor and that we transfer most of the data-cache pressure to the program-cache, motivating future work on dedicated hardware.
Beschreibung
Code specialization for red-black tree management algorithms
%0 Conference Paper
%1 Carbon:2013:CSR:2484904.2484910
%A Carbon, Alexandre
%A Lhuillier, Yves
%A Charles, Henri-Pierre
%B Proceedings of the 3rd International Workshop on Adaptive Self-Tuning Computing Systems
%C New York, NY, USA
%D 2013
%I ACM
%K compiler idea optimization
%P 6:1--6:3
%R 10.1145/2484904.2484910
%T Code specialization for red-black tree management algorithms
%U http://doi.acm.org/10.1145/2484904.2484910
%X A lot of work is spent on low-level optimization for regular computations; from instruction scheduling and cache-aware design to intensive use of SIMD instructions. Meanwhile, irregular applications, especially pointer intensive ones, are often only optimized at algorithm or compilation levels, since not so much hardware or dedicated instructions are available for this kind of code. In this paper, we investigate a low-level optimization of associative arrays intensively used in complex applications such as dynamic compilers, using self-modifying code. We propose to encode Red-Black trees, widely used to implement asssociative arrays, as specialized binary code rather than data, in order to accelerate the tree traversal by taking advantage of the underlying hardware: program cache, processor fetch and decode. We show a 45% gain on an ARM Cortex-A9 processor and that we transfer most of the data-cache pressure to the program-cache, motivating future work on dedicated hardware.
%@ 978-1-4503-2022-1
@inproceedings{Carbon:2013:CSR:2484904.2484910,
abstract = {A lot of work is spent on low-level optimization for regular computations; from instruction scheduling and cache-aware design to intensive use of SIMD instructions. Meanwhile, irregular applications, especially pointer intensive ones, are often only optimized at algorithm or compilation levels, since not so much hardware or dedicated instructions are available for this kind of code. In this paper, we investigate a low-level optimization of associative arrays intensively used in complex applications such as dynamic compilers, using self-modifying code. We propose to encode Red-Black trees, widely used to implement asssociative arrays, as specialized binary code rather than data, in order to accelerate the tree traversal by taking advantage of the underlying hardware: program cache, processor fetch and decode. We show a 45% gain on an ARM Cortex-A9 processor and that we transfer most of the data-cache pressure to the program-cache, motivating future work on dedicated hardware.},
acmid = {2484910},
added-at = {2013-05-22T09:45:38.000+0200},
address = {New York, NY, USA},
articleno = {6},
author = {Carbon, Alexandre and Lhuillier, Yves and Charles, Henri-Pierre},
biburl = {https://www.bibsonomy.org/bibtex/2547424561fa8badcf4f0054a8293c788/gron},
booktitle = {Proceedings of the 3rd International Workshop on Adaptive Self-Tuning Computing Systems},
description = {Code specialization for red-black tree management algorithms},
doi = {10.1145/2484904.2484910},
interhash = {84964de87bd7977b4737469c5bd84025},
intrahash = {547424561fa8badcf4f0054a8293c788},
isbn = {978-1-4503-2022-1},
keywords = {compiler idea optimization},
location = {Berlin, Germany},
numpages = {3},
pages = {6:1--6:3},
publisher = {ACM},
series = {ADAPT '13},
timestamp = {2013-05-22T09:45:38.000+0200},
title = {Code specialization for red-black tree management algorithms},
url = {http://doi.acm.org/10.1145/2484904.2484910},
year = 2013
}