全精度及部分精度数值的计算方法及装置制造方法及图纸

技术编号:16499934 阅读:66 留言:0更新日期:2017-11-04 11:18
本发明专利技术的实施例提出一种全精度及部分精度数值的计算装置,包含第一类运算通道;及多个第二类型通道,耦接于第一类运算通道。当运行于第一模式时,第一类运算信道及第二类运算信道中的每一者独立完成一组第一类型数据的计算。当运行于第二模式时,第二类运算通道的每一者计算一组第二类型数据的一部份以产生部分结果,并且第二类运算通道合并第一类运算通道输出的部分结果并使用合并结果完成该组第二类型数据的计算。

Method and device for calculating numerical accuracy and precision parts

The embodiment of the invention provides a calculating device with full precision and partial precision value, which comprises a first type operation channel and a plurality of second types of channels, and is coupled with the first type of operation channel. When running in the first mode, each of the first class of operational channels and the two class of computing channels completes the computation of a group of the first type of data independently. When operating in the second mode, each of the second categories of operational channel calculation of a part of a group of second types of data to produce partial results, and the results of the second types of operation with the first operational channel channel output part and use the combined results to complete the calculation of the second types of data.

【技术实现步骤摘要】
全精度及部分精度数值的计算方法及装置
本专利技术涉及一种图形处理单元技术,特别是一种全精度及部分精度数值的计算方法及装置。
技术介绍
图形处理单元的架构通常具有数百个基本着色器处理单元(basicshaderprocessingunits),又称为流处理器(streamprocessors)。每一个流处理器于每个周期处理一个单指令多数据(SIMD,SingleInstructionMultipleData)执行线程的指令,接着于下一个周期处理另一个单指令多数据执行线程。一般而言,为符合IEEE754规范,每个流处理器要能计算32比特浮点数(FP32)或整数数值(INT32)。32比特数值可称为全精度(FP,FullPrecision)数值。然而,于一些应用中,例如,画素着色器(pixelshader)、图像处理(imageprocessing)等,流处理器只要能计算较低精度的数值就能满足需求,例如,16/18/24比特浮点数(FP16/18/24)等。16/18/24比特数值可称为部分精度(PP,PartialPrecision)数值。因此,本专利技术提出一种全精度及部分精度数值的计算方法及装置,用以提升流处理器的效能。
技术实现思路
本专利技术的实施例提出一种全精度及部分精度数值的计算方法,由指令解码单元执行,包含下列步骤:解码从一编译器传来的一指令请求;以及依据指令请求中的指令模式执行m次循环以产生m个计算第一类型数据的微指令或执行n次循环以产生n个计算第二类型数据的微指令,使得多个算术逻辑组完成一个执行线程的多个通道计算。其中,m小于n,并且上述第一类型数据的精度低于上述第二类型数据的精度。本专利技术的实施例提出一种全精度及部分精度数值的计算装置,包含第一类运算通道;及多个第二类运算通道,耦接于第一类运算通道。当运行于第一模式时,第一类运算信道及第二类运算信道中的每一者独立完成一组第一类型数据的计算。当运行于第二模式时,第二类运算通道的每一者计算一组第二类型数据的一部份以产生部分结果,并且第二类运算通道合并第一类运算通道输出的部分结果并使用合并结果完成该组第二类型数据的计算。附图说明图1是通用流处理器的流水线示意图。图2是依据本专利技术实施例的流处理器的流水线示意图。图3A是依据本专利技术实施例的FP浮点数示意图。图3B是依据本专利技术实施例的PP浮点数示意图。图4是依据本专利技术实施例的算术逻辑组的第一类运算通道的硬件架构图。图5是依据本专利技术实施例的第二类运算通道的硬件架构图。具体实施方式以下说明是完成专利技术的较佳实现方式,其目的在于描述本专利技术的基本精神,但并不用以限定本专利技术。实际的
技术实现思路
必须参考之后的权利要求范围。必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。在权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。图1是通用流处理器的流水线示意图。流处理器的流水线可包含四个顺序性阶段:指令解码(ID,InstructionDecode);数据提取(DF,DataFetch);执行(EX,Execute)以及回写(WB,WriteBack)。回写阶段产生的最终结果可储存至通用缓存器(CR,CommonRegister),或输出至后处理单元。详细来说,指令解码单元120解码从编译器(compiler)传来的指令请求110,并通知需要取得数据或常数的通用缓存器地址121以及/或常数缓存器地址123。指令解码单元120可取得指令请求110中的操作码(Opcode,OperationCode)。数据提取单元130取得通用缓存器地址121的数据133以及/或常数缓存器地址123的常数135,如果需要,通知欲写回的通用缓存器地址131。取得的数据133以及/或常数135又可称为操作数(Operand),可为全精度数值及部分精度数值。执行单元140可从数据提取单元130接收操作数以及/或从通用缓存器或常数缓存器(CB,ConstantBuffer)接收数据或常数141。可依据操作码控制解多任务器(DEMUX,De-multiplexer)151将数据提取单元130连接上算术单元(ArithmeticUnit)153、比较/逻辑单元(Compare/LogicUnit)155及选择/旁路单元(Selection/BranchUnit)157中之一者,用以将操作码及操作数从数据提取单元130传送至连接上的单元。此外,可依据操作码控制控制多任务器(MUX,Multiplexer)159将算术单元153、比较/逻辑单元155及选择/旁路单元157中之连接一者连接上回写单元(WriteBackUnit)160,用以将执行结果传送至回写单元160。算术单元153可依据操作码对操作数进行数学计算。数学计算包含加、减、乘、除、四舍五入等。比较/逻辑单元155可依据操作码对操作数进行比较或逻辑操作。比较操作包含取大值、取小值、数值比较等,逻辑操作包含及(AND)、或(OR)、非(NOT)、或非(NOR)、互斥或(XOR)等。算术单元153及比较/逻辑单元155可统称为算术逻辑单元(ALU,ArithmeticLogicUnit)。回写单元160可将运算后的结果161写回至通用缓存器,或者传送至加载/储存单元181、取样单元183以及特殊函数单元185中之一者。详细来说,判断单元171依据操作数中的目的地地址决定将运算结果输出至通用缓存器,或者加载/储存单元181、取样单元183以及特殊函数单元185中的一者。此外,可依据操作数中的目的地地址控制解多任务器173将运算结果输出至加载/储存单元181、取样单元183以及特殊函数单元185中之一者。特殊函数单元185实施复杂数学运算,例如正弦(SIN)、余弦(COS)、根数(SQRT)等。加载/储存单元181、取样单元183以及特殊函数单元185可统称为后处理单元(Post-processingUnit)。一个执行线程(thread)包含可合并执行的32个通道(lanes),或称为SIMD32。图2是依据本专利技术实施例的流处理器的流水线示意图。一个流处理器可包含多个算术逻辑组(ALG,ArithmeticLogicGroups),例如四个算术逻辑组200a至200d。每个算术逻辑组(简称为ALU-Quad)可包含组控制器290及四个运算单元(computationunits)210、230、250及270,用以于一个周期(cycle)并行执行4组部分精度(PP,PartialPrecision)数据的运算或执行1组全精度(FP,FullPrecision)数据的运算。所以,每个流处理器可支持4组FP或16组PP数据的运算。运算单元210、230、250及270中之任一者可执行24比特数值(或可称为PP数值)的运算,并且结合运算单元210、230、250及270可执行32比特数值(本文档来自技高网
...
全精度及部分精度数值的计算方法及装置

【技术保护点】
一种全精度及部分精度数值的计算方法,由一指令解码单元执行,包含:解码从一编译器传来的一指令请求;以及依据上述指令请求中的一指令模式执行m次循环以产生m个计算一第一类型数据的微指令或执行n次循环以产生n个计算一第二类型数据的微指令,使得多个算术逻辑组完成一个线程的多个通道计算,其中,m小于n,并且上述第一类型数据的精度低于上述第二类型数据的精度。

【技术特征摘要】
1.一种全精度及部分精度数值的计算方法,由一指令解码单元执行,包含:解码从一编译器传来的一指令请求;以及依据上述指令请求中的一指令模式执行m次循环以产生m个计算一第一类型数据的微指令或执行n次循环以产生n个计算一第二类型数据的微指令,使得多个算术逻辑组完成一个线程的多个通道计算,其中,m小于n,并且上述第一类型数据的精度低于上述第二类型数据的精度。2.如权利要求1所述的全精度及部分精度数值的计算方法,其中,上述指令模式纪录于上述指令请求的最高比特。3.如权利要求1所述的全精度及部分精度数值的计算方法,其中,上述第一类型数据为使用24比特表示的一部分精度数据,上述第二类型数据为使用32比特表示的一全精度数据,m为2,以及n为8。4.如权利要求1所述的全精度及部分精度数值的计算方法,其中,每一上述算术逻辑组包含:一第一类运算通道;以及多个第二类运算通道,其中,当上述指令模式为一第一模式时,上述第一类运算通道及上述第二类运算通道中的每一者独立完成一组第一类型数据的计算;以及,当上述指令模式为一第二模式时,上述第二类运算通道的每一者计算一组第二类型数据的一部份以产生部分结果,并且上述第二类运算通道合并上述第一类运算通道输出的上述部分结果并使用上述合并结果完成上述组第二类型数据的计算。5.如权利要求4所述的全精度及部分精度数值的计算方法,其中,每一上述算术逻辑组包含:组控制器,依据一微指令类型指示上述第一类运算通道及上述第二类运算通道中的每一者运行于上述第一模式或上述第二模式。6.如权利要求4所述的全精度及部分精度数值的计算方法,其中,上述第一类运算通道及上述第二类运算通道中的每一者,运行于上述第一模式时,独立完成一计算:dest=Src0xSrc1+Src2,Src0、Src1及scr2代表三个来源存储装置中的上述第一类型数据,以及dest代表即将储存于一目的地存储装置的上述第一类型数据,或即将输出至一后处理单元的上述第一类型数据。7.如权利要求4所述的全精度及部分精度数值的计算方法,其中,运行于上述第二模式时,上述第一类运算通道及上述第二类运算通道合作完成一计算:dest=Src0xSrc1+Src2,Src0、Src1及scr2代表三个来源存储装置中的上述第二类型数据,及dest代表即将储存于一目的地存储装置的上述第二类型数据,或即将输出至上述后处理单元的上述第二类型数据。8.如权利要求7所述的全精度及部分精度数值的计算方法,其中,Src0、Src1及scr2中的每一者为包含一24比特尾数的一浮点数,以及上述第二类运算通道包含一第一运算单元、一第二运算单元及一第三运算单元,其中,上述第一运算单元将Src0的尾数的高8比特乘以Src1的尾数的低16比特以产生一第一结果,上述第二运算单元将Src0的尾数的低16比特乘以Src1的尾数的高8比特以产生一第二结果,上述第三运算单元将Src0的尾数的高8比特乘以Src1的尾数的高8比特以产生一第三结果,上述第一类运算通道计算Src0的尾数的低16比特乘以Src1的尾数的低16比特以产生一第四结果,其中,上述第一类运算通道将上述第三结果左移16比特,将上述第四结果右移16比特,加总上述第一结果、上述第二结果、上述位移后第三结果及上述位移后第四结果以产生Src0xSrc1的一尾数,其中,上述第一类运算通道计算Src0xSrc1的一指数,将Src0xSrc1的上述尾数加上Src2的一尾数以产生dest的一尾数,将Src0xSrc1的上述指数及Src2的一指数中的较大者选择为dest的一指数。9.一种全精度及部分精度数值的计算装置,包含:一第一类运算通道;以及多个第二类运算通道,耦接于上述第一类运算通道,其中,当运行于一第一模式时,上述第一类运算通道及上述第二类运算通道中的每一者独立完成一组第一类型数据的计算;以及,当运行于一第二模式时,上述第二类运算通道的每一者计算一组第二类型数据的一部份以产生部分结果,并且上述第二类运算通道合并上述第一类运算通道输出的上述部分结果并使用上述合并结果完成上述组第二类型数据的计算。10.如权利要求9所述的全精度及部分精度数值的计算装置,其中,上述第一类型数据为使用24比特表示的一部分精度数据,以及上述第二类型数据为使用32比特表示的一全精度数据。11.如权利要求9所述的全精度及部分精度数值的计算装置,包含:组控制器,耦接于上述第一类运算通道及上述第二类运算信道,依据一微指令类型指示上述第一类运算通道及上述第二类运算通道中的每一者运行于上述第一模式或上述第二模式。12.如权利要求9所述的全精度及部分精度数值的计算装置,其中,上述第一类运算通道及上述第二类运算通道中的每一者,运行于上述第一模式时,独立完成一计算:dest=Src0xSrc1+Src2,Src0、Src1及scr2代表三个来源存储装置中的上述第一类型数据,以及dest代表即将储存于一目的地存储装置的上述第一类型数据,或即将输出至一后处理单元的上述第一类型数据。13.如权利要求9所述的全精度及部分精度数值的计算装置,其中,运行于上述...

【专利技术属性】
技术研发人员:张淮声梁达成陈博明卞仁玉
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1