矢量运算
编辑矢量运算 是 IBM 和摩托罗拉为 PowerPC 处理器系列开发的 SIMD 单元。
矢量运算也是摩托罗拉的商标,因此 Apple 也使用术语 Velocity Engine,而 IBM 使用 VMX(矢量媒体扩展)术语来表示此 SIMD 单元。
在矢量运算的帮助下,可以同时对多个数据字应用相同的操作。向量单元(不是计算单个数字,而是将它们一起视为一个向量)支持每个向量最多 16 个元素。
因此,如果软件使用 AltiVec 的全部性能,理论上它可以在最多 16 分之一的时间内完成算术任务。
SIMD 单元最初内置于 PowerPC 处理器中,也内置于后来的(从 POWER6 开始)IBM Power 处理器中,并最终通过 POWER7 作为 VSX(矢量标量扩展)扩展到 64 个寄存器,宽度为 128 位。
在 IBM 的 IBM POWER 平台中,PowerPC 处理器(从 Apple 处理器改为 Intel 处理器)结束后,进一步的开发仍在继续:
技术
编辑矢量运算矢量寄存器始终为 128 位宽。根据使用的数据类型,16、8 或 4 个元素可以保存在这样的向量寄存器中并用于计算。除了整数数据类型“byte”、“short”和“long”之外,还可以使用浮点数据类型“float”(对应于 IEEE 754 single)。 AltiVec 不支持双精度浮点值('double')。
但是,矢量运算的问题是:
- 许多开发人员没有意识到这种可能性,只知道它“可以使他们的程序更快”,因为营销计划只提到图形、多媒体和网络领域的加速。 然而,这只会导致这些领域的程序特别广泛地使用浮点运算。
- 处理单元的工作速度如此之快,以至于很难持续为其提供处理用品。 G5 处理器的宽带架构与以前的 G4 系统相比没有任何相关优势。
G5 处理器已经有两个完整的浮点单元,它们独立于矢量运算单元运行,实际上可以占用处理器的整个带宽。
此外,摩托罗拉最新 G4 的 矢量运算 单元比来自 IBM 的 G5 更高效,G5 的 矢量运算单元是“事后”添加到现有处理器中的。
编译器支持
编辑GNU编译器集合GCC, 通过所谓的“内置函数”以及通过特殊矢量类型支持 AltiVec,使用这些矢量类型可以自动“矢量化”诸如 +、-、* 等简单操作。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/361865/