Emulating AVX-512 intrinsics in Miri
2 days ago
- #Miri
- #zlib-rs
- #avx512
- Work on using avx512 features in zlib-rs to improve performance with 512-bit vectors.
- Three parts of zlib-rs benefit from avx512: compare256, crc32, and adler32, adapted from zlib-ng.
- CI testing challenge: GitHub runners support avx2 but not avx512, requiring emulation solutions.
- Qemu does not support avx512; Intel's emulator is slow, leading to the idea of using Miri for emulation.
- Miri already supports many avx2 instructions; added support for 4 specific avx512 instructions needed for zlib-rs.
- Detailed implementation process for new intrinsics in Miri, including testing and validation on real hardware.
- Empowerment from improving compiler tooling, with benefits to Miri and stdarch, and successful project outcomes.
- avx512 implementations in zlib-rs 0.5.3 require Rust 1.89+ and specific target features for use.