[BUG] Fix perf.sh to create per-concurrency subdirectories (Fixes #4233) #4247
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

Summary
This PR fixes a bug in
benchmarks/llm/perf.shwhere the script was overwriting benchmark results instead of creating separate subdirectories for each concurrency level, preventingplot_pareto.pyfrom generating Pareto plots.Problem
When running
perf.shwith multiple concurrency levels (e.g.,--concurrency 1,2,4,8), the script used the sameartifact_dirfor all concurrency levels, causing AIPerf to overwrite results. Theplot_pareto.pyscript expects subdirectories named-concurrency<number>/to parse concurrency levels from file paths.Solution
Modified the script to:
-concurrency1/,-concurrency2/, etc.--artifact-dirflag instead of the baseartifact_dirChanges
concurrency_dir="${artifact_dir}/-concurrency${concurrency}"for each iteration--artifact-dir ${artifact_dir}to--artifact-dir ${concurrency_dir}Testing
The fix ensures:
plot_pareto.pycan correctly find and parse results from all concurrency levelsbenchmarks/llm/README.mdworks end-to-endDirectory Structure
Before (broken):
After (fixed):
Fixes #4233
@hhzhang16 @athreesh
Summary by CodeRabbit