|
|
|
|
|
by ajayjain
2670 days ago
|
|
In some recent work from my group [1], we reduce the complexity of keeping up with new SIMD ISAs by retargeting code between generations. For example, a compiler pass can take code written to target SSE2 (with intrinsics) and emit AVX-512 - it auto-vectorizes hand-vectorized code. With a more capable compiler, if the ISA grows in complexity, programmers and users of libraries get speedups without rewriting their code or relying on scalar auto-vectorization. However, the x86 ISA growth certainly pushed some complexity on us as compiler writers - we had to write a pass to retarget instructions! [1] https://www.nextgenvec.org/#revec |
|
It's not as ambitious as your approach though, more like a 1:1 translation and thus cannot take advantage of wider vectors.