erasure-code: Build the avx512 versions of functions in ISA-L#59494
erasure-code: Build the avx512 versions of functions in ISA-L#59494jamiepryde wants to merge 1 commit intomainfrom
Conversation
Signed-off-by: Jamie Pryde <jamiepry@uk.ibm.com>
|
ceph_erasure_code_benchmark shows a small performance boost encoding for bigger K/M EC profiles (and a small performance decrease for 2+1) when AVX512 is used vs AVX2 on an Intel(R) Xeon(R) Gold 6336Y CPU @ 2.40GHz. Decoding shows a small performance decrease for 1 erasure on smaller K/M profiles, but a small increase when K/M is bigger or the number of erasures is greater than 1. Vandermonde encode
Cauchy encode
Vandermonde decode
Cauchy decode
|
|
jenkins test make check |
1 similar comment
|
jenkins test make check |
There was a problem hiding this comment.
Wins look like they are bigger than the losses to me. Generally think this is the right path forward. Thanks Jamie!
Edit: Are there cases where we want to support AVX2 when AVX512 isn't available? It looks like we are replacing it?
Edit2: Nope, too early and read too fast, I see the else condition now.
|
thanks @jamiepryde. this reminded me of an old commit from #52385 that switches to isal's build system instead of hacking together our own cmake stuff for it. i've just split that commit out to #59513. would you be willing to look into that and confirm whether or not it enables the same avx512 functionality? in general i'd prefer not to maintain our own complicated build scripts if we don't have to |
|
Hey @cbodley, I think your new PR is actually related to the other isa-l library in Ceph, isa-l_crypto. To make things even more confusing, /src/nvmeof/spdk/ has separate copies of isa-l and isa-l_crypto in it as well! I'm not sure if these are used? |
oops, right you are. this ec plugin could probably use similar treatment eventually, but i'm happy with this pr in the meantime 👍 i have a feeling that our crypto library is also missing avx512 support
fun 🙃 the nvmeof submodule was added recently in #54671, where i pointed out that it duplicates our src/spdk submodule. so the ceph tree now has 2 of those, and 3 dpdk submodules (one under each spdk submodule, and another under src/seastar) |
|
jenkins test make check |
1 similar comment
|
jenkins test make check |
oof. Yeah, that can't stay that way. Frankly the merge shouldn't have been allowed if they didn't consolidate that. No use crying over spilled milk though. Do you know if anyone is planning to fix it? |
i haven't heard anything since. probably worth creating a tracker issue for it |
|
Closing this PR as Casey has improved the build process for isa-l and isa-l-crypto here: #59513 |
Upon inspecting /build/lib/libec_isa.so, I noticed that the AVX512 versions of ISA functions are not being included by the Ceph build process.
This PR updates the CMakeLists file to build AVX512 functions in libec_isa.so if the assembler supports AVX512.
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e