3.5 向量处理机
向量处理机,设计用于处理向量数据和执行向量指令,是一种专为高效处理大量数据而设计的计算机。与标量处理机(处理单个数据项的机器)相比,向量处理机通过并行处理向量元素来实现高吞吐率。典型的向量处理机例子包括1976年的CRAY-1超级计算机,以及后续的Cray Y-MP、CDC Cyber 205、NEC SX-X/44和Fujitsu VP2600等。这些机器的性能高出标量处理机数个数量级,特别适用于科学计算领域。
向量处理方式
向量处理可以采用三种不同的方式:横向处理、纵向处理和纵横处理(分组处理)方式。每种处理方式都有其特点和适用场景。
-
横向处理方式(水平处理方式):
- 按行的方式从左到右逐个处理向量元素。
- 每次循环处理一个元素,适合于一般计算机循环程序处理。
- 由于每次循环都会发生数据相关和流水线功能切换,这种方式不是向量处理机并行处理的最佳选择。
-
纵向处理方式(垂直处理方式):
- 按列的方式从上到下处理整个向量。
- 先对整个向量执行同一操作,然后再执行下一个操作,适用于向量指令的并行执行。
- 需要存储器-存储器结构,且对存储器带宽提出了较高要求。向量指令的源向量和目标向量均存放在存储器中。
-
纵横处理方式(分组处理方式):
- 将向量分为若干组,组内按纵向方式处理,然后依次处理各组。
- 每组使用两条向量指令,每组内的处理发生一次数据相关和两次功能切换。
- 向量长度不受限制,采用寄存器-寄存器型操作的运算流水线,运算部件的输入、输出端与向量寄存器相联。
向量处理机的特性
- 高性能:向量处理机的浮点运算速度远超标量处理机,特别适用于大规模数值计算任务。
- 专用性:虽然具有高性能,但主要局限于能够转化为向量运算的问题。
- 存储器带宽要求:为了充分发挥效率,向量处理机对存储器的带宽和存储器与处理部件的通信带宽提出了较高要求。
- 技术演进:随着技术的发展,早期的存储器-存储器型向量处理机逐渐演化为寄存器-寄存器型结构,如CRAY-1和中国的YH-1巨型机。
向量处理机通过特定的硬件设计和优化的向量指令集来实现对大量数据的高效处理,其设计思想对后续的并行计算机和超级计算机的发展产生了深远影响。
3.5.2 向量处理机的结构
向量处理机专为处理向量计算而设计,通过高度优化的并行处理技术来实现高速度的数据处理。这些机器主要用于科学计算、工程模拟等领域,其中对大规模数据集进行重复性高的计算非常常见。向量处理机的设计哲学是利用硬件级别的并行处理来提升性能,特别是通过流水线(pipeline)技术和向量化指令来加速向量和矩阵运算。
CRAY-1:向量处理机的典范
CRAY-1超级计算机,由CRAY公司在1976年推出,是向量处理机的经典代表。它的设计采用了寄存器-寄存器型结构,具备了以下几个特点:
-
功能部件:CRAY-1设有12条流水线,分别专门用于处理不同类型的计算任务,如整数加法、浮点加法、浮点乘法等,每种操作都有专门的流水线来处理。这些流水线能够并行工作,每个时钟周期都能输出一个运算结果。
-
向量寄存器组:CRAY-1配备了8块向量寄存器(V0到V7),每块含有64个64位寄存器。这些向量寄存器可以快速地供给或接收数据,支持高速的向量运算。
-
标量寄存器和快速暂存器:除了向量寄存器外,CRAY-1还设有标量寄存器和快速暂存器,用于处理非向量数据。
-
向量屏蔽寄存器:用于控制向量运算中的某些特定元素,实现复杂的向量操作。
向量处理的并行性
CRAY-1的设计允许同时对多个数据元素进行操作,极大地提高了处理效率。例如,当执行一个向量加法指令时,它可以在一个时钟周期内完成一个元素的加法运算,并且连续多个周期内并行处理整个向量。这种高度的并行性是通过将数据分布在多个向量寄存器中,并利用多条流水线并行处理来实现的。
向量和标量指令
CRAY-1支持向量和标量两种类型的指令,其中向量指令用于处理向量数据,标量指令用于处理单个数据值。向量指令可以实现向量之间的算术运算、数据传输等操作,而标量指令则用于处理非向量计算。
存储器-寄存器型和寄存器-寄存器型结构
向量处理机通常采用两种基本结构:存储器-存储器型和寄存器-寄存器型。CRAY-1采用的是寄存器-寄存器型结构,这意味着所有的向量操作都是在寄存器之间进行,而不是直接在存储器和寄存器之间。这种设计减少了访问存储器的次数,从而大幅提高了处理速度。
总结
向量处理机,尤其是CRAY-1这样的经典机型,通过其高度并行的处理能力和专为向量计算优化的硬件设计,在科学计算和工程模拟领域发挥了重要作用。这些机器的设计哲学——利用硬件级别的并行性来加速计算——在当今的多核和众核处理器设计中仍然具有广泛的应用。
3.5.3 提高向量处理机性能的方法
向量处理机是专门为处理大规模数值计算而设计的,它通过一系列技术手段来提升性能,主要包括设置多个功能部件、链接技术、循环展开技术以及采用多处理机系统。这些技术共同作用,大幅提升了向量处理机处理大型科学计算任务的能力。
1. 设置多个功能部件
在向量处理机中,设置多个独立的功能部件,如向量加法器、浮点加法器、浮点乘法器等,是提高性能的基本方法。这些功能部件可以并行工作,同时处理不同的运算任务,从而大幅提高了计算速度。例如,CRAY-1就配置有多个单功能流水线部件,能够并行执行不同的向量和标量运算。
2. 链接技术
链接(chaining)技术允许多个相关的向量操作无缝连接,实现数据在功能部件间的直接传递而无需通过向量寄存器中转。这大大减少了数据传输的时间,提高了执行效率。例如,在计算 D = A * (B + C)
的操作中,B和C的加法结果可以直接送入乘法操作,而不需要先写入寄存器再读出。
3. 循环展开技术
循环展开技术通过增加每个循环迭代中执行的操作数量,减少循环次数,从而减少循环控制开销,提高了代码的执行效率。在向量处理机上,这种技术尤为有效,因为它可以减少对向量寄存器的访问次数,使得更多的时间用于实际的计算上。
4. 采用多处理机系统
多处理机系统通过增加处理单元的数量,使得多个向量处理任务能够并行执行,进一步提高了向量处理机的性能。例如,CRAY-2和CRAY Y-MP等机型通过配置多个向量处理单元,能够同时处理多个独立的向量计算任务,显著提升了系统的整体计算能力。
结论
向量处理机通过上述技术手段实现了高性能的向量计算能力,尤其适合于执行大规模的科学计算和工程模拟任务。随着科学计算需求的日益增长,向量处理机及其性能提升技术依然是高性能计算领域的重要研究方向。
3.5.4 向量处理机的性能评价
向量处理机的性能评价主要依据几个关键参数:向量指令的处理时间T、向量长度无穷大时的最大性能R∞、半性能向量长度n1/2,以及向量长度临界值nc。
向量指令的处理时间 T
执行一条向量长度为n的指令所需的时间T可以分为三部分:向量流水线的建立时间Ts,向量流水线的流过时间Tf,以及流水线“瓶颈”段的执行时间Tp。如果流水线各段的执行时间均等,则总时间可表示为:
T=[s+e+(n−1)]×Tc
其中,s是流水线建立所需的时钟周期数,e是流水线流过所需的时钟周期数,Tc是时钟周期时间。
向量处理机的峰值性能 R∞
向量处理机的峰值性能R∞表示当向量长度趋于无穷大时,向量处理机的最高性能,常用MFLOPS(百万次浮点运算每秒)作为评价指标。这个指标反映了向量处理机在理想状态下的最大计算能力。
半性能向量长度 n1/2
半性能向量长度n1/2是指当向量处理机的性能达到其峰值的一半时所对应的向量长度。这个参数用来评价向量功能部件的流水线建立时间对向量处理机性能的影响,较小的n1/2意味着向量处理机可以在处理较短向量时就能发挥较好的性能。
向量长度临界值 nc
向量长度临界值nc是指向量处理机开始比标量处理快的向量长度。这个参数对于评价向量处理机在应对不同规模的问题时的适应性至关重要。
性能评价示例
通过对向量处理机执行特定向量操作的时间进行分析,可以具体评估其性能。例如,执行DAXPY操作(Y=aX+Y,其中X和Y是向量,a是标量)时,可以通过计算执行时间、并考虑向量指令的编队、是否采用分段开采技术、链接技术等因素,来综合评估向量处理机的性能。
向量处理机通过将计算高度并行化,并采用高效的数据流动和处理策略,能够在科学计算和大规模数据处理等领域提供卓越的性能。通过上述参数的综合评价,用户和设计者可以更好地理解和比较不同向量处理机的性能,为高性能计算任务的优化和硬件选择提供依据。