bwesterb / kyber-zig

Kyber in Zig
BSD 2-Clause "Simplified" License
6 stars 1 forks source link

Word size in `noise` #2

Open jedisct1 opened 1 year ago

jedisct1 commented 1 year ago

On an AMD Zen2 CPU:

https://github.com/bwesterb/kyber-zig/blob/da1ab9f5a9c5fce24dba5e7e165c86f51727252a/src/main.zig#L1139

         kyber512:      60885 encaps/s
         kyber768:      40204 encaps/s
        kyber1024:      29370 encaps/s
         kyber512:      62503 encaps/s
         kyber768:      43465 encaps/s
        kyber1024:      31931 encaps/s
         kyber512:      71386 encaps/s
         kyber768:      51741 encaps/s
        kyber1024:      38671 encaps/s

u32 is actually faster, probably due to better opportunities for auto vectorization.

bwesterb commented 1 year ago

On M2 Pro:

bwesterb commented 1 year ago

Cool that it's so easy to check this. It'd be quite a bit of work with the C reference implementation.