Package com.helix.core.ml
Class OnnxSessionPool
java.lang.Object
com.helix.core.ml.OnnxSessionPool
- All Implemented Interfaces:
AutoCloseable
Thread-safe, high-throughput runtime session pool for in-process ONNX model inference.
Manages bounded pools of native OrtSession instances per registered model,
optimizing multi-threaded virtual-thread execution with zero lock contention, zero JNI leaks,
and atomic session draining upon dynamic model reload.
-
Constructor Summary
ConstructorsConstructorDescriptionOnnxSessionPool(ModelRegistry modelRegistry) OnnxSessionPool(ModelRegistry modelRegistry, int maxSessionsPerModel) OnnxSessionPool(ModelRegistry modelRegistry, OnnxFeatureExtractor featureExtractor, int maxSessionsPerModel) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()executeInference(String modelName, ExecutionContext context) Executes single-row in-process inference for the specified model and context.executeInference(String modelName, String outputTensorName, int outputIndex, ExecutionContext context) Executes single-row inference with explicit output tensor and index overrides.float[][]executeTensorInference(String modelName, String inputTensorName, float[][] inputMatrix, String outputTensorName) Executes tensor-based inference with raw 2D float matrix inputs and outputs.voidinvalidate(String modelName) Drains and invalidates cached sessions for a model.voidreloadModel(String modelName) Atomically reloads sessions for the named model, draining existing sessions.static floatrun(ExecutionContext context, String modelName) Static runtime bridge invoked by compiled ASM bytecode.static floatrun(ExecutionContext context, String modelName, String outputTensorName, int outputIndex) Static runtime bridge invoked by compiled ASM bytecode with explicit output tensor and index.
-
Constructor Details
-
OnnxSessionPool
-
OnnxSessionPool
-
OnnxSessionPool
public OnnxSessionPool(ModelRegistry modelRegistry, OnnxFeatureExtractor featureExtractor, int maxSessionsPerModel)
-
-
Method Details
-
run
Static runtime bridge invoked by compiled ASM bytecode.- Parameters:
context- runtime execution context containing input featuresmodelName- name of registered ONNX model- Returns:
- predicted probability score as primitive float
-
run
public static float run(ExecutionContext context, String modelName, String outputTensorName, int outputIndex) Static runtime bridge invoked by compiled ASM bytecode with explicit output tensor and index.- Parameters:
context- runtime execution context containing input featuresmodelName- name of registered ONNX modeloutputTensorName- target output tensor nameoutputIndex- class or output index- Returns:
- predicted probability score as primitive float
-
executeInference
Executes single-row in-process inference for the specified model and context.- Parameters:
modelName- name of the active registered modelcontext- runtime execution context containing required input features- Returns:
- populated inference result containing score, predicted class, and latency
-
executeInference
public OnnxInferenceResult executeInference(String modelName, String outputTensorName, int outputIndex, ExecutionContext context) Executes single-row inference with explicit output tensor and index overrides.- Parameters:
modelName- model nameoutputTensorName- target output tensor nameoutputIndex- class or output indexcontext- evaluation context- Returns:
- inference result
-
executeTensorInference
public float[][] executeTensorInference(String modelName, String inputTensorName, float[][] inputMatrix, String outputTensorName) Executes tensor-based inference with raw 2D float matrix inputs and outputs.- Parameters:
modelName- name of registered ONNX modelinputTensorName- optional input tensor name (or null to use model default)inputMatrix- 2D float matrix of inputsoutputTensorName- optional output tensor name (or null to use model default)- Returns:
- 2D float matrix of output logits
-
reloadModel
Atomically reloads sessions for the named model, draining existing sessions.- Parameters:
modelName- name of model to reload
-
invalidate
Drains and invalidates cached sessions for a model.- Parameters:
modelName- name of model to invalidate
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-