Closed Lucas-Wye closed 1 year ago
The implementation will automatically detect (at runtime) if the CPU supports AVX2 or AVX512 and use the best available option. If you want to disable that you'll need to modify the source code.
You could for example make these functions return 0: https://github.com/awslabs/bike-kem/blob/1d67131ee4812fc5ec5c032ee84271cde4ba9d2b/src/common/cpu_features.c#L17
I don't however see why you would want to do this.
Thank you so much. Because in some platforms such as ARM, axv2/avx512 is not available. And due of the limitation of hareware resource, SIMD instructions may not be supported.
I want to know if this code repository support serial and constant-time implementation. Thanks again.
If you're compiling for aarch64/ARM64, AVX2 and AVX512 will be disabled:
The implementation should still be constant-time with AVX2/512 turned off.
I don't believe aarch32/ARM32 is supported. See issue #10.
Thanks. It works.
Is it because of the very low speed that there is not 32-bit implementations or any other reasons?
A constant-time implementation would probably be very slow, as there's many issues you'd need to work around. See also https://www.bearssl.org/ctmul.html
Thank you so much.
Hi, I am trying to build it without avx2 and avx512, just for serial running. I dont know how to use the cmake to realize it, could you help me? Thanks.