Skip to content
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

Add OpenSSL 3.3.x base64 decoder to benchmarks. #427

Merged
merged 1 commit into from
Jun 10, 2024
Merged

Conversation

krk
Copy link
Contributor

@krk krk commented Jun 9, 2024

This adds the current OpenSSL 3.3.x implementation to the benchmarks. Please feel free to resolve if this doesn't belong to simdutf benchmarks.

Sample execution on an Intel Cascade Lake CPU, which is detected as Haswell, because Cascade Lake does not support AVX512 VBMI2 and VPOPCNTDQ instructions.

./benchmark_base64 -d one.pem
# current system detected as haswell.
# loading files: .
# volume: 2717 bytes
# max length: 2717 bytes
# number of inputs: 1
# decode
memcpy                                   :  67.47 GB/s   9.35 GHz   0.14 c/b   0.20 i/b   1.41 i/c 
# the base64 data contains spaces, so we cannot use straigth libbase64::base64_decode directly
openssl3.3.x                             :   0.33 GB/s   4.46 GHz  13.40 c/b  37.06 i/b   2.77 i/c 
libbase64_space_decode                   :   0.82 GB/s   4.49 GHz   5.47 c/b  15.51 i/b   2.84 i/c 
node                                     :   1.47 GB/s   4.58 GHz   3.12 c/b  12.69 i/b   4.07 i/c 
simdutf::haswell                         :   6.41 GB/s   4.99 GHz   0.78 c/b   2.27 i/b   2.91 i/c 
simdutf::westmere                        :   5.01 GB/s   4.86 GHz   0.97 c/b   3.12 i/b   3.22 i/c 
simdutf::fallback                        :   2.25 GB/s   4.62 GHz   2.06 c/b   6.83 i/b   3.32 i/c 
./benchmark_base64 -d one-nospace.pem
# current system detected as haswell.
# loading files: .
# volume: 2676 bytes
# max length: 2676 bytes
# number of inputs: 1
# decode
memcpy                                   :  68.46 GB/s   9.59 GHz   0.14 c/b   0.19 i/b   1.39 i/c 
libbase64                                :  14.31 GB/s   5.22 GHz   0.36 c/b   0.84 i/b   2.31 i/c 
openssl3.3.x                             :   0.33 GB/s   4.41 GHz  13.47 c/b  37.29 i/b   2.77 i/c 
libbase64_space_decode                   :   1.91 GB/s   4.64 GHz   2.43 c/b   6.84 i/b   2.82 i/c 
node                                     :   1.64 GB/s   4.64 GHz   2.83 c/b  11.61 i/b   4.11 i/c 
simdutf::haswell                         :  11.65 GB/s   5.40 GHz   0.46 c/b   1.20 i/b   2.58 i/c 
simdutf::westmere                        :   7.87 GB/s   5.10 GHz   0.65 c/b   2.13 i/b   3.28 i/c 
simdutf::fallback                        :   2.50 GB/s   4.71 GHz   1.88 c/b   5.88 i/b   3.12 i/c 

@lemire
Copy link
Member

lemire commented Jun 9, 2024

Let us see if our tests pass!

@lemire
Copy link
Member

lemire commented Jun 10, 2024

Merging.

@lemire lemire merged commit 3a53780 into simdutf:master Jun 10, 2024
47 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants