CN107977192A - 用于执行低功率和低延时多精度计算的方法和系统 - Google Patents
用于执行低功率和低延时多精度计算的方法和系统 Download PDFInfo
- Publication number
- CN107977192A CN107977192A CN201610918142.5A CN201610918142A CN107977192A CN 107977192 A CN107977192 A CN 107977192A CN 201610918142 A CN201610918142 A CN 201610918142A CN 107977192 A CN107977192 A CN 107977192A
- Authority
- CN
- China
- Prior art keywords
- result
- alu
- piece
- simd
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000010606 normalization Methods 0.000 claims description 3
- 230000004087 circulation Effects 0.000 description 13
- 238000003860 storage Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
本公开涉及一种用于在多个算术逻辑单元(ALU)中执行多精度计算的方法和设备,其包括使第一单指令/多数据(SIMD)块通道装置与第二SIMD块通道装置配对以产生在所述第一与第二通道装置之间具有单层级交错的第一块对。使第三SIMD块通道装置与第四SIMD块通道装置配对以产生在所述第三与第四通道装置之间具有单层级交错的第二块对。在所述第一块对和所述第二块对处接收多个源输入。所述第一块对计算第一结果,且所述第二块对计算第二结果。
Description
背景技术
单指令/多数据(SIMD)块内的常规向量着色器处理器包含具有算术逻辑单元(ALU)的四个管线通道(例如,X、Y、Z和W通道),它们在每一循环中彼此交错从而总共得到三个额外层级。考虑相应管线级内以及相应管线级之间的5到8个循环的内部ALU延时,由于SIMD块中的支持操作/计算的每一额外管线级,因此会存在明显的硅占据面积和功耗开销。
也就是说,每一ALU包含相邻通道的ALU之间的单循环差异。使用三级通道交错架构(即,通道时移)允许实现常见的向量点积运算,但是引入了额外的管线分级寄存器。此架构也可通过在相邻SIMD通道中使用32位ALU而用于64位浮点运算实现。由于三层级通道交错架构的使用引入了三个额外管线级,所以这导致单向量着色器处理器内的寄存器硬件和延时开销。因此,由于大多数寄存器触发器含有数据且经常双态触发,因此所述三个管线级消耗了有用的功率。三层级交错通道架构的实施例可以参见美国专利No.8,468,191,所述美国专利如同完整陈述那样以引用方式并入本文。
附图说明
从以下通过结合附图给出的描述可得到更详细的理解,附图中:
图1是其中可实现一个或多个所公开实施方案的实施例装置的框图;
图2A是用于执行多精度计算的具有三层级通道交错的常规SIMD设备的实施例图;
图2B是用于执行多精度计算的具有成对通道和单层级交错的实施例SIMD设备的图;
图3A是使用在具有二分之一速率性能的三个层级中交错的四个32位ALU的常规64位浮点运算实现的实施例;
图3B是用于在具有成对通道和所述成对通道中的单层级交错的SIMD块中执行具有二分之一速率性能的64位精度计算对比32位精度计算的实施例管线图;
图4是包含时钟门控成对SIMD通道的用于执行具有四分之一速率性能的64位精度计算对比32位精度的实施例管线图,其中所述成对通道中具有单层级交错;
图5A是用于在SIMD通道中执行超越两遍次单精度和双精度计算的第一遍次的实施例管线图,其中成对通道中具有单层级交错;以及
图5B是用于在SIMD通道中执行超越两遍次单精度和双精度计算的第二遍次的实施例管线图,其中成对通道中具有单层级交错。
具体实施方式
虽然下文提供了实施方案的更详细描述,但简要来说公开了用于以减少的延时和低功耗执行多精度计算的方法和设备。对于双精度和超越指令,利用多于一个单精度乘法器。因此,利用四个算术逻辑单元(ALU)一起来完成一个线程的双精度或超越指令计算。通过利用两个而不是四个ALU之间的相依性,并且利用额外的迭代遍次,一个线程的超越指令计算可以在比常规方案少的数目的循环中完成。对于双精度乘-加指令计算,在两个ALU之间利用两个额外乘法器。因此,可以实现相同处理量,同时消除四个ALU之间的相依性,因此通过消除管线中的两个触发器层级而减少延时且节省硅面积。另外,由于指令的执行时间/延迟和所需的管线寄存器可以减少,因此可以在整个SIMD数据路径中在功率节省的情况下执行指令。
公开了一种用于在多个算术逻辑单元(ALU)中执行多精度计算的方法。所述方法包含使第一单指令/多数据(SIMD)块通道装置与第二SIMD块通道装置配对以产生在第一与第二通道装置之间具有单层级交错的第一块对。使第三SIMD块通道装置与第四SIMD块通道装置配对以产生在第三与第四通道装置之间具有单层级交错的第二块对。在第一块对和第二块对处接收多个源输入。第一块对计算第一结果,且第二块对计算第二结果。
公开了一种用于执行多精度计算的设备。所述设备包含第一算术逻辑单元(ALU)、第二ALU、第三ALU和第四ALU。第二ALU以操作方式与第一ALU连接,其中第一ALU与具有单层级交错的第二ALU配对,作为被配置成用于接收多个输入且计算第一结果的第一计算单元。第四ALU以操作方式与第三ALU连接,其中第三ALU与具有单层级交错的第四ALU配对,作为被配置成用于接收所述多个输入且计算第二结果的第二计算单元。
一种非暂时性计算机可读媒介,其上记录有指令,所述指令当由计算装置执行时致使所述计算装置执行所公开的操作。所述操作包含使第一单指令/多数据(SIMD)块通道装置与第二SIMD块通道装置配对以产生在第一与第二通道装置之间具有单层级交错的第一块对。使第三SIMD块通道装置与第四SIMD块通道装置配对以产生在第三与第四通道装置之间具有单层级交错的第二块对。在第一块对和第二块对处接收多个源输入。第一块对计算第一结果,且第二块对计算第二结果。
图1是其中可实现一个或多个所公开实施方案的实施例装置100的框图。装置100可以包含计算机,例如桌上型计算机、平板计算机、游戏装置、手持式装置、机顶盒、电视机或移动电话。装置100包含处理器102、存储器104、存储装置106、一个或多个输入装置108,和一个或多个输出装置110。装置100还可任选地包含输入驱动器112和输出驱动器114。应了解,装置100可包含图1中未图示的额外组件。
处理器102可包含中央处理单元(CPU)、图形处理单元(GPU)、位于同一裸片上的CPU和GPU,或者一个或多个处理器核心,其中每一处理器核心可为CPU或GPU。存储器104可与处理器102位于同一裸片上,或者可与处理器102分开定位。存储器104可包含易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓冲存储器。
存储装置106可包含固定或可移除式存储装置,例如硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108可包含键盘、小键盘、触摸屏、触摸垫、检测器、麦克风、加速度计、陀螺仪、生物扫描仪,或网络连接(例如,用于无线IEEE 802信号的发射和/或接收的无线局域网卡)。输出装置110可包含显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线,或网络连接(例如,用于无线IEEE 802信号的发射和/或接收的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,且准许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,且准许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114是任选的组件,且装置100在输入驱动器112和输出驱动器114不存在的情况下将以相同方式操作。虽然所描述的实施方案包含主显示器,但主显示器并非需要的。因此,可以仅包含源视频装置。以此方式,控制地域可以是具有多个便携式装置且无主显示器的办公室环境。
图2A是用于执行多精度计算的具有三层级通道交错的常规SIMD设备200A的实施例图。设备200A包含多个ALU通道W、Z、Y和X(标示为202、204、206和208)。通道ALU 202、204、206和208例如为乘-加单元(MADD)。布置产生器250与ALU 202、204、206和208通信以为ALU202、204、206和208提供输入。如图2A中所示,ALU 202可以将结果提供到ALU 204,ALU 204可以将结果提供到ALU 206,且ALU 206可以将结果提供到ALU 208。
图2B是用于执行多精度计算的具有成对通道和单层级交错的实施例SIMD设备200B的图。类似于设备200A,设备200B包含多个ALU通道W、Z、Y和X(标示为202、204、206和208)。通道ALU 202、204、206和208例如为乘-加单元(MADD)。布置产生器250与ALU 202、204、206和208通信以为ALU 202、204、206和208提供输入。如图2中所示,由于单循环时移操作模式,因此ALU 202将结果提供到ALU 204,而ALU 206将结果提供到ALU 208。
以下映射表(即,表1)表示用于每一通道的值的实施例映射。也就是说,源(例如,src_a、src_b和src_c)映射到表1中的值或函数,其中Mad_f_32是等于A*B+C的32位链式乘-加运算。变量V0、V1和V2是用作计算中的源操作数的选定向量寄存器内容。
表1
图3A是使用在具有二分之一速率性能的三个层级中交错的四个32位ALU的常规64位浮点运算实现300A对比32位浮点运算的实施例。图3A描绘图2A的设备200A利用具有八个(即,C0到C7)主循环/级的常规三层级交错管线用于执行二分之一速率的64位精度计算对比32位精度计算的详细图。分别地,两个通道(Z和X)提供64位结果,而通道W和Y在早两个循环中执行运算以支持Z和X通道(即,C1到C2和C3到C4)。在运算的剩余时间期间,W和Y通道双态触发为空闲且消耗功率而不产生相关结果。由于三层级交错,因此Y和X通道比W通道晚两个循环操作,这引入了额外的延时和管线寄存器。在时钟循环C6和C7中对结果执行浮点归一化,然后将结果输出到通道Z和X的输出寄存器。
图3B是用于在具有成对通道和所述成对通道中的单层级交错的SIMD块中执行具有二分之一速率性能的64位精度计算对比32位精度计算的实施例管线图305。图305描述了图2B的设备200B的运算,其具有减少数目的所需循环以及在运算期间被部分地时钟门控的32位通道。因此,此结构引入了SIMD通道配对以及仅单层级(即,1层级)交错。而且,通过对空闲的管线循环和空闲的通道进行时钟门控,可以减少功耗。图3B包含通道W、Z、Y和X,其可分别与ALU 202、204、206和208相关联。与图2A中描绘的常规设备200A相反,这些通道在每一对中以一个时钟移位交错(例如,1个额外级而非3个)。多个源输入(例如,src_a、src_b和src_c)在数据布置循环C0中组合在一起以为随后的计算循环准备操作数。可以在时钟循环(例如,C1、C2、C3、C4和C5)期间执行对输入的运算,以使用加法器310、乘法器320或多路复用器(MUX)330得到最终结果。
如图3B中所示,W通道结果和Y通道结果是在时钟循环C1中计算。W通道结果在时钟循环C2提供到Z通道中的ALU 204。Y通道结果也在时钟循环C2提供到X通道中的ALU 208。在此之后,在随后的C2、C3、C4和C5循环上,W和Y通道均被动态地时钟门控以阻挡任何数据改变和传送,从而提供功率节省。通道Z和X在循环C2到C5上在正常模式中继续操作,从而为它们的相应输出寄存器提供计算。类似于图3A,在最后两个时钟循环(在此情况下为C4和C5)中对结果执行浮点归一化,然后将结果输出到通道Z和X的输出寄存器。虽然未示出动态时钟门控电路,但指令操作码解码器和适当的状态机可以每通道和每级为基础产生任何时钟门控控制序列。
图4是包含时钟门控成对SIMD通道的用于执行具有四分之一速率性能的64位精度计算对比32位精度的实施例管线图400,其中所述成对通道中具有单层级交错。图4包含通道W、Z、Y和X,其例如分别与ALU 202、204、206和208相关联。与图2A中描绘的常规设备相反,图4中描绘的通道在每一对中以一个时钟移位交错(例如,1个额外级而非3个),类似于图2B的设备200B。多个源输入(例如,src_a、src_b和src_c)在数据布置循环C0中组合在一起以计算结果。可以在时钟循环(例如,C1、C2、C3、C4和C5)期间执行对输入的运算,以使用加法器410或乘法器420得到最终结果。
如图4中所示,在时钟循环C1和C2期间计算Y通道结果。Y通道结果在时钟循环C2提供到X通道中的ALU 208。来自X通道中的时钟循环C1的结果在时钟循环C2中与src_c输入求和。通道W和Z未被使用和动态地时钟门控,(即,空闲和在需要时接通),除了通道Z中的时钟循环C5,其中结果从通道X复制到用于通道Z的输出寄存器。因此,在通道X和Z的输出寄存器处输出结果。
图5A到5B是用于使用成对通道中的单层级交错在具有成对通道的SIMD块上执行超越两遍次单精度计算的实施例管线图500。图5A是用于在SIMD通道中执行超越两遍次单精度和双精度计算的第一遍次的实施例管线图,其中成对通道中具有单层级交错,而图5B是用于在SIMD通道中执行超越两遍次单精度和双精度计算的第二遍次的实施例管线图,其中成对通道中具有单层级交错。
以下映射表(即,表2)指示用于超越函数的两遍次实现的每一通道的映射。也就是说,源(例如,src_a、src_b和src_c)映射到表2中的值或函数。
表2
图5A包含通道W、Z、Y和X,其例如分别与ALU 202、204、206和208相关联。多个源输入(例如,src_a、src_b和src_c)在数据布置循环C0中组合在一起以为随后的结果计算准备数据。可以在时钟循环(例如,C1、C2、C3、C4和C5)期间执行对输入的运算,以使用加法器510、乘法器520和查找表(标示为Δx、斜率1、斜率2、斜率3和点查找表(LUT))得到最终结果。
参见图5A,在通道Z和X上在时钟循环C1和C2中在第一遍次(例如,遍次0或表2中的超越遍次0)期间执行运算。例如,在C1期间利用查找表Δx、斜率2和斜率3。在时钟循环C2期间,将Δx和斜率3的结果相乘且随后相加到来自斜率2的结果。用于遍次0的通道Z和X的所得结果在C3中返回到src_a,用于在第二遍次(即,遍次1)期间使用。未使用的通道W和Y被时钟门控而不消耗动态功率。作用中的通道Z和X中的循环C3到C5也可以连同空闲的通道W和Y一起被时钟门控或跳过。
现在参见图5B,在时钟循环C1、C2和C3中在第二遍次(例如,遍次1或表2中的超越遍次1)期间执行运算。举例来说,在时钟循环C1期间,利用查找表Δx、斜率1和点。将Δx查找表和斜率1的结果相乘,且将所得结果相加到W和Y通道中的点查找表的结果。在C2期间,将来自遍次0的Z通道结果与src_b相乘,且将所得结果相加到src_c。而且在C2期间,将来自遍次0的X通道结果与src_b相乘,且将所得结果相加到src_c。
在时钟循环C3期间,在Z和X通道中将来自时钟循环C1和C2的所得结果相加在一起以在Z和X通道中提供结果。举例来说,在Z通道中,将来自C2的结果乘以Δx2,在时钟循环C1中将其结果相加到来自W通道的结果。而且在时钟循环C3期间,在X通道中,将来自C2的结果乘以Δx2,在时钟循环C1中将其结果相加到来自Y通道的结果。如图5B中所示,在循环C4到C5中,W和Y通道不在作用中,且可应用时钟门控技术来减少动态功率。另外,Z和X通道中的结果在循环C4和C5中经历浮点归一化,然后作为结果输出到Z和X通道的输出寄存器。
应了解,基于本文的公开,许多变化是可能的。虽然上文以具体组合描述了特征和元件,但每一特征或元件可在没有其它特征和元件的情况下单独使用,或者在具有或没有其它特征和元件的情况下以各种组合来使用。
所提供的方法可在通用计算机、处理器或处理器核心中实现。合适的处理器包含例如通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、联合DSP核心的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任一其它类型的集成电路(IC),和/或状态机。可以通过使用经处理的硬件描述语言(HDL)指令的结果以及包含网表的其它中间数据(这些指令能够存储在计算机可读媒介上)配置制造工艺来制造这些处理器。此处理的结果可为掩模制品,所述掩模制品随后在半导体制造工艺中用来制造实施本发明的方面的处理器。
本文提供的方法或流程图可在合并于计算机可读存储媒介中以供通用计算机或处理器执行的计算机程序、软件或固件中实现。计算机可读存储媒介的实施例包含只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓冲存储器、半导体存储器装置、例如内部硬盘和可移除盘等磁性媒介、磁光媒介,以及例如CD-ROM盘和数字多功能盘(DVD)等光学媒介。
Claims (20)
1.一种用于在多个算术逻辑单元(ALU)中执行多精度计算的方法,其包括:
使第一单指令/多数据(SIMD)块通道装置与第二SIMD块通道装置配对以产生在所述第一与第二通道装置之间具有单层级交错的第一块对;
使第三SIMD块通道装置与第四SIMD块通道装置配对以产生在所述第三与第四通道装置之间具有单层级交错的第二块对;
在所述第一块对和所述第二块对处接收多个源输入;
由所述第一块对计算第一结果;以及
由所述第二块对计算第二结果。
2.如权利要求1所述的方法,其进一步包括在SIMD块通道装置未用于计算的周期期间对所述SIMD块通道装置中的一者或多者进行时钟门控。
3.如权利要求1所述的方法,其进一步包括在所述第一SIMD块通道装置的输出寄存器处输出所述第一结果。
4.如权利要求1所述的方法,其进一步包括在所述第二SIMD块通道装置的输出寄存器处输出所述第一结果。
5.如权利要求1所述的方法,其进一步包括在所述第三SIMD块通道装置的输出寄存器处输出所述第二结果。
6.如权利要求1所述的方法,其进一步包括在所述第四SIMD块通道装置的输出寄存器处输出所述第二结果。
7.如权利要求1所述的方法,其中所述第一结果和所述第二结果是相同结果。
8.如权利要求1所述的方法,其进一步包括对所述结果执行归一化。
9.如权利要求1所述的方法,其中所述第一结果是在超越运算的第一遍次中产生并且由所述第一块对利用以计算用于输出的第三结果。
10.如权利要求9所述的方法,其中所述第二结果是在超越运算的所述第一遍次中产生并且由所述第二块对利用以计算用于输出的第四结果。
11.一种用于执行多精度计算的设备,其包括:
第一算术逻辑单元(ALU);
第二ALU,其以操作方式与所述第一ALU连接,其中所述第一ALU与具有单层级交错的第二ALU配对,作为被配置成用于接收多个输入且计算第一结果的第一计算单元;
第三ALU;以及
第四ALU,其以操作方式与所述第三ALU连接,其中所述第三ALU与具有单层级交错的所述第四ALU配对,作为被配置成用于接收所述多个输入且计算第二结果的第二计算单元。
12.如权利要求11所述的设备,其进一步包括布置产生器,所述布置产生器以操作方式连接到所述第一、第二、第三和第四ALU以将所述多个输入提供到相应ALU。
13.如权利要求11所述的设备,其进一步包括时钟门控装置,所述时钟门控装置以操作方式与所述第一、第二、第三和第四ALU耦合,用于在ALU未用于计算的周期期间对所述ALU中的一者或多者进行时钟门控。
14.如权利要求11所述的设备,其中所述第一、第二、第三和第四ALU包含相应输出寄存器。
15.如权利要求14所述的设备,其中所述第一结果在所述第一ALU的所述输出寄存器处输出。
16.如权利要求14所述的设备,其中所述第一结果在所述第二ALU的所述输出寄存器处输出。
17.如权利要求14所述的设备,其中所述第二结果在所述第三ALU的所述输出寄存器处输出。
18.如权利要求14所述的设备,其中所述第二结果在所述第四ALU的所述输出寄存器处输出。
19.如权利要求11所述的设备,其中所述第一结果是在超越运算的第一遍次中产生并且由所述第一计算单元利用以计算用于输出的第三结果,且所述第二结果是在超越运算的所述第一遍次中产生并且由所述第二计算单元利用以计算用于输出的第四结果。
20.一种非暂时性计算机可读媒介,其上记录有指令,所述指令当由计算装置执行时致使所述计算装置执行包含以下各项的操作:
使第一单指令/多数据(SIMD)块通道装置与第二SIMD块通道装置配对以产生在所述第一与第二通道装置之间具有单层级交错的第一块对;
使第三SIMD块通道装置与第四SIMD块通道装置配对以产生在所述第三与第四通道装置之间具有单层级交错的第二块对;
在所述第一块对和所述第二块对处接收多个源输入;
由所述第一块对计算第一结果;以及
由所述第二块对计算第二结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610918142.5A CN107977192A (zh) | 2016-10-21 | 2016-10-21 | 用于执行低功率和低延时多精度计算的方法和系统 |
US15/342,809 US11409536B2 (en) | 2016-10-21 | 2016-11-03 | Pairing SIMD lanes to perform double precision operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610918142.5A CN107977192A (zh) | 2016-10-21 | 2016-10-21 | 用于执行低功率和低延时多精度计算的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107977192A true CN107977192A (zh) | 2018-05-01 |
Family
ID=61970217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610918142.5A Pending CN107977192A (zh) | 2016-10-21 | 2016-10-21 | 用于执行低功率和低延时多精度计算的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11409536B2 (zh) |
CN (1) | CN107977192A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11630667B2 (en) | 2019-11-27 | 2023-04-18 | Advanced Micro Devices, Inc. | Dedicated vector sub-processor system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198472A1 (en) * | 2004-03-04 | 2005-09-08 | Sih Gilbert C. | Digital signal processors with configurable dual-MAC and dual-ALU |
EP1936492A1 (en) * | 2006-12-22 | 2008-06-25 | Telefonaktiebolaget LM Ericsson (publ) | SIMD processor with reduction unit |
US20130346462A1 (en) * | 2007-08-15 | 2013-12-26 | Tyson BERGLAND | Interconnected arithmetic logic units |
US9081634B1 (en) * | 2012-11-09 | 2015-07-14 | Xilinx, Inc. | Digital signal processing block |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6986025B2 (en) * | 2001-06-11 | 2006-01-10 | Broadcom Corporation | Conditional execution per lane |
US7107305B2 (en) * | 2001-10-05 | 2006-09-12 | Intel Corporation | Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions |
US8074051B2 (en) * | 2004-04-07 | 2011-12-06 | Aspen Acquisition Corporation | Multithreaded processor with multiple concurrent pipelines per thread |
US8024394B2 (en) * | 2006-02-06 | 2011-09-20 | Via Technologies, Inc. | Dual mode floating point multiply accumulate unit |
US8468191B2 (en) | 2009-09-02 | 2013-06-18 | Advanced Micro Devices, Inc. | Method and system for multi-precision computation |
US8595467B2 (en) * | 2009-12-29 | 2013-11-26 | International Business Machines Corporation | Floating point collect and operate |
US9207908B1 (en) * | 2013-01-29 | 2015-12-08 | Altera Corporation | Digital signal processing blocks with embedded arithmetic circuits |
US9558002B2 (en) * | 2014-09-30 | 2017-01-31 | Imagination Techologies Limited | Variable length execution pipeline |
US20160125263A1 (en) * | 2014-11-03 | 2016-05-05 | Texas Instruments Incorporated | Method to compute sliding window block sum using instruction based selective horizontal addition in vector processor |
-
2016
- 2016-10-21 CN CN201610918142.5A patent/CN107977192A/zh active Pending
- 2016-11-03 US US15/342,809 patent/US11409536B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198472A1 (en) * | 2004-03-04 | 2005-09-08 | Sih Gilbert C. | Digital signal processors with configurable dual-MAC and dual-ALU |
EP1936492A1 (en) * | 2006-12-22 | 2008-06-25 | Telefonaktiebolaget LM Ericsson (publ) | SIMD processor with reduction unit |
US20130346462A1 (en) * | 2007-08-15 | 2013-12-26 | Tyson BERGLAND | Interconnected arithmetic logic units |
US9081634B1 (en) * | 2012-11-09 | 2015-07-14 | Xilinx, Inc. | Digital signal processing block |
Also Published As
Publication number | Publication date |
---|---|
US20180113709A1 (en) | 2018-04-26 |
US11409536B2 (en) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101173405B1 (ko) | 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장 | |
US6393454B1 (en) | Booth multiplier with low power, high performance input circuitry | |
US20090113169A1 (en) | Reconfigurable array processor for floating-point operations | |
US8046564B2 (en) | Reconfigurable paired processing element array configured with context generated each cycle by FSM controller for multi-cycle floating point operation | |
Kumm et al. | An efficient softcore multiplier architecture for Xilinx FPGAs | |
US9176709B2 (en) | Shared integer, floating point, polynomial, and vector multiplier | |
JP2002108606A (ja) | スティッキービット生成回路及び乗算器 | |
Hickmann et al. | Intel nervana neural network processor-t (nnp-t) fused floating point many-term dot product | |
US20060248137A1 (en) | Apparatus and method for implementing floating point additive and shift operations | |
JP2001256199A (ja) | データプロセッサ及びデータ処理システム | |
KR20210059623A (ko) | 이진 및 삼진 신경망 추론을 위한 전자 장치 및 방법 | |
CN107977192A (zh) | 用于执行低功率和低延时多精度计算的方法和系统 | |
TW201816715A (zh) | 用於影像處理之設備及方法 | |
Kunchigi et al. | Low power square and cube architectures using Vedic Sutras | |
CN110727412B (zh) | 一种基于掩码的混合浮点乘法低功耗控制方法及装置 | |
US9164728B1 (en) | Ternary DSP block | |
KR20080094812A (ko) | 개선된 감소 트리 회로를 갖는 부스 곱셈기 | |
Karthik et al. | Design and Implementation of 64 Bit High-Speed Vedic Multiplier | |
Nandhini et al. | Implementation of Normal Urdhva Tiryakbhayam Multiplier in VLSI | |
JPH05173761A (ja) | 2進整数乗算器 | |
Heron et al. | Image compression algorithms using re-configurable logic | |
Chaudhary et al. | Design of 64 bit High Speed Vedic Multiplier | |
Thiruvenkadam et al. | An area efficient multi-mode quadruple precision floating point adder | |
Ryu | Review and Analysis of Variable Bit-precision MAC Microarchitectures for Energy-efficient AI Computation | |
CN101923534B (zh) | 应用sse指令集对视音频信号的对称卷积核进行卷积的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |