-
Notifications
You must be signed in to change notification settings - Fork 4
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
Implement QAT Zstd sequence producer plugin #12
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: matt-000 <matt-000@users.noreply.github.com> Co-authored-by: Tommy Parisi <tjp225@lehigh.edu>
Add unit tests for QatSequenceProducer
Interesting, what speedups do you observe? |
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.
Thank you for this PR. Please review and try to address the comments.
.gitignore
Outdated
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.
LGTM.
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.
- JMH has more params than
-t
. And, withBenchmarkDriver
not being modified, you don't need to change how the benchmark is run. - Instead, add a third column,
Params
, to the existing column that specifies the custom parameters each class takes. - Remove
java -jar target/benchmarks.jar ~/Downloads/silesia.concat -t64 -p zstdChunkSize=16384 QatZstdBench ZstdSoftwareBench
.
jmh/qat-java-bench/monitor_qat.py
Outdated
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.
This file is hosted and maintained somewhere else. Please remove.
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.
Useful but would not work when the benchmark mode is other than thrpt
. Please remove.
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.
LGTM.
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.
LGTM.
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.
LGTM.
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.
- Good catch with the possible torn-writes issue spotted here. I think
_Thead_local
with the helper function is a heavy-handed approach. Will address this with static initialization in the next update. - Do not modify the return types for existing functions.
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.
Same comment. Do not break existing code by modifying the return types of the existing functions.
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.
LGTM, pending coverage analysis.
@mulerm We've updated the PR based on your feedback - fixing breaking changes, standardizing the benchmarks, etc. Please re-review and advise if any further changes are needed. Thank you for your patience. |
@mulerm , @Coder-256 - Zstd-1.5.6 have deprecated some of the functions you use and modified the parameters of others. I will disable the Sequence API in the zstd-jni to not block the update |
Thank you @luben. We will review the changes. |
I have updated the zstd-jni to use the new signatures and released v1.5.6-1. The only warning left is about deprecation of |
Implements the
QatZstdSequenceProducer
class, links withQAT-ZSTD-Plugin
, implements a JNI interface, and includes benchmarks, tests, and several other improvements.@matt-000 @tparisi52