Register Your Forests: Decision Tree Ensemble Optimization by Explicit CPU Register Allocation

Daniel Biebert, Christian Hakert, Kuan-Hsun Chen, Jian-Jia Chen
4/10/2024
cs.LG

No confident code implementation found for this paper. 2 possible matches can be shown below.

Abstract

Bringing high-level machine learning models to efficient and well-suited machine implementations often invokes a bunch of tools, e.g.~code generators, compilers, and optimizers. Along such tool chains, abstractions have to be applied. This leads to not optimally used CPU registers. This is a shortcoming, especially in resource constrained embedded setups. In this work, we present a code generation approach for decision tree ensembles, which produces machine assembly code within a single conversion step directly from the high-level model representation. Specifically, we develop various approaches to effectively allocate registers for the inference of decision tree ensembles. Extensive evaluations of the proposed method are conducted in comparison to the basic realization of C code from the high-level machine learning model and succeeding compilation. The results show that the performance of decision tree ensemble inference can be significantly improved (by up to $\approx1.6\times$), if the methods are applied carefully to the appropriate scenario.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. 2 weaker matches are hidden by default — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{biebert2024register,
  title  = {Register Your Forests: Decision Tree Ensemble Optimization by Explicit CPU Register Allocation},
  author = {Daniel Biebert and Christian Hakert and Kuan-Hsun Chen and Jian-Jia Chen},
  year   = {2024},
  eprint = {2404.06846},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2404.06846v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2404.06846.svg)](https://codeofpaper.com/paper/2404.06846)

Discussion