2 ms·
Seems like it. I only learned of this operation from reading this blogpost. "Permuting Bits" seems like a bloody obvious use of this instruction, but honestly,
by dragontamer 3y ago
Seems like it.
I only learned of this operation from reading this blogpost. "Permuting Bits" seems like a bloody obvious use of this instruction, but honestly, anyone who is familiar with carry-less multiplication will immediately see the widespread capabilities of this instruction.
It really demonstrates to me that once again, Intel and their design of AVX512 has some very smart people in there. Its a good, flexible, operation. Albeit arcane and few people probably see how to use this instruction well, but its really exciting to see "such a good idea" from them.
GF(2^8) fields (aka: 8-bit GF operations) are used in all sorts of CRC, Error-correction Reed Solomon, Elliptical Curve, etc. etc. operations. But beyond just that, bitshifts and xors innately have a huge number of applications outside of cryptography or GF-stuffs. It makes sense to make a dedicated instruction like this.
------
EDIT: Upon rereading the end of the blogpost:
> I will probably keep using a SAT solver to solve the masks
Yeah, that's actually what's needed to generalize this.
Note: common operations like "if(a) b else c", or "min(a, b)", or such can likely be specified in terms of AVX512 operations now.
Powerful, efficient, operations like GF2P8AFFINEQB, pext, pdep, and pshufb are getting damn close to an FPGA-like parallel processor.
I mean, pshufb is already an arbitrary 4-bit truth table / 4-LUT if you think about it.