vollo_trees_compiler
Bindings for the Vollo tree compiler.
This module provides functions to compile models to vollo-trees programs, and to evaluate these programs.
- class vollo_trees_compiler.Config
- Hardware configuration for compiling a forest to a program - max_input_features
- Maximum number of input features 
 - max_tree_depth
- Maximum depth of a tree 
 - num_tree_units
- Number of tree units 
 - unit_ram_depth
- Maximum number of nodes in each tree unit 
 
- class vollo_trees_compiler.Forest
- An internal representation of a forest of decision trees - static from_onnx(path: str) Forest
- Convert an ONNX model with a TreeEnsembleRegressor (https://onnx.ai/onnx/operators/onnx_aionnxml_TreeEnsembleRegressor.html) node to a vollo-trees - Forestrepresentation
 - max_depth() int
- Get the maximum depth of the trees in the forest 
 - num_input_features() int
- Get the number of input features expected by the forest 
 - num_trees() int
- Get the number of trees in the forest 
 - to_program_bf16(config: Config) ProgramBf16
- Compile the forest to a program where nodes have bf16 comparators, and the inputs and output are bf16 
 - to_program_f32(config: Config) ProgramF32
- Compile the forest to a program where nodes have f32 comparators, and the inputs and output are f32 
 
- class vollo_trees_compiler.ProgramF32
- A compiled program where comparators and leaves are float32 values - eval(input: List[float], model_ix: int = 0) float
- Evaluate the program on a given input 
 - eval_with_cycle_estimate(&self, input: Vec<f32>, model_ix: int = 0) -> (f32, int)
- Evaluate a program on a given input, and return the result along with the estimated number of cycles For a worst-case cycle count estimate see - pessimistic_cycle_estimate().
 - static load(input_path: str) ProgramF32
- Load the program from the specified file path 
 - pessimistic_cycle_estimate(model_ix: int = 0) int
- Return a pessimistic estimate of the number of cycles required to calculate the result of an inference. This is calculated based on the maximum length branch in each tree. For an input-based cycle count see - eval_with_cycle_estimate().
 - save(output_path: str)
- Save the program to the specified file path 
 
- class vollo_trees_compiler.ProgramBf16
- A compiled program where comparators and leaves are bf16 valuess - eval(input: List[float], model_ix: int = 0) float
- Evaluate the program on a given input. - The input float32 values are converted to bf16 before evaluating the program, and the result is converted from bf16 to float32 
 - eval_with_cycle_estimate(&self, input: Vec<f32>, model_ix: int = 0) -> (f32, int)
- Evaluate a program on a given input, and return the result along with the estimated number of cycles. For a worst-case cycle count estimate see - pessimistic_cycle_estimate().
 - static load(input_path: str) ProgramBf16
- Load the program from the specified file path 
 - pessimistic_cycle_estimate(model_ix: int = 0) int
- Return a pessimistic estimate of the number of cycles required to calculate the result of an inference. This is calculated based on the maximum length branch in each tree. For an input-based cycle count see - eval_with_cycle_estimate().
 - save(output_path: str)
- Save the program to the specified file path