Vectorized Decision Tree Inference via Parallel Matrix Processing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


