在SIMD和并行化方面,AVX2和AVX-512有什么区别?他们是同一件事还是不同?我只是看到double8用于AVX-512,而double4用于AVX2?
我正在使用PyOpenCL在C语言中编写内核代码,并且不确定会有什么不同。
最佳答案
AVX2是256位向量指令集。您有256位寄存器,可以用几种方法解释(8个浮点数,4个双精度数,32个字节等)。 AVX1仅支持浮点运算,AVX2添加256位整数运算。 AVX-512是一组512位向量指令。只有2种AVX,普通的旧AVX和AVX2。 AVX-512包含在many different flavors中。您可能会发现Intel's Intrinsics Guide有趣。
最大的区别就是每个指令处理的操作数是原来的两倍。但是,AVX-512中有某些指令可能会使某些特定的东西变得更优化(例如,指数近似)。
关于opencl - AVX2和AVX-512有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59146296/