From 80863cb0f88d51a96ea56dd41c05953c3baba8cb Mon Sep 17 00:00:00 2001 From: zylo117 Date: Fri, 10 Jan 2025 10:41:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=A8=A1=E5=9E=8B=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=E4=BC=9A=E6=B7=BB=E5=8A=A0=E7=9B=AE=E5=89=8D=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=E5=88=B0=E5=85=A8=E5=B1=80=E5=8F=98=E9=87=8F=EF=BC=8C?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E9=80=80=E5=87=BA=E6=97=B6=EF=BC=8C=E5=85=88?= =?UTF-8?q?=E5=AF=B9=E6=89=80=E6=9C=89=E5=AE=9E=E4=BE=8B=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?unload=E5=86=8Dfinalize?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- axengine/_axclrt.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/axengine/_axclrt.py b/axengine/_axclrt.py index 053690e..fc328b7 100644 --- a/axengine/_axclrt.py +++ b/axengine/_axclrt.py @@ -23,6 +23,7 @@ _is_axclrt_initialized = False _is_axclrt_engine_initialized = False +_all_model_instances = [] def _transform_dtype(dtype): @@ -55,6 +56,8 @@ def _initialize_axclrt(): def _finalize_axclrt(): global _is_axclrt_initialized, _is_axclrt_engine_initialized + for model_instance in _all_model_instances: + model_instance._unload() if _is_axclrt_engine_initialized: axclrt_lib.axclrtEngineFinalize() _is_axclrt_engine_initialized = False @@ -167,8 +170,11 @@ def __init__( # prepare io self._io = self._prepare_io() + _all_model_instances.append(self) + def __del__(self): self._unload() + _all_model_instances.remove(self) def _load(self, path_or_bytes): # model buffer, almost copied from onnx runtime @@ -215,7 +221,7 @@ def _unload(self): axclrt_lib.axclrtFree(dev_prt[0]) axclrt_lib.axclrtEngineDestroyIO(self._io) self._io = None - if self._model_id[0] is not None: + if self._model_id[0] is not None and self._model_id[0] != 0: axclrt_lib.axclrtEngineUnload(self._model_id[0]) self._model_id[0] = 0