3 from __future__
import absolute_import
4 from __future__
import division
5 from __future__
import print_function
6 from __future__
import unicode_literals
13 from six
import add_metaclass
20 logger = logging.getLogger(os.path.basename(__file__))
21 logger.setLevel(logging.INFO)
27 def __new__(metacls, name, bases, class_dict):
28 cls = type.__new__(metacls, name, bases, class_dict)
29 if name !=
'Benchmark':
30 ALL_BENCHMARKS[name] = cls
34 @add_metaclass(BenchmarkMeta)
41 print(
'Results ({}):'.format(type(self).__name__))
42 print(
'input size ms/iter')
43 print(
'------------------------------ -----------')
45 print(
'{!s:<30} {:.4f}'.format(size, ms))
50 op = core.CreateOperator(
56 for n
in itertools.imap(pow, itertools.cycle([10]), range(10)):
57 X = np.random.rand(n).astype(np.float32)
58 logger.info(
'Running benchmark for n = {}'.format(n))
59 ret = runOpBenchmark(gpu_do, op, inputs=[X])
60 self.results.append((n, ret[1]))
65 op = core.CreateOperator(
71 for n
in itertools.imap(pow, itertools.cycle([10]), range(10)):
72 X = np.random.rand(n).astype(np.float32)
73 logger.info(
'Running benchmark for n = {}'.format(n))
74 ret = runOpBenchmark(gpu_do, op, inputs=[X])
75 self.results.append((n, ret[1]))
80 op = core.CreateOperator(
86 for n
in itertools.imap(pow, itertools.cycle([10]), range(8)):
87 for D
in itertools.imap(pow, itertools.cycle([10]), range(3)):
88 X = np.random.rand(n, D).astype(np.float32)
89 label = (np.random.rand(n) * D).astype(np.int32)
90 logger.info(
'Running benchmark for n = {}, D= {}'.format(n, D))
91 ret = runOpBenchmark(gpu_do, op, inputs=[X, label])
92 self.results.append(((n, D), ret[1]))
96 parser = argparse.ArgumentParser(os.path.basename(__file__))
97 parser.add_argument(
'-b',
'--benchmarks', nargs=
'+',
98 default=ALL_BENCHMARKS.keys(),
99 help=
'benchmarks to run (default: %(default)s))')
100 return parser.parse_args()
106 benchmarks = [ALL_BENCHMARKS[name]()
for name
in args.benchmarks]
107 for bench
in benchmarks:
109 for bench
in benchmarks:
113 if __name__ ==
'__main__':
114 workspace.GlobalInit([
'caffe2',
'--caffe2_log_level=2'])