__init__.py 671 B

123456789101112131415161718192021222324
  1. import sys
  2. import torch
  3. import types
  4. class _XNNPACKEnabled:
  5. def __get__(self, obj, objtype):
  6. return torch._C._is_xnnpack_enabled()
  7. def __set__(self, obj, val):
  8. raise RuntimeError("Assignment not supported")
  9. class XNNPACKEngine(types.ModuleType):
  10. def __init__(self, m, name):
  11. super().__init__(name)
  12. self.m = m
  13. def __getattr__(self, attr):
  14. return self.m.__getattribute__(attr)
  15. enabled = _XNNPACKEnabled()
  16. # This is the sys.modules replacement trick, see
  17. # https://stackoverflow.com/questions/2447353/getattr-on-a-module/7668273#7668273
  18. sys.modules[__name__] = XNNPACKEngine(sys.modules[__name__], __name__)