<aside> ✨
ExecuTorch 모델 실행 과정 로깅 유틸리티 CLI 개발
</aside>
run_bench CLI 등록
run_bench --model resnet18.pte --repeat 5├── benchmark
│ ├── __init__.py
│ └── run_benchmark.py # 로깅 & CLI 엔트리 포인트
├── pyproject.toml # 벤치마크 CLI 등록 및 환경 세팅
└── tests
├── __init__.py
└── test_benchmark_logs.py # run_benchmark 단위 테스트
# benchmark.run_benchmark:run_benchmark
# 0. param0 'model'과 model_dir을 합쳐서 model_path 구성 & error handling
# 1. Load ExecuTorch
runtime = Runtime.get()
method = runtime.load_program(model_path).load_method("forward")
# 2. Validate ExecuTorch
latencies = []
for _ in range(repeat):
start = time.perf_counter()
_ = method.execute([example_input])
latencies.append((time.perf_counter() - start) * 1000)
latency_ms_avg = np.mean(latencies) # JSON log에 추가
argparse 모듈 Import# benchmark.run_benchmark:main
parser = argparse.ArgumentParser(description="ExecuTorch Model Benchmark CLI")
parser.add_argument("--model", type=str, required=True, help=".pte model name (Ex. resnet18.pte)")
parser.add_argument("--repeat", type=int, default=5, help="Number of repetitions")
args = parser.parse_args()
run_benchmark(args.model, args.repeat) # 로깅 method 실행
run_bench CLI 관련 세팅을 지정하기 위해 사용pip install . 실행 → build, executorch-benchmark 생성pip install 후 → run_bench --help 실행 가능[project]
name = "executorch-benchmark"
version = "0.0.1"
description = "ExecuTorch benchmark CLI"
requires-python = ">=3.10"
dependencies = [ ... ]
[project.scripts]
run_bench = "benchmark.run_benchmark:main"