Vectorized Decision Tree Inference via Parallel Matrix Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing machine learning algorithms for decision trees, such as random forest and gradient boosting, are resource-intensive and time-consuming due to inefficient utilization of vector registers, necessitating improved processing techniques.

Innovation Solution

Utilize vector processing, multithreading, and multiprocessing to process disjoint subsets of matrix elements in parallel, with adaptive determination of subset sizes and termination conditions, allowing leaf nodes to loop as split nodes until a global termination condition is met, optimizing the processing of decision trees.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional machine learning algorithms for decision trees are used, then the processing can be completed, but the resource consumption is high and processing time is long

Engineering Contradiction:
Improveprocessing speedVSAvoidresource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments the decision tree processing into multiple disjoint subsets of matrix elements, where each subset can be processed independently and in parallel. This segmentation enables the system to utilize multiple vector registers simultaneously, thereby increasing processing throughput while maintaining efficient resource utilization. The matrix elements are divided based on compatibility with vector register sizes and processing requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from sequential scalar processing to parallel vector processing by exploiting the vector register dimension. Multiple matrix elements are processed simultaneously along the vector dimension, effectively adding a parallelism dimension to the processing architecture. This allows the system to achieve higher productivity without proportionally increasing resource consumption.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If vector processing is used to process more matrix elements in parallel, then processing speed increases, but the complexity of managing vector registers and termination conditions increases

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidvector register management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary actions by pre-determining the partitioning of matrix elements into disjoint subsets that are compatible with vector register sizes. Termination conditions for each subset are pre-established based on the decision tree structure and vector processing requirements. This preliminary preparation simplifies the actual vector processing execution, reducing the operational complexity despite the increased parallelism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic adjustment mechanisms where the partitioning of matrix elements and the selection of vector register configurations can be adapted based on the specific characteristics of the decision tree and input data. This dynamic approach allows the system to optimize the balance between parallel processing throughput and management complexity for different scenarios.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12443891B2Vector processing of decision trees to form inferences
Publication Date: 2025.10.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12443891B2 patent drawing
  • US12443891B2 patent drawing
  • US12443891B2 patent drawing

AI summary

A method and computer program product for performing machine learning inferences are disclosed. A set of input records to be processed by decision trees is selected, and the decision trees are run. Running the decision trees includes identifying operations to be performed as matrix elements, wherein the matrix elements correspond to the input records. Running the decision trees also includes using vector processing to process disjoint subsets of the matrix elements based on vector instructions operating on data stored in vector registers, such that the matrix elements of each subset of the disjoint subsets are processed in parallel. All leaf nodes of each decision tree involved are processed as split nodes looping to themselves until a termination condition is met. The termination condition is met if at least one of the leaf nodes has been reached for each of the decision trees involved.