builder_names.py 1.1 KB

12345678910111213141516171819202122232425
  1. import sys
  2. import os
  3. import pkgutil
  4. import importlib
  5. # List of all available op builders from deepspeed op_builder
  6. op_builder_dir = "deepspeed.ops.op_builder"
  7. op_builder_module = importlib.import_module(op_builder_dir)
  8. __op_builders__ = []
  9. this_module = sys.modules[__name__]
  10. # reflect all builder names into variable definition such as 'TransformerBuilder = "TransformerBuilder"'
  11. for _, module_name, _ in pkgutil.iter_modules([os.path.dirname(op_builder_module.__file__)]):
  12. # avoid self references
  13. if module_name != 'all_ops' and module_name != 'builder' and module_name != 'builder_names':
  14. module = importlib.import_module("{}.{}".format(op_builder_dir, module_name))
  15. for member_name in module.__dir__():
  16. if member_name.endswith(
  17. 'Builder'
  18. ) and member_name != "OpBuilder" and member_name != "CUDAOpBuilder":
  19. # assign builder name to variable with same name
  20. # the following is equivalent to i.e. TransformerBuilder = "TransformerBuilder"
  21. this_module.__dict__[member_name] = member_name