-
Notifications
You must be signed in to change notification settings - Fork 639
Add multi-configuration performance benchmarking #5858
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
!build |
CI MESSAGE: [25999015]: BUILD STARTED |
CI MESSAGE: [25999015]: BUILD FAILED |
!build |
CI MESSAGE: [25999773]: BUILD STARTED |
CI MESSAGE: [25999773]: BUILD PASSED |
internal_tools/hw_decoder_bench.py
Outdated
|
||
@pipeline_def( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pipeline definitions could be outside of the loops, for better readibility.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
print(f"Total time: {best_result['total_time']:.6f} sec") | ||
print(f"Throughput: {best_result['total_throughput']:.2f} frames/sec") | ||
else: | ||
print("No results to display") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
an idea, print the results for all parameters in a way that can be easily parsed and plotted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you elaborate which format you have in mind?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was just a thought. Instead of just printing the best result, print all the values for all the tested parameters, so that we can plot them. Anyway, feel free to consider this as out-of-scope for now
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We print them as the benchmark goes, do you think it is better to print them again at the end?
internal_tools/hw_decoder_bench.py
Outdated
parser.add_argument( | ||
"-j", | ||
dest="num_threads", | ||
help="CPU threads. Can be a single value (e.g. 4) or range 'start:end:step' (e.g. 1:8:2)", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd mention that the end of the range is included (which is not typically the case in Python ranges)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
internal_tools/hw_decoder_bench.py
Outdated
) | ||
|
||
|
||
def parse_range_arg(arg_str, use_float=False): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just a suggestion: maybe just parse_fn=int
here instead of use_float
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
- Add support for range-based arguments for CPU threads and HW decoder load - Implement performance testing across multiple configurations - Add best throughput configuration reporting - Enhance performance metrics with more detailed statistics - Refactor pipeline definitions to support variable HW decoder load Signed-off-by: Janusz Lisiecki <[email protected]>
Signed-off-by: Janusz Lisiecki <[email protected]>
Signed-off-by: Janusz Lisiecki <[email protected]>
!build |
CI MESSAGE: [26563974]: BUILD STARTED |
CI MESSAGE: [26563974]: BUILD PASSED |
Category:
New feature (non-breaking change which adds functionality)
Description:
Additional information:
Affected modules and functionalities:
Key points relevant for the review:
Tests:
Checklist
Documentation
DALI team only
Requirements
REQ IDs: N/A
JIRA TASK: N/A