-
Notifications
You must be signed in to change notification settings - Fork 6.2k
inline_memory: optimize mem_is_zero for riscv using RISC-V Vector (RVV) intrinsics #65354
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
|
@tchaikov Hi, could you please help review the RISC-V part? Thanks. |
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.
The current commit message uses "v intrinsic" which might be unclear to developers not deeply familiar with RISC-V terminology. Consider expanding this to be more descriptive:
Instead of: "v intrinsic", please consider: "RISC-V Vector (RVV) intrinsics" .
also, please use the imperative mood in the commit title. see https://github.com/ceph/ceph/blob/main/SubmittingPatches.rst#commit-title
…V) intrinsics
On the bpi-f3 device, the output of running
ctest -V -R unittest_memory is as follows:
size | default | v intrinsic
--------------------------------------------
1024 | 332ms | 92ms
--------------------------------------------
2048 | 657ms | 186ms
--------------------------------------------
4096 | 1290ms | 366ms
--------------------------------------------
8192 | 2572ms | 733ms
--------------------------------------------
65536 | 24836ms | 10004ms
Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
tchaikov
left a comment
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.
my only concern is that this might break riscv installations where the RVV instruction set is not available while the building host does support it.
@sunyuechi is it safe to assume its existence on mainstream RISC CPUs?
|
@tchaikov It should not assume that the CPU supports RVV; however, since |
|
jenkins test make check arm64 |
|
jenkins test api |
|
jenkins test windows |
tchaikov
left a comment
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
| return true; | ||
| } | ||
|
|
||
| #elif defined(__riscv_v_intrinsic) |
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.
OK, shouldn't affect other architectures.
|
( |
|
@rzarzynski @tchaikov Could you please help merge it? Thank you. |
Optimize mem_is_zero using RISC-V V extension instructions.
On the bpi-f3 device, the output of running
ctest -V -R unittest_memoryis as follows:Checklist
Show available Jenkins commands
jenkins test classic perfJenkins Job | Jenkins Job Definitionjenkins test crimson perfJenkins Job | Jenkins Job Definitionjenkins test signedJenkins Job | Jenkins Job Definitionjenkins test make checkJenkins Job | Jenkins Job Definitionjenkins test make check arm64Jenkins Job | Jenkins Job Definitionjenkins test submodulesJenkins Job | Jenkins Job Definitionjenkins test dashboardJenkins Job | Jenkins Job Definitionjenkins test dashboard cephadmJenkins Job | Jenkins Job Definitionjenkins test apiJenkins Job | Jenkins Job Definitionjenkins test docsReadTheDocs | Github Workflow Definitionjenkins test ceph-volume allJenkins Jobs | Jenkins Jobs Definitionjenkins test windowsJenkins Job | Jenkins Job Definitionjenkins test rook e2eJenkins Job | Jenkins Job Definition