A preview is not available for this record, please engage by choosing from the available options ‘download’ or ‘view’ to engage with the material
Description
The AVX family of instruction sets on Intel processors provide a rich variety of capabilities for supporting many different SIMD instructions and data types. Like many other SIMD instruction sets, AVX-512 instructions are predominantly vertical, or map, instructions, where one or more SIMD values are converted to another SIMD value element-by-element. However, it can be desirable to reorder elements within or across SIMD values as well, and the AVX families of instructions have many clever ways of achieving this. In this document we shall talk through the many different ways to perform permutations and to describe the different trade-offs and show how the techniques described can be used to implement versions of a few selected algorithms.