Skip to content

Commit f6efc7c

Browse files
authored
[CI] Fix test errors on windows (#2103)
Also removed obsolete tests in graph building. The `test_save_initializer_to_files_for_large_model` test takes a very long time (slightly less than 1min) to run.
1 parent b7e5a10 commit f6efc7c

File tree

2 files changed

+2
-77
lines changed

2 files changed

+2
-77
lines changed

onnxscript/function_libs/torch_lib/graph_building/graph_building_test.py

Lines changed: 0 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from __future__ import annotations
77

88
import os
9-
import sys
109
import unittest
1110

1211
import torch
@@ -15,7 +14,6 @@
1514
import onnxscript.testing
1615
from onnxscript import FLOAT, evaluator
1716
from onnxscript import opset18 as op
18-
from onnxscript._internal import version_utils
1917
from onnxscript.function_libs.torch_lib import graph_building, ops
2018

2119
IS_WINDOWS = os.name == "nt"
@@ -157,79 +155,5 @@ def test_add_initializer_allows_adding_the_same_tensor_twice_using_same_name(sel
157155
graph.add_initializer("x", x_tensor)
158156

159157

160-
class _MLP(torch.nn.Module):
161-
def __init__(self, input_size, hidden_size, output_size):
162-
super().__init__()
163-
self.fc1 = torch.nn.Linear(input_size, hidden_size)
164-
self.fc2 = torch.nn.Linear(hidden_size, output_size)
165-
self.relu = torch.nn.ReLU()
166-
167-
def forward(self, x):
168-
out = self.fc1(x)
169-
out = self.relu(out)
170-
out = self.fc2(out)
171-
return out
172-
173-
174-
@unittest.skipIf(
175-
IS_WINDOWS and version_utils.torch_older_than("2.3"),
176-
"dynamo_export not supported on Windows in PyTorch<2.3",
177-
)
178-
@unittest.skipIf(
179-
sys.version_info > (3, 11),
180-
"dynamo_export not supported due to torch.compile not functional for python>3.11",
181-
)
182-
class TestModelSaving(unittest.TestCase):
183-
def test_save_initializer_to_files_for_large_model(self):
184-
# # of model parameters:
185-
# input_size x hidden_size + hidden_size +
186-
# hidden_size x output_size + output_size
187-
# ~= 3GB below
188-
batch_size, input_size, hidden_size, output_size = 1, 4, 50000000, 10
189-
model = _MLP(input_size, hidden_size, output_size)
190-
x = torch.randn(batch_size, input_size)
191-
192-
model_proto = torch.onnx.dynamo_export(model, x).model_proto
193-
# Assert model is larger than 2GB (~=3GB)
194-
self.assertGreater(model_proto.ByteSize(), 2**31)
195-
196-
def test_input_output_and_initializer_are_not_stored_in_value_info(self):
197-
batch_size, input_size, hidden_size, output_size = 1, 4, 5, 10
198-
model = _MLP(input_size, hidden_size, output_size)
199-
x = torch.randn(batch_size, input_size)
200-
201-
model_proto = torch.onnx.dynamo_export(model, x).model_proto
202-
v_names = {v.name for v in model_proto.graph.value_info}
203-
204-
for i in model_proto.graph.input:
205-
self.assertNotIn(i.name, v_names)
206-
for o in model_proto.graph.output:
207-
self.assertNotIn(o.name, v_names)
208-
for i in model_proto.graph.initializer:
209-
self.assertNotIn(i.name, v_names)
210-
211-
@unittest.skipIf(
212-
not version_utils.torch_older_than("2.4"),
213-
"PyTorch 2.4-preview optimizes the functions away",
214-
)
215-
def test_experimental_function_value_info_are_stored_in_graph_value_info(self):
216-
batch_size, input_size, hidden_size, output_size = 1, 4, 5, 10
217-
model = _MLP(input_size, hidden_size, output_size)
218-
x = torch.randn(batch_size, input_size)
219-
220-
model_proto = torch.onnx.dynamo_export(model, x).model_proto
221-
v_names = {v.name for v in model_proto.graph.value_info}
222-
torch_functions = [
223-
f for f in model_proto.functions if f.domain.startswith("pkg.torch")
224-
]
225-
self.assertNotEqual(len(torch_functions), 0)
226-
for f in torch_functions:
227-
for n in f.node:
228-
for i in n.input:
229-
self.assertIn(f"{f.domain}::{f.name}/{i}", v_names)
230-
for o in n.output:
231-
self.assertIn(f"{f.domain}::{f.name}/{o}", v_names)
232-
233-
234158
if __name__ == "__main__":
235159
unittest.main()

onnxscript/ir/_io_test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ def test_load(self):
7373
def test_save_with_external_data_does_not_modify_model(self):
7474
model = _create_simple_model_with_initializers()
7575
self.assertIsInstance(model.graph.initializers["initializer_0"].const_value, ir.Tensor)
76-
with tempfile.TemporaryDirectory() as tmpdir:
76+
# There may be clean up errors on Windows, so we ignore them
77+
with tempfile.TemporaryDirectory(ignore_cleanup_errors=True) as tmpdir:
7778
path = os.path.join(tmpdir, "model.onnx")
7879
external_data_file = "model.data"
7980
_io.save(model, path, external_data=external_data_file, size_threshold_bytes=0)

0 commit comments

Comments
 (0)