mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Pull Request resolved: https://github.com/pytorch/pytorch/pull/136964 Approved by: https://github.com/justinchuby, https://github.com/albanD
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
# Owner(s): ["oncall: jit"]
|
|
|
|
import os
|
|
import re
|
|
import tempfile
|
|
import unittest
|
|
|
|
import torch._lazy
|
|
import torch._lazy.ts_backend
|
|
import torch.nn as nn
|
|
from torch.testing._internal.common_utils import IS_WINDOWS, run_tests, TestCase
|
|
|
|
|
|
torch._lazy.ts_backend.init()
|
|
|
|
|
|
@unittest.skipIf(IS_WINDOWS, "To be fixed")
|
|
class DebugUtilTest(TestCase):
|
|
def _run_linear(self):
|
|
device = "lazy"
|
|
model = nn.Linear(5, 5).to(device)
|
|
output = model(torch.randn(1, 5).to(device)) # noqa: F841
|
|
torch._lazy.mark_step()
|
|
|
|
def test_get_python_frames(self):
|
|
# We only care about the first "Python Stacktrace" part of the saved
|
|
# graph. However, we cannot save the whole stack for comparison given
|
|
# it depends on a lot of things.
|
|
partial_graph = (
|
|
r"Python Stacktrace:.*"
|
|
r"mark_step \(.*/_lazy/__init__.py:[0-9]+\).*"
|
|
r"_run_linear \(.*lazy/test_debug_util.py:[0-9]+\).*"
|
|
r"test_get_python_frames \(.*lazy/test_debug_util.py:[0-9]+\)"
|
|
)
|
|
|
|
with tempfile.NamedTemporaryFile(mode="r+", encoding="utf-8") as graph_file:
|
|
os.environ["LTC_SAVE_TENSORS_FILE"] = graph_file.name
|
|
self._run_linear()
|
|
file = graph_file.read()
|
|
if re.search(partial_graph, file, re.DOTALL) is None:
|
|
print(file)
|
|
self.assertTrue(False)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_tests()
|