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,并且上述第一类型 ...
【技术保护点】
一种全精度及部分精度数值的计算方法,由一指令解码单元执行,包含:解码从一编译器传来的一指令请求;以及依据上述指令请求中的一指令模式执行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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。