mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-27 09:04:53 +08:00
The `usort` config in `pyproject.toml` has no effect due to a typo. Fixing the typo make `usort` do more and generate the changes in the PR. Except `pyproject.toml`, all changes are generated by `lintrunner -a --take UFMT --all-files`. Pull Request resolved: https://github.com/pytorch/pytorch/pull/127123 Approved by: https://github.com/Skylion007 ghstack dependencies: #127122
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
import benchmark_caffe2 as op_bench_c2
|
|
from benchmark_caffe2 import Caffe2BenchmarkBase # noqa: F401
|
|
|
|
import operator_benchmark as op_bench
|
|
from caffe2.python import core
|
|
|
|
|
|
"""Microbenchmarks for element-wise Add operator. Supports both Caffe2/PyTorch."""
|
|
|
|
# Configs for C2 add operator
|
|
add_long_configs = op_bench.cross_product_configs(
|
|
M=[8, 64, 128],
|
|
N=range(2, 10, 3),
|
|
K=[2**x for x in range(0, 3)],
|
|
dtype=["int", "float"],
|
|
tags=["long"],
|
|
)
|
|
|
|
|
|
add_short_configs = op_bench.config_list(
|
|
attrs=[
|
|
[8, 16, 32, "int"],
|
|
[16, 16, 64, "float"],
|
|
[64, 64, 128, "int"],
|
|
],
|
|
attr_names=["M", "N", "K", "dtype"],
|
|
tags=["short"],
|
|
)
|
|
|
|
|
|
class AddBenchmark(op_bench_c2.Caffe2BenchmarkBase):
|
|
def init(self, M, N, K, dtype):
|
|
self.input_one = self.tensor([M, N, K], dtype)
|
|
self.input_two = self.tensor([M, N, K], dtype)
|
|
self.output = self.tensor([M, N, K], dtype)
|
|
self.set_module_name("add")
|
|
|
|
def forward(self):
|
|
op = core.CreateOperator(
|
|
"Add", [self.input_one, self.input_two], self.output, **self.args
|
|
)
|
|
return op
|
|
|
|
|
|
op_bench_c2.generate_c2_test(add_long_configs + add_short_configs, AddBenchmark)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
op_bench.benchmark_runner.main()
|