You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

gen_elemwise_each_mode.py 1.0 kB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import argparse
  4. import os
  5. from gen_elemwise_utils import ARITIES, MODES
  6. def main():
  7. parser = argparse.ArgumentParser(
  8. description="generate elemwise each mode",
  9. formatter_class=argparse.ArgumentDefaultsHelpFormatter,
  10. )
  11. parser.add_argument("output", help="output directory")
  12. args = parser.parse_args()
  13. with open(args.output, "w") as fout:
  14. w = lambda s: print(s, file=fout)
  15. w("// generated by gen_elemwise_each_mode.py")
  16. keys = list(MODES.keys())
  17. keys.sort()
  18. for (anum, ctype) in keys:
  19. w(
  20. "#define MEGDNN_FOREACH_ELEMWISE_MODE_{}_{}(cb) \\".format(
  21. ARITIES[anum], ctype
  22. )
  23. )
  24. for mode in MODES[(anum, ctype)]:
  25. w(" MEGDNN_ELEMWISE_MODE_ENABLE({}, cb) \\".format(mode))
  26. w("")
  27. print("generated each_mode.inl")
  28. os.utime(args.output)
  29. if __name__ == "__main__":
  30. main()