[code-reflection] RFR: Explicit Arena passing to Tensor construction and Session execution [v7]

Maurizio Cimadamore mcimadamore at openjdk.org
Tue Mar 4 14:50:13 UTC 2025


On Tue, 4 Mar 2025 13:46:35 GMT, Adam Sotona <asotona at openjdk.org> wrote:

>> Holding `Arena` instances in `OnnxRuntime` and `Session` still cause memory leaks.
>> This patch allows to pass explicit arena for `Tensor` construction, `Session` construction and  each `Session` run.
>> Improved handling of `Session` life cycle allows to cache live `Session` instead of its protobuf model.
>
> Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Caching live sessions insted of proto models

cr-examples/onnx/src/main/java/oracle/code/onnx/OnnxRuntime.java line 362:

> 360:     }
> 361: 
> 362:     public MemorySegment createTensor(Arena arena, MemorySegment flatData, Tensor.ElementType elementType, long[] shape) {

good catch!

cr-examples/onnx/src/main/java/oracle/code/onnx/OnnxRuntime.java line 379:

> 377: 
> 378:     public long[] tensorShape(MemorySegment tensorAddr) {
> 379:         try (var arena = Arena.ofConfined()) {

Also, good catch!

-------------

PR Review Comment: https://git.openjdk.org/babylon/pull/337#discussion_r1979612096
PR Review Comment: https://git.openjdk.org/babylon/pull/337#discussion_r1979612427


More information about the babylon-dev mailing list