Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 1.5.6

### Enhancement
- Make ONNX Runtime memory arena configurable via `ONNX_DISABLE_MEMORY_ARENA` env var (default: enabled). Set to `1` to trade ~15% inference latency for ~209 MB idle memory savings per session.

## 1.5.4

### Enhancement
Expand Down
2 changes: 1 addition & 1 deletion unstructured_inference/__version__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "1.5.4" # pragma: no cover
__version__ = "1.5.6" # pragma: no cover
11 changes: 11 additions & 0 deletions unstructured_inference/models/detectron2onnx.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@
download_if_needed_and_get_local_path,
)

_ONNX_DISABLE_MEMORY_ARENA = os.environ.get("ONNX_DISABLE_MEMORY_ARENA", "").strip().lower() in (
"1",
"true",
)

onnxruntime.set_default_logger_severity(logger_onnx.getEffectiveLevel())

DEFAULT_LABEL_MAP: Final[Dict[int, str]] = {
Expand Down Expand Up @@ -115,8 +120,14 @@ def initialize(
]
providers = [provider for provider in ordered_providers if provider in available_providers]

sess_options = onnxruntime.SessionOptions()
if _ONNX_DISABLE_MEMORY_ARENA:
sess_options.enable_mem_pattern = False
sess_options.enable_cpu_mem_arena = False

self.model = onnxruntime.InferenceSession(
model_path,
sess_options=sess_options,
providers=providers,
)
self.model_path = model_path
Expand Down
13 changes: 13 additions & 0 deletions unstructured_inference/models/yolox.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
# https://github.com/Megvii-BaseDetection/YOLOX/blob/237e943ac64aa32eb32f875faa93ebb18512d41d/yolox/data/data_augment.py
# https://github.com/Megvii-BaseDetection/YOLOX/blob/ac379df3c97d1835ebd319afad0c031c36d03f36/yolox/utils/demo_utils.py

import os

import cv2
import numpy as np
import onnxruntime
Expand All @@ -20,6 +22,11 @@
download_if_needed_and_get_local_path,
)

_ONNX_DISABLE_MEMORY_ARENA = os.environ.get("ONNX_DISABLE_MEMORY_ARENA", "").strip().lower() in (
"1",
"true",
)

YOLOX_LABEL_MAP = {
0: ElementType.CAPTION,
1: ElementType.FOOTNOTE,
Expand Down Expand Up @@ -80,8 +87,14 @@ def initialize(self, model_path: str, label_map: dict):
]
providers = [provider for provider in ordered_providers if provider in available_providers]

sess_options = onnxruntime.SessionOptions()
if _ONNX_DISABLE_MEMORY_ARENA:
sess_options.enable_mem_pattern = False
sess_options.enable_cpu_mem_arena = False

self.model = onnxruntime.InferenceSession(
model_path,
sess_options=sess_options,
providers=providers,
)

Expand Down
Loading