Run: ``` isort ./python autopep8 -i --ignore E501,E701,E731 $(find ./python/ -name '*.py') ``` with an `.isort.cfg` and then clean up a few warts. This PR should be a no-op; the idea is that this is all boring whitespace changes, and any config file changes will be in a different change to make it easier to review.
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import argparse
|
|
import inspect
|
|
import os
|
|
import sys
|
|
|
|
import triton
|
|
|
|
|
|
def run_all(result_dir, names):
|
|
if not os.path.exists(result_dir):
|
|
os.makedirs(result_dir)
|
|
for mod in os.listdir(os.path.dirname(os.path.realpath(__file__))):
|
|
# skip non python files
|
|
if not mod.endswith('.py'):
|
|
continue
|
|
# skip file not in provided names
|
|
if names and names not in mod:
|
|
continue
|
|
# skip files that don't start with 'bench_'
|
|
if not mod.startswith('bench_'):
|
|
continue
|
|
print(f'running {mod}...')
|
|
mod = __import__(os.path.splitext(mod)[0])
|
|
benchmarks = inspect.getmembers(mod, lambda x: isinstance(x, triton.testing.Mark))
|
|
for name, bench in benchmarks:
|
|
curr_dir = os.path.join(result_dir, mod.__name__.replace('bench_', ''))
|
|
if len(benchmarks) > 1:
|
|
curr_dir = os.path.join(curr_dir, name.replace('bench_', ''))
|
|
if not os.path.exists(curr_dir):
|
|
os.makedirs(curr_dir)
|
|
bench.run(save_path=curr_dir)
|
|
|
|
|
|
def main(args):
|
|
parser = argparse.ArgumentParser(description="Run the benchmark suite.")
|
|
parser.add_argument("-r", "--result-dir", type=str, default='results', required=False)
|
|
parser.add_argument("-n", "--names", type=str, default='', required=False)
|
|
parser.set_defaults(feature=False)
|
|
args = parser.parse_args(args)
|
|
run_all(args.result_dir, args.names)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv[1:])
|