Optimization of Decision Tree Evaluation Using SIMD Instructions
This work provides incremental improvements for users of decision forests, such as in document scoring, by optimizing CPU-based evaluation.
The paper tackled the problem of efficiently evaluating large decision forest models on big data by exploring the use of AVX instructions instead of SSE, resulting in a 35% speedup in binarization and a 20% speedup in tree application for ranking models.
Decision forest (decision tree ensemble) is one of the most popular machine learning algorithms. To use large models on big data, like document scoring with learning-to-rank models, we need to evaluate these models efficiently. In this paper, we explore MatrixNet, the ancestor of the popular CatBoost library. Both libraries use the SSE instruction set for scoring on CPU. This paper investigates the opportunities given by the AVX instruction set to evaluate models more efficiently. We achieved 35% speedup on the binarization stage (nodes conditions comparison), and 20% speedup on the trees apply stage on the ranking model.