| # Owner(s): ["module: inductor"] |
| import importlib |
| import os |
| import sys |
| import unittest |
| |
| import torch |
| from torch.testing._internal.common_utils import IS_CI, IS_WINDOWS |
| |
| if IS_WINDOWS and IS_CI: |
| sys.stderr.write( |
| "Windows CI does not have necessary dependencies for test_xpu_basic yet\n" |
| ) |
| if __name__ == "__main__": |
| sys.exit(0) |
| raise unittest.SkipTest("requires sympy/functorch/filelock") |
| |
| importlib.import_module("filelock") |
| |
| pytorch_test_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) |
| sys.path.append(pytorch_test_dir) |
| from inductor.test_torchinductor import check_model_gpu, TestCase |
| |
| |
| # TODO: Remove this file. |
| # This is a temporary test case to test the base functionality of first Intel GPU Inductor integration. |
| # We are working on reuse and pass the test cases in test/inductor/* step by step. |
| # Will remove this file when pass full test in test/inductor/*. |
| |
| |
| class XpuBasicTests(TestCase): |
| common = check_model_gpu |
| device = "xpu" |
| |
| def test_add(self): |
| def fn(a, b): |
| return a + b |
| |
| self.common(fn, (torch.rand(2, 3, 16, 16), torch.rand(2, 3, 16, 16))) |
| |
| def test_sub(self): |
| def fn(a, b): |
| return a - b |
| |
| self.common(fn, (torch.rand(2, 3, 16, 16), torch.rand(2, 3, 16, 16))) |
| |
| def test_mul(self): |
| def fn(a, b): |
| return a * b |
| |
| self.common(fn, (torch.rand(2, 3, 16, 16), torch.rand(2, 3, 16, 16))) |
| |
| def test_div(self): |
| def fn(a, b): |
| return a / b |
| |
| self.common(fn, (torch.rand(2, 3, 16, 16), torch.rand(2, 3, 16, 16))) |
| |
| |
| if __name__ == "__main__": |
| from torch._dynamo.test_case import run_tests |
| from torch.testing._internal.inductor_utils import HAS_XPU |
| |
| if HAS_XPU: |
| run_tests(needs="filelock") |