| # mypy: ignore-errors |
| |
| # This backend is maintained by ONNX team. To direct issues |
| # to the right people, please tag related GitHub issues with `module: onnx`. |
| # |
| # Maintainers' Github IDs: wschin, thiagocrepaldi, BowenBao, abock |
| from torch.onnx._internal.onnxruntime import ( |
| is_onnxrt_backend_supported, |
| torch_compile_backend, |
| ) |
| from .registry import register_backend |
| |
| |
| def has_onnxruntime(): |
| # FIXME(abock): update test/dynamo/test_backends.py to call is_onnxrt_backend_supported() |
| return is_onnxrt_backend_supported() |
| |
| |
| if is_onnxrt_backend_supported(): |
| register_backend(name="onnxrt", compiler_fn=torch_compile_backend) |
| else: |
| |
| def information_displaying_backend(*args, **kwargs): |
| raise ImportError( |
| "onnxrt is not registered as a backend. " |
| "Please make sure all dependencies such as " |
| "numpy, onnx, onnxscript, and onnxruntime-training are installed. " |
| "Suggested procedure to fix dependency problem:\n" |
| " (1) pip or conda install numpy onnx onnxscript onnxruntime-training.\n" |
| " (2) Open a new python terminal.\n" |
| " (3) Call the API `torch.onnx.is_onnxrt_backend_supported()`:\n" |
| " (4) If it returns `True`, then you can use `onnxrt` backend.\n" |
| " (5) If it returns `False`, please execute the package importing section in " |
| "torch/onnx/_internal/onnxruntime.py under pdb line-by-line to see which import fails." |
| ) |
| |
| register_backend(name="onnxrt", compiler_fn=information_displaying_backend) |