You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm curious what would need to be done to include SIMD support here. I ran a quick comparison between bindings to base64 here and the python bindings of the libbase64 which has SIMD support and the difference particularly for encoding are quite stark!
Using rust-base64 I can encode a 200mb file in 0.43 sec but with pybase64 (the bindings) it happens in 0.08 secs which is, I believe, due to the SIMD support on Mac M1. Decoding was 0.16 and 0.14 sec respectively.
Well, for M1, a NEON impl will be needed, but the same idea holds: write an Engine that uses a suitable SIMD flow. Then, we can consider if and when automatic engine selection makes sense.
I'm curious what would need to be done to include SIMD support here. I ran a quick comparison between bindings to base64 here and the python bindings of the libbase64 which has SIMD support and the difference particularly for encoding are quite stark!
Using rust-base64 I can encode a 200mb file in 0.43 sec but with pybase64 (the bindings) it happens in 0.08 secs which is, I believe, due to the SIMD support on Mac M1. Decoding was 0.16 and 0.14 sec respectively.
I suspect that use of simd should be fairly straightforward here because we're dealing with know chunk sized of 4 bits at a time e.g.
u8x64
https://rust-lang.github.io/portable-simd/core_simd/simd/type.u8x64.html could be quite handy here.The text was updated successfully, but these errors were encountered: