From f92cfbab510903eb2bb6d09a77024c34e7e09310 Mon Sep 17 00:00:00 2001 From: xadupre Date: Fri, 26 Sep 2025 18:54:55 +0200 Subject: [PATCH 1/2] Upgrade version to 0.7.13 --- CHANGELOGS.rst | 3 +++ _doc/index.rst | 1 + onnx_diagnostic/__init__.py | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOGS.rst b/CHANGELOGS.rst index d3a2d2bf..569ef18d 100644 --- a/CHANGELOGS.rst +++ b/CHANGELOGS.rst @@ -1,6 +1,9 @@ Change Logs =========== +0.7.13 +++++++ + 0.7.12 ++++++ diff --git a/_doc/index.rst b/_doc/index.rst index 3c1af76a..f41c19ba 100644 --- a/_doc/index.rst +++ b/_doc/index.rst @@ -239,6 +239,7 @@ The function replaces dynamic dimensions defined as strings by Older versions ============== +* `0.7.13 <../v0.7.13/index.html>`_ * `0.7.12 <../v0.7.12/index.html>`_ * `0.7.11 <../v0.7.11/index.html>`_ * `0.6.3 <../v0.6.3/index.html>`_ diff --git a/onnx_diagnostic/__init__.py b/onnx_diagnostic/__init__.py index 821b7cff..073fdf20 100644 --- a/onnx_diagnostic/__init__.py +++ b/onnx_diagnostic/__init__.py @@ -3,5 +3,5 @@ Functions, classes to dig into a model when this one is right, slow, wrong... """ -__version__ = "0.7.12" +__version__ = "0.7.13" __author__ = "Xavier Dupré" From da786edaecf95a8e359769c2f7289b3ec84f247c Mon Sep 17 00:00:00 2001 From: xadupre Date: Sat, 27 Sep 2025 00:01:05 +0200 Subject: [PATCH 2/2] fix unittest --- .../ut_xrun_doc/test_check_ort_float16.py | 115 +++++++++++++----- 1 file changed, 84 insertions(+), 31 deletions(-) diff --git a/_unittests/ut_xrun_doc/test_check_ort_float16.py b/_unittests/ut_xrun_doc/test_check_ort_float16.py index 1914235b..eaa38576 100644 --- a/_unittests/ut_xrun_doc/test_check_ort_float16.py +++ b/_unittests/ut_xrun_doc/test_check_ort_float16.py @@ -19,7 +19,9 @@ def common_scatter(self, opset, providers, dtype, reduction, expected_names): import onnxruntime from onnxruntime import InferenceSession, SessionOptions - op_type = "ScatterElements" if "ScatterElements" in expected_names else "ScatterND" + op_type = ( + "ScatterElements" if "ScatterElements" in str(expected_names) else "ScatterND" + ) ndim = 2 if op_type == "ScatterElements" else 3 assert dtype in (np.float16, np.float32) @@ -62,7 +64,10 @@ def common_scatter(self, opset, providers, dtype, reduction, expected_names): # onnxruntime might introduces some intermediate cast. if pv.Version(onnxruntime.__version__) <= pv.Version("1.17.1"): raise unittest.SkipTest("float16 not supported on cpu") - self.assertEqual(expected_names, names) + if isinstance(expected_names, list): + self.assertEqual(names, expected_names) + else: + self.assertIn(names, expected_names) sonx = str(onx).replace(" ", "").replace("\n", "|") sexp = 'op_type:"Cast"|attribute{|name:"to"|type:INT|i:%d|}' % itype @@ -127,19 +132,37 @@ def common_scatter(self, opset, providers, dtype, reduction, expected_names): (row.get("args_provider", None), row.get("args_op_name", None)) ) short_list = [(a, b) for a, b in exe_providers if a is not None and b is not None] - self.assertEqual(short_list, [("CUDAExecutionProvider", o) for o in expected_names]) + if isinstance(expected_names, list): + self.assertEqual( + short_list, [("CUDAExecutionProvider", o) for o in expected_names] + ) + else: + self.assertIn( + short_list, + tuple([("CUDAExecutionProvider", o) for o in en] for en in expected_names), + ) @requires_cuda() @ignore_warnings(DeprecationWarning) @requires_onnxruntime("1.23") def test_scatterels_cuda(self): - default_value = [ - "Cast", - # "MemcpyToHost", - "ScatterElements", - # "MemcpyFromHost", - "Sub", - ] + default_value = ( + [ + "Cast", + # "MemcpyToHost", + "ScatterElements", + # "MemcpyFromHost", + "Sub", + ], + [ + "Cast", + "Cast", + # "MemcpyToHost", + "ScatterElements", + # "MemcpyFromHost", + "Sub", + ], + ) expected = { (np.float32, "none"): default_value, (np.float16, "none"): default_value, @@ -165,13 +188,23 @@ def test_scatterels_cuda(self): @requires_cuda() @ignore_warnings(DeprecationWarning) def test_scatternd_cuda(self): - default_value = [ - "Cast", - # "MemcpyToHost", - "ScatterND", - # "MemcpyFromHost", - "Sub", - ] + default_value = ( + [ + "Cast", + # "MemcpyToHost", + "ScatterND", + # "MemcpyFromHost", + "Sub", + ], + [ + "Cast", + "Cast", + # "MemcpyToHost", + "ScatterND", + # "MemcpyFromHost", + "Sub", + ], + ) expected = { (np.float32, "none"): default_value, (np.float16, "none"): default_value, @@ -198,13 +231,23 @@ def test_scatterels_cpu(self): "ScatterElements", "Sub", ] - default_value_16 = [ - "Cast", - "ScatterElements", - "Cast", - "Sub", - "Cast", - ] + default_value_16 = ( + [ + "Cast", + "ScatterElements", + "Cast", + "Sub", + "Cast", + ], + [ + "Cast", + "Cast", + "ScatterElements", + "Cast", + "Sub", + "Cast", + ], + ) expected = { (np.float32, "none"): default_value, (np.float16, "none"): default_value_16, @@ -231,13 +274,23 @@ def test_scatternd_cpu(self): "ScatterND", "Sub", ] - default_value_16 = [ - "Cast", - "ScatterND", - "Cast", - "Sub", - "Cast", - ] + default_value_16 = ( + [ + "Cast", + "ScatterND", + "Cast", + "Sub", + "Cast", + ], + [ + "Cast", + "Cast", + "ScatterND", + "Cast", + "Sub", + "Cast", + ], + ) expected = { (np.float32, "none"): default_value, (np.float16, "none"): default_value_16,