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 964 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import argparse
  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. parser.add_argument('output', help='output directory')
  11. args = parser.parse_args()
  12. with open(args.output, 'w') as fout:
  13. w = lambda s: print(s, file=fout)
  14. w('// generated by gen_elemwise_each_mode.py')
  15. keys = list(MODES.keys())
  16. keys.sort()
  17. for (anum, ctype) in keys:
  18. w('#define MEGDNN_FOREACH_ELEMWISE_MODE_{}_{}(cb) \\'.format(
  19. ARITIES[anum], ctype))
  20. for mode in MODES[(anum, ctype)]:
  21. w(' MEGDNN_ELEMWISE_MODE_ENABLE({}, cb) \\'.format(mode))
  22. w('')
  23. print('generated each_mode.inl')
  24. os.utime(args.output)
  25. if __name__ == '__main__':
  26. main()