简介
编辑在计算中,向量处理器或数组处理器是一个中央处理单元 (CPU),它执行一个指令集,其中的指令旨在高效地对称为向量的大型一维数据数组进行操作。 这与标量处理器形成对比,后者的指令仅对单个数据项进行操作,并且与某些具有附加单指令、多数据 (SIMD) 或 SWAR 算术单元的相同标量处理器形成对比。向量处理器可以极大地提高某些工作负载的性能,尤其是数值模拟和类似任务。矢量处理技术也在视频游戏控制台硬件和图形加速器中运行。
矢量机出现于 70 年代初期,并在 1970 年代至 90 年代主导了超级计算机设计,尤其是各种 Cray 平台。 传统微处理器设计的性价比迅速下降导致矢量超级计算机在 1990 年代衰落。
历史
编辑早期工作
矢量处理开发始于 1960 年代早期西屋电气公司的 Solomon 项目。所罗门的目标是通过在单个主 CPU 的控制下使用大量简单的数学协处理器来显着提高数学性能。
CPU 向所有算术逻辑单元 (ALU) 提供一条通用指令,每个周期一条指令,但每个指令处理不同的数据点。这使得所罗门机器能够将单一算法应用于以数组形式提供的大型数据集。
1962 年,西屋公司取消了该项目,但伊利诺伊大学重新启动了这项工作,命名为 ILLIAC IV。
他们的设计版本最初要求具有 256 个 ALU 的 1 GFLOPS 机器,但是当它最终在 1972 年交付时,它只有 64 个 ALU,并且只能达到 100 到 150 MFLOPS。
尽管如此,它表明基本概念是合理的,并且当用于计算流体动力学等数据密集型应用时,ILLIAC 是世界上最快的机器。
为每个数据元素使用单独的 ALU 的 ILLIAC 方法在后来的设计中并不常见,并且通常在单独的类别下称为大规模并行计算。
大约在这个时候,弗林将这种类型的处理归类为 SIMT 的早期形式。
Kartsev 于 1967 年提出并开发了具有功能的运算计算机。
超级计算机
xxx台矢量超级计算机是 Control Data Corporation STAR-100 和 Texas Instruments Advanced Scientific Computer (ASC),分别于 1974 年和 1972 年推出。
基本的 ASC(即一个管道)ALU 使用了一种支持标量和矢量计算的流水线架构,峰值性能达到大约 20 MFLOPS,在处理长矢量时很容易实现。 扩展的 ALU 配置支持两个管道或四个管道,具有相应的 2 倍或 4 倍的性能增益。 内存带宽足以支持这些扩展模式。
STAR-100 在其他方面比 CDC 自己的超级计算机(如 CDC 7600)慢,但在处理与数据相关的任务时,它们可以跟上速度,同时体积更小、成本更低。 然而,该机器还花费了相当多的时间来解码矢量指令并准备好运行该过程,因此在它真正加速任何事情之前,它需要非常具体的数据集来处理。
矢量技术于 1976 年首次被著名的 Cray-1 充分利用。 Cray 设计没有像 STAR-100 和 ASC 那样将数据留在内存中,而是有八个向量寄存器,每个寄存器包含 64 个 64 位字。 矢量指令在寄存器之间应用,这比与主存储器通信要快得多。 STAR-100 将对内存中的长向量应用单个操作,然后继续进行下一个操作,而 Cray 设计会将向量的较小部分加载到寄存器中,然后对数据应用尽可能多的操作 ,从而避免了许多慢得多的内存访问操作。
Cray 设计使用流水线并行来实现向量指令而不是多个 ALU。 此外,该设计为不同的指令提供了完全独立的流水线,例如,加法/减法与乘法在不同的硬件中实现。 这允许将一批向量指令流水线化到每个 ALU 子单元中,他们将这种技术称为向量链接。 Cray-1 通常具有大约 80 MFLOPS 的性能,但在最多运行三个链的情况下,它的峰值可以达到 240 MFLOPS,平均约为 150——比那个时代的任何机器都快得多。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/203876/