Intel 的 AVX512 技术由于多个子寄存器支持并行化,例如每个 512 位向量寄存器中有 8 个 64 位 FP 子寄存器。什么,多个向量寄存器也可以并行操作?是否发生以下并行化的象征性示例?
开始;
ZMM0 (operation) ZMM1 -> ZMM2;
ZMM3 (operation) ZMM4 -> ZMM5;
...
ZMM27 (operation) ZMM28 -> ZMM29;
父母;
根据1这不是真的
AVX-512 指令支持 512 位宽的 SIMD 寄存器 (ZMM0-ZMM31)。ZMM 寄存器的低 256 位别名为相应的 256 位 YMM 寄存器,低 128 位别名为相应的 128 位 XMM 寄存器。
AVX-512 指令还支持 64 位模式下的 32 个 SIMD 寄存器(XMM0-XMM31、YMM0-YMM31 和 ZMM0-ZMM31)。32 位模式下可用的向量寄存器数量仍然是 8 个。
这更复杂,因为 AVX512 是 SIMD指令的扩展,并非所有实现它们的处理器都支持。
我只能猜测(我强烈建议您改写您的问题或附上一个示例进行详细分析)您的意思是如果多个指令可以在一个周期内全部发出?简而言之,IMOP,它取决于特定的架构。
推荐阅读“英特尔 64 和 IA32 架构优化参考手册” 2,尽管它尚未包含市场上唯一支持 AVX512 的微芯片 - Xeon Phi(代号 Knights Landing)。至少说明“吞吐量”与具体指令的执行端口和功能单元有关,见附录C-3。
至于你的小例子,因为它只使用寄存器操作数,很可能这些都可以在一个周期内发出。