VSX?虚拟机?阿尔蒂维克?虚拟现实? VSR?这些 PowerPC SIMD 首字母缩略词彼此之间有什么关系?
VSX? VMX? Altivec? VR? VSR?! How these PowerPC SIMD acronyms relate to each other?
我听说过很多关于 Altivec 寄存器的信息,但我什至没有在 POWER9 ISA 上找到它。在那篇文档中,我只在第 6 章 "Vector Facility" 和第 7 章 "Vector-Scalar Floating-Point Operations".
下找到了 VR 和 VSR 寄存器
在 ABI 我注意到寄存器是如何物理分配的:
我还是不明白为什么有 2 个组。 Altivec 是遗产吗?
据我了解,情况如下:
- Altivec / VMX (Vector Multimedia eXtensions) 是一种用于 PowerPc 的旧 SIMD 技术。我认为它是旧的 Intel MMX。
- 新的 VSX(矢量标量扩展)是它的升级版,但为了避免破坏与 Altivec 的兼容性,它们仅保留 32 个寄存器(VSR32-VSR63),而 Altivec 操作无法处理其他 VSR0-VSR31。然而,VSX 指令可以对所有 64 个寄存器 (VSR0-VSR63) 进行操作。我将其视为新的英特尔 SSE。
对吗?
稍微澄清一下术语:
- VMX 是对 POWER/PowerPC 处理器的向量支持的早期实现。
- Altivec 是 VMX 的商标;在功能上,它应该是等价的
- VSX 是对 POWER 处理器的矢量支持的较新实现
VSX 添加了更多的向量寄存器(多了 32 个,但每个寄存器仍然有 128 位),以及 VSX 特定的指令。如您所见,编号较高的 VSX 寄存器与用于 VMX 操作的寄存器共享。因此,不建议在单个进程中混合使用 VMX 和 VSX 指令,除非您小心处理寄存器分配。
我不太熟悉英特尔的矢量实现,但你的类比对我来说是正确的。
我听说过很多关于 Altivec 寄存器的信息,但我什至没有在 POWER9 ISA 上找到它。在那篇文档中,我只在第 6 章 "Vector Facility" 和第 7 章 "Vector-Scalar Floating-Point Operations".
下找到了 VR 和 VSR 寄存器在 ABI 我注意到寄存器是如何物理分配的:
我还是不明白为什么有 2 个组。 Altivec 是遗产吗?
据我了解,情况如下:
- Altivec / VMX (Vector Multimedia eXtensions) 是一种用于 PowerPc 的旧 SIMD 技术。我认为它是旧的 Intel MMX。
- 新的 VSX(矢量标量扩展)是它的升级版,但为了避免破坏与 Altivec 的兼容性,它们仅保留 32 个寄存器(VSR32-VSR63),而 Altivec 操作无法处理其他 VSR0-VSR31。然而,VSX 指令可以对所有 64 个寄存器 (VSR0-VSR63) 进行操作。我将其视为新的英特尔 SSE。
对吗?
稍微澄清一下术语:
- VMX 是对 POWER/PowerPC 处理器的向量支持的早期实现。
- Altivec 是 VMX 的商标;在功能上,它应该是等价的
- VSX 是对 POWER 处理器的矢量支持的较新实现
VSX 添加了更多的向量寄存器(多了 32 个,但每个寄存器仍然有 128 位),以及 VSX 特定的指令。如您所见,编号较高的 VSX 寄存器与用于 VMX 操作的寄存器共享。因此,不建议在单个进程中混合使用 VMX 和 VSX 指令,除非您小心处理寄存器分配。
我不太熟悉英特尔的矢量实现,但你的类比对我来说是正确的。