本文描述了如何利用256位英特尔® 高级矢量扩展指令集(英特尔® AVX)实现3D矢量数组的标准化。此外,我们还介绍了在AOS和SOA之间进行动态转换,让数据用于8-wide单指令多数据(SIMD)处理的乱序方法。从8x3到3x8的转置可通过5个乱序操作来实现,而从3x8到8x3的转置则需要6个乱序操作。结果表明,使用更宽的SIMD执行标准化计算具备显著的优势,采用128位和256位版本可分别将计算速度提高2.3和2.9倍。支持SOA处理的双向转置开销非常低(11 个额外指令),适合用于此类小型计算
↧