CN117850882B - 单指令多线程的处理装置及方法 - Google Patents
单指令多线程的处理装置及方法 Download PDFInfo
- Publication number
- CN117850882B CN117850882B CN202410257036.1A CN202410257036A CN117850882B CN 117850882 B CN117850882 B CN 117850882B CN 202410257036 A CN202410257036 A CN 202410257036A CN 117850882 B CN117850882 B CN 117850882B
- Authority
- CN
- China
- Prior art keywords
- circuit
- circuits
- threads
- maximum value
- accumulation
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims abstract description 12
- 238000009825 accumulation Methods 0.000 claims description 47
- 238000001514 detection method Methods 0.000 claims description 31
- 230000000295 complement effect Effects 0.000 claims description 27
- 238000010606 normalization Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 13
- 238000009877 rendering Methods 0.000 claims description 12
- 230000009467 reduction Effects 0.000 claims description 8
- 238000011161 development Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
本公开提供一种单指令多线程的处理装置及方法。该处理装置包括:多线程执行电路,包括既有线程资源模块、附加资源模块以及选通模块,且配置为基于指定运算,通过选通模块在既有线程资源模块以及附加资源模块中使能至少其中一个电路,并通过被使能的至少一个电路对线程束的多个线程执行指定运算,本公开可在人工智能芯片多线程执行电路中直接进行规约操作,无需进行内存的访问,极大缩短了处理装置的功能延迟时间,提升了处理装置的性能。
Description
技术领域
本公开涉及一种单指令多线程的处理装置及方法。
背景技术
对于多个不同数据执行相同功能的任务,使用图形处理器(graphics processingunit,GPU)的渲染核(shader core)进行计算是更有效率的。现有图形处理器(graphicsprocessing unit,GPU)每个线程使用不同的数据并同时执行相同的任务同时处理32个线程。
对于一个深度学习线程束的结果,需要在一个线程束(warp)内,即32个线程(thread)之间进行规约(reduction)操作。规约操作指的是将多个元素进行规约成更少数量、甚至为一个元素。经常在深度学习中用于:嵌入层(embedding)和全链接层(dense)的降维、求取批量归一化层(batch normalization)的参数、池化层(pooling)选择输出值、各层结果的累加,或是反向计算时梯度值的更新。常见的规约操作为多对一的累加(浮点数或者定点数)、以及求最大值(maximum)和求最小值(minimum)。
针对SIMT32的规约操作,常见有两种方案。方案一:将数据传到内存,在图形处理器的渲染核外进行线程束内的规约算法,完成多对一的计算,再将数据取回到渲染核进行后续处理。方案二:利用随机排列(shuffle)指令,将32个线程的数据依次放到固定一个线程上,在渲染核内进行多次一对一的计算,实现多对一的功能。
然而,方案一的缺点在于需要在渲染核外部增加额外的计算资源,尤其是浮点数的移位器资源、加法器资源和比较器资源,且需要多次搬运数据。方案二的缺点是在渲染核内执行一对一的计算,需要多次指令,显然没能充分利用SIMT的计算效率。因此,方案一与方案二的方式皆造成功能延迟时间较长且延迟不固定。
发明内容
本公开是针对一种单指令多线程的处理装置,可在多线程执行电路中直接进行规约(reduction)操作,无须进行内存的访问。
根据本公开的实施例,单指令多线程的处理装置包括:多线程执行电路,包括既有线程资源模块、附加资源模块以及选通模块,且配置为基于指定运算,通过所述选通模块在所述既有线程资源模块以及所述附加资源模块中使能至少其中一个电路,并通过被使能的所述至少一个电路对线程束的多个线程执行所述指定运算。
在根据本公开的实施例的处理装置中,所述既有线程资源模块包括多个对齐移位电路、多个取反电路以及多个符号拓展电路,所述对齐移位电路的数量、所述取反电路的数量以及所述符号拓展电路的数量分别与所述多个线程的数量相对应,所述附加资源模块包括最大值检测电路、补码偏置累计电路、加法器电路、全加器电路、标准化电路、输出电路、编码电路以及解码电路。
在根据本公开的实施例的处理装置中,响应于所述指定运算为浮点数累加运算,通过所述选通模块使能所述多个对齐移位电路、所述多个取反电路以及所述多个符号拓展电路,并且使能所述最大值检测电路、所述补码偏置累计电路、所述加法器电路、所述全加器电路、所述标准化电路以及所述输出电路,并依序通过所述最大值检测电路、所述多个对齐移位电路、所述多个取反电路、所述多个符号拓展电路、所述补码偏置累计电路、所述加法器电路、所述全加器电路、所述标准化电路以及所述输出电路,执行所述浮点数累加运算。
在根据本公开的实施例的处理装置中,响应于所述指定运算为定点数累加运算,通过所述选通模块使能所述多个符号拓展电路,并且使能所述加法器电路、所述全加器电路以及所述输出电路,并依序通过所述多个符号拓展电路、所述加法器电路、所述全加器电路以及所述输出电路,执行所述定点数累加运算。
在根据本公开的实施例的处理装置中,响应于所述指定运算为极值求解运算,通过所述选通模块使能所述编码电路、所述最大值检测电路、所述解码电路以及所述输出电路,并依序通过所述编码电路、所述最大值检测电路、所述解码电路以及所述输出电路,执行所述极值求解运算。
在根据本公开的实施例的处理装置中,还包括:调度器,耦接至所述多线程执行电路,且经配置以指定所述指定运算,并传送所述指定运算至所述多线程执行电路。
在根据本公开的实施例的处理装置中,所述多线程执行电路为渲染核。
根据本公开的实施例,单指令多线程的处理方法包括:通过多线程执行电路执行指定运算,所述多线程执行电路配置有:既有线程资源模块、附加资源模块以及选通模块,其中,执行所述指定运算包括:基于指定运算,通过所述选通模块在所述既有线程资源模块以及所述附加资源模块中使能至少其中一个电路,并通过被使能的所述至少一个电路对线程束的多个线程执行所述指定运算。
基于上述,本公开的实施例可在多线程执行电路中直接进行规约操作,无须进行内存的访问。
附图说明
图1是依照本公开一实施例的单指令多线程的处理装置的框图。
图2是依照本公开一实施例的既有线程资源模块的框图。
图3是依照本公开一实施例的附加资源模块的框图。
图4是依照本公开一实施例的多线程执行电路的架构的示意图。
图5是依照本公开一实施例的浮点数累加运算所使用的模块的架构的示意图。
图6是依照本公开一实施例的定点数累加运算所使用的模块的架构的示意图。
图7是依照本公开一实施例的极值求解运算所使用的模块的架构的示意图。
附图标记说明
10:SIMT的处理装置
100:多线程执行电路
110:调度器
120:选通模块
130:既有线程资源模块
140:附加资源模块
21:对齐移位电路
22:取反电路
23:符号拓展电路
200~231:通道
301:最大值检测电路
302:编码电路
303:补码偏置累计电路
304:解码电路
305:加法器电路
306:全加器电路
307:标准化电路
308:输出电路308
401~410、4111~41131:开关电路
具体实施方式
现将详细地参考本公开的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。
图1是依照本公开一实施例的单指令多线程(single instruction multiplethreads,SIMT)的处理装置的框图。请参照图1,SIMT的处理装置10包括:多线程执行电路100以及调度器(scheduler)110。多线程执行电路100内部配置有:选通模块120、既有线程资源模块130以及附加资源模块140。多线程执行电路100用以同时运行一个线程束(warp)所包括的多个线程(thread)。多线程执行电路100例如为渲染核(shader core)。渲染核是一种处理器,可以执行单独的任务。
SIMT的处理装置10可以是图形处理器(graphics processing unit,GPU),通过调度器110驱动多线程执行电路100。调度器110例如为线程束调度器,用以管理一组包括多个线程的线程束。线程束为执行程序时的调度单位。比如,以统一计算架构(compute unifieddevice architecture,CUDA)而言,其执行程序时所调度的线程束大小为32个线程。而同在一个线程束的线程,以不同数据资源执行相同的指令,便称为是单指令多线程。调度器110将要进行处理的指令通过未绘示的分配单元(dispatch unit)而传递至多线程执行电路100进行运算。
多线程执行电路100响应于接收到的指定运算,通过选通模块120来决定要将既有线程资源模块130以及附加资源模块140中的一个或多个电路使能,并通过被使能的所述一个或多个电路对线程束的多个线程执行指定运算。指定运算例如为浮点数(float-pointnumber)累加运算、定点数(fix-point number)累加运算以及极值求解运算(找最大值或最小值)。既有线程资源模块130以及附加资源模块140中所包括的电路为实际的硬件。
浮点数是指一个数的小数点的位置不是固定的,而可以浮动。在计算机中,浮点数存储方式由符号位(sign)、指数位(exponent)和小数位(fraction)三部分组成。符号位是1位,指数位影响浮点数范围,小数位影响精度。常见的计算机浮点数格式有全精度FP32(1.8.23)、半精度FP16(1.5.10)和半精度BF16(1.8.7)。全精度FP32(1.8.23)表示32位浮点数,由1位符号位,8位指数位和23位小数位组成。半精度FP16(1.5.10)表示16位浮点数,由1位符号位,5位指数位和10位小数位组成。半精度BF16(1.8.7)由1个符号位,8位指数位(和FP32一致)和7位小数位(低于FP16)组成。
定点数是指一个数的小数点的位置是固定的。若该定点数的小数点在有效数字最右侧,则数据仅包含整数部分,则其也是一个整型数(integer number)。定点数是整型数在计算机中最常用的存储方式之一,比如整型数格式Signed/Unsigned INT就是带有32bit有效数字的定点整数。
既有线程资源模块130中所包括的多个电路为既有渲染核的固有计算资源,而附加资源模块140以及选通模块120为则是为了在多线程执行电路100执行指定运算,而额外在多线程执行电路100中新增的计算资源。在一实施例中,选通模块120包括多个开关(switch)电路。在一实施例中,多线程执行电路100具有一个执行引擎,经由执行引擎控制各开关电路的导通与否(导通或断开)进而控制是否使能(enable)既有线程资源模块130以及附加资源模块140中对应的电路。
图2是依照本公开一实施例的既有线程资源模块的框图。请参照图2,在本实施例中,既有线程资源模块130包括包括多个对齐移位(alignment shift)电路21、多个取反(negation)电路22以及多个符号拓展(sign extension)电路23。对齐移位电路21的数量、取反电路22的数量以及符号拓展电路23的数量分别与一个线程束所包括的线程的数量相对应。以处理32个线程(包括线程0~31)为例,对齐移位电路21、取反电路22以及符号拓展电路23分别包括32个。即,既有线程资源模块130包括对应至线程0~31的通道(lane)200~通道231,每一个通道包括一个对齐移位电路21、一个取反电路22以及一个符号拓展电路23。
图3是依照本公开一实施例的附加资源模块的框图。请参照图3,在本实施例中,附加资源模块140包括包括最大值检测电路301、编码电路302、补码偏置累计电路303、解码电路304、加法器电路305、全加器电路306、标准化电路307以及输出电路308。
图4是依照本公开一实施例的多线程执行电路的架构的示意图。请参照图4,选通模块120包括开关电路401~410、4111~41131、412~413。
开关电路401、开关电路402为单刀双掷(single pole double throw,SPDT)开关,开关电路403~410、4111~41131、412~413为单刀单掷(single pole single throw,SPST)开关。图4仅为其中一种实施范例,然并不以此为限。开关电路的数量、种类以及设置位置可视需求来进行适当变更。
响应于指定运算为浮点数累加运算,通过开关电路401、402、405、406、407、408、4111~41131、413,使能最大值检测电路301、既有线程资源模块130的全部固有计算资源(对应于线程0~31的每一个的对齐移位电路21、取反电路22以及符号拓展电路23)、补码偏置累计电路303、加法器电路305、全加器电路306、标准化电路307以及输出电路308,执行所述浮点数累加运算。在此状况下,开关电路403、404、409、410、412为断开状态,且编码电路302以及解码电路304不会被使能。
通过开关电路401与开关电路402导通输入端子与最大值检测电路301的输入端。通过开关电路405导通最大值检测电路301的输出端与各对齐移位电路21的输入端。通过开关电路4111~41131导通各取反电路22以及符号拓展电路23。通过开关电路406导通各取反电路22的输出端与补码偏置累计电路303的输入端。通过开关电路407导通各号拓展电路23的输出端与加法器电路305的输入端。通过开关电路408导通全加器电路306与标准化电路307。通过开关电路413导通标准化电路307与输出电路308。据此,获得如图5所示的架构。
图5是依照本公开一实施例的浮点数累加运算所使用的模块的架构的示意图。请参照图5,依序通过最大值检测电路301、多个对齐移位电路21、多个取反电路22、多个符号拓展电路23、补码偏置累计电路303、加法器电路305、全加器电路306、标准化电路307以及输出电路308,执行所述浮点数累加运算。
在此,以一个线程束包括32个线程,且一个线程具有32比特的数据进行规约(reduction)操作进行说明。最大值检测电路301具有32个输入以及1个输出。最大值检测电路301用于比较32个线程中所有数值的最大值。
每一个对齐移位电路21具有2个输入,用以接收对应的线程的数据以及最大值检测电路301的输出。例如,线程0的对齐移位电路21接收线程0的的数据以及最大值检测电路301的输出。每一个对齐移位电路21接收数据32比特以及浮点累加中最大值(即,阶数最大值),并且每一个对齐移位电路21完成以下操作,即线程n的尾数>>(阶数最大值-线程n阶数),以达到对齐尾数的效果。其中,“>>”为右移运算符,使指定值(线程n的尾数)的所有比特都右移规定的次数。在此,将阶数最大值减去线程n的阶数所获得的值作为所述规定的次数。
对齐移位电路21用以对齐浮点数的尾数。取反电路22用以将浮点数的无符号绝对值转换成有符号数,此处仅转变为反码。符号拓展电路23用以将加法器电路305的输入和输出的位宽对齐,有助于溢出检测。
补码偏置累计电路303用以收集每一个线程在通过取反电路22后所获得的补码偏置。所述补码偏置在正值时置为0,负值时为1。在补码偏置累计电路303对32个线程(线程0~线程31)的补码偏置进行累计,最终获得的整体补码偏置,其范围∈[0,32]。之后,补码偏置累计电路303将整体补码偏置传送至全加器电路306,以作为进位(carry)用。
加法器电路305具有32个输入以及2个输出。例如,加法器电路305为进位保存加法器(carry save adder,CSA),用以完成多个数值的加法,生成两个结果p0和p1。进位保留加法器是一种加法的收缩器,把32个数值收缩为2个数值(p0和p1),再传给全加器电路306,完成最终的加法。全加器电路306用于对加法器电路305产生的p0和p1进行求和,并同时加上取反阶段产生的整体补码偏置(补码偏置累计电路303的输出结果)。
标准化电路307用于进行浮点数累加结果的标准格式转换(包括尾数移位、阶数校准以及进位保留),以将全加器电路306的输出结果转换为标准的浮点格式。输出电路308用于对规约结果进行饱和(saturation)、截断(truncate)、后处理(post-process),并直接输出给后续模块。
返回图4,响应于指定运算为定点数累加运算,通过开关电路401、402、407、409、4111~41131,使能对应于线程0~31的每一个的符号拓展电路23、加法器电路305、全加器电路306以及输出电路308,执行所述定点数累加运算。在此状况下,开关电路403、404、405、406、408、412、413为断开状态,且对应于线程0~31的每一个的对齐移位电路21与取反电路22不会被使能,最大值检测电路301、编码电路302、补码偏置累计电路303、解码电路304以及标准化电路307不会被使能。
通过开关电路401与开关电路402导通输入端子与符号拓展电路23的输入端。通过开关电路4111~41131导通各取反电路22以及符号拓展电路23。通过开关电路407导通各号拓展电路23的输出端与加法器电路305的输入端。通过开关电路409导通全加器电路306与输出电路308。据此,获得如图6所示的架构。
图6是依照本公开一实施例的定点数累加运算所使用的模块的架构的示意图。请参照图6,依序通过多个符号拓展电路23、加法器电路305、全加器电路306以及输出电路308,执行定点数累加运算。32个线程分到每一个线程的符号拓展电路23,32个线程的32个符号拓展电路23的结果输入至加法器电路305,由加法器电路305将32个结果压缩为2个结果而输出至输出电路308。
返回图4,响应于指定运算为极值求解运算(找最大值或最小值),通过开关电路401、403、404、412,使能编码电路302、最大值检测电路301、解码电路304以及输出电路308,执行极值求解运算。在此状况下,开关电路402、405~410、4111~41131、409为断开状态,且既有线程资源模块130的全部固有计算资源、补码偏置累计电路303、加法器电路305、全加器电路306、标准化电路307不会被使能。
通过开关电路401导通输入端子与编码电路302的输入端。通过开关电路403导通编码电路302的输出端与最大值检测电路301的输入端。通过开关电路404导通最大值检测电路301的输出端与解码电路304的输入端。通过开关电路412导通解码电路304的输出端与输出电路308的输入端。据此,获得如图7所示的架构。
图7是依照本公开一实施例的极值求解运算所使用的模块的架构的示意图。请参照图7,依序通过编码电路302、最大值检测电路301、解码电路304以及输出电路308,执行极值求解运算。编码电路302具有32个输入以及32个输出。最大值检测电路301具有32个输入以及1个输出。解码电路304具有1个输入以及1个输出。
编码电路302接收32个线程的数据进行编码后,获得32个编码后的数据。之后,将32个编码后的数据传送至最大值检测电路301,以找出最大值。在一实施例中,编码电路302用于将不同数据格式数值上按从小到大排列,并在寻找最大值时按照从小到大的二进制进行依次编码。所述编码包括:针对浮点数,执行底下操作,即符号位取反(output[31] = ~input[31])以及阶数尾数位不变(output[30:0] = input[30:0]);针对无符号定点数,执行底下操作,即数值位不变(output[31:0] = input[31:0]);针对有符号定点数,执行底下操作,即符号位取反(output[31] = ~input[31]),数值位不变(output[30:0] = input[30:0])。“~”为取反运算符,用以将二进制表示的数字中的0变为1,1变为0。
另外,在寻找最小值,则按照从大到小的二进制进行依次编码。在进行上述编码之后,再进行逐比特取反。如此一来,不管寻找最大值或寻找最小值,在最大值检测电路301便可执行相同的操作,即比较32个线程中所有数值的最大值。
解码电路304用于将最大值检测电路301输出的二进制数值,根据功能需求(找最大值或找最小值),还原成相应的数据格式。如此,可获得最终结果。最后,透过输出电路308直接输出给后续模块。
在一实施例中,解码电路304的解码过程包括:针对浮点数,执行底下操作,即符号位取反(output[31] = ~input[31]),阶数尾数位不变(output[30:0] = input[30:0]);针对无符号定点数,执行底下操作,即数值位不变(output[31:0] = input[31:0]);针对有符号定点数,执行底下操作,即符号位取反(output[31] = ~input[31]),数值位不变(output[30:0] = input[30:0])。若为寻找最小值,解码电路304在执行解码前会先进行逐比特取反。
输出电路308用于对规约结果进行饱和、截断、后处理,并直接输出给后续模块。所谓饱和处理为:如果计算结果超出了要求的数据格式能存储的数据的最大值,那么就用最大值去表示这个数据;如果计算结果超出了要求的数据格式能存储的数据的最小值,那么就用最小值去表示这个数据。截断处理是指给某个变量赋值时,超出了该类型能表达的范围,如果采取截断策略,则变量只保留数据中低字节的数据,高字节的数据则会丢弃。
综上所述,本揭示直接在多线程执行电路内执行线程束内多对一的规约操作,无须进行外部的内存访问。根据外部输入的指令,告知多线程执行电路要执行的指定运算,并使能对应的计算资源。对此,本揭示尽可能地复用既有渲染核的固有计算资源(既有线程资源模块)。据此,可减少资源增加的开销,有效应用硬件资源。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
Claims (10)
1.一种单指令多线程的处理装置,包括:
多线程执行电路,包括既有线程资源模块、附加资源模块以及选通模块,且配置为基于多个线程之间的指定运算,通过所述选通模块在所述既有线程资源模块以及所述附加资源模块中使能至少其中一个电路,并通过被使能的所述至少一个电路对线程束的多个线程执行所述多个线程之间的指定运算,以在所述多线程执行电路中直接进行规约操作。
2.根据权利要求1所述的处理装置,其中,
所述既有线程资源模块包括多个对齐移位电路、多个取反电路以及多个符号拓展电路,所述对齐移位电路的数量、所述取反电路的数量以及所述符号拓展电路的数量分别与所述多个线程的数量相对应,
所述附加资源模块包括最大值检测电路、补码偏置累计电路、加法器电路、全加器电路、标准化电路、输出电路、编码电路以及解码电路。
3.根据权利要求2所述的处理装置,其中,响应于所述多个线程之间的指定运算为浮点数累加运算,通过所述选通模块使能所述多个对齐移位电路、所述多个取反电路以及所述多个符号拓展电路,并且使能所述最大值检测电路、所述补码偏置累计电路、所述加法器电路、所述全加器电路、所述标准化电路以及所述输出电路,并依序通过所述最大值检测电路、所述多个对齐移位电路、所述多个取反电路、所述多个符号拓展电路、所述补码偏置累计电路、所述加法器电路、所述全加器电路、所述标准化电路以及所述输出电路,执行所述浮点数累加运算。
4.根据权利要求2所述的处理装置,其中,响应于所述多个线程之间的指定运算为定点数累加运算,通过所述选通模块使能所述多个符号拓展电路,并且使能所述加法器电路、所述全加器电路以及所述输出电路,并依序通过所述多个符号拓展电路、所述加法器电路、所述全加器电路以及所述输出电路,执行所述定点数累加运算。
5.根据权利要求2所述的处理装置,其中,响应于所述多个线程之间的指定运算为极值求解运算,通过所述选通模块使能所述编码电路、所述最大值检测电路、所述解码电路以及所述输出电路,并依序通过所述编码电路、所述最大值检测电路、所述解码电路以及所述输出电路,执行所述极值求解运算。
6.根据权利要求1所述的处理装置,还包括:
调度器,耦接至所述多线程执行电路,且经配置以指定所述多个线程之间的指定运算,并传送所述多个线程之间的指定运算至所述多线程执行电路。
7.根据权利要求1所述的处理装置,其中,所述多线程执行电路为渲染核。
8.一种单指令多线程的处理方法,包括:
通过多线程执行电路执行多个线程之间的指定运算,所述多线程执行电路包括既有线程资源模块、附加资源模块以及选通模块,
其中,执行所述多个线程之间的指定运算包括:
基于所述多个线程之间的指定运算,通过所述选通模块在所述既有线程资源模块以及所述附加资源模块中使能至少其中一个电路,并通过被使能的所述至少一个电路对线程束的多个线程执行所述多个线程之间的指定运算,以在所述多线程执行电路中直接进行规约操作。
9.根据权利要求8所述的处理方法,其中,
所述既有线程资源模块包括多个对齐移位电路、多个取反电路以及多个符号拓展电路,所述对齐移位电路的数量、所述取反电路的数量以及所述符号拓展电路的数量分别与所述多个线程的数量相对应,
所述附加资源模块包括最大值检测电路、补码偏置累计电路、加法器电路、全加器电路、标准化电路、输出电路、编码电路以及解码电路。
10.根据权利要求9所述的处理方法,其中,
所述多个线程之间的指定运算为浮点数累加运算、定点数累加运算以及极值求解运算中的其中一个,
响应于所述多个线程之间的指定运算为所述浮点数累加运算,通过所述选通模块使能所述多个对齐移位电路、所述多个取反电路以及所述多个符号拓展电路,并且使能所述最大值检测电路、所述补码偏置累计电路、所述加法器电路、所述全加器电路、所述标准化电路以及所述输出电路,并依序通过所述最大值检测电路、所述多个对齐移位电路、所述多个取反电路、所述多个符号拓展电路、所述补码偏置累计电路、所述加法器电路、所述全加器电路、所述标准化电路以及所述输出电路,执行所述浮点数累加运算,
响应于所述多个线程之间的指定运算为所述定点数累加运算,通过所述选通模块使能所述多个符号拓展电路,并且使能所述加法器电路、所述全加器电路以及所述输出电路,并依序通过所述多个符号拓展电路、所述加法器电路、所述全加器电路以及所述输出电路,执行所述定点数累加运算,
响应于所述多个线程之间的指定运算为极值求解运算,通过所述选通模块使能所述编码电路、所述最大值检测电路、所述解码电路以及所述输出电路,并依序通过所述编码电路、所述最大值检测电路、所述解码电路以及所述输出电路,执行所述极值求解运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410257036.1A CN117850882B (zh) | 2024-03-07 | 2024-03-07 | 单指令多线程的处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410257036.1A CN117850882B (zh) | 2024-03-07 | 2024-03-07 | 单指令多线程的处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117850882A CN117850882A (zh) | 2024-04-09 |
CN117850882B true CN117850882B (zh) | 2024-05-24 |
Family
ID=90534938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410257036.1A Active CN117850882B (zh) | 2024-03-07 | 2024-03-07 | 单指令多线程的处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117850882B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241290A (zh) * | 2019-07-16 | 2021-01-19 | 辉达公司 | 用于在并行处理单元中有效执行数据规约的技术 |
CN113672197A (zh) * | 2017-04-28 | 2021-11-19 | 英特尔公司 | 用来执行用于机器学习的浮点和整数操作的指令和逻辑 |
CN114253821A (zh) * | 2022-03-01 | 2022-03-29 | 西安芯瞳半导体技术有限公司 | 一种分析gpu性能的方法、装置及计算机存储介质 |
CN117009054A (zh) * | 2023-07-27 | 2023-11-07 | 北京登临科技有限公司 | 一种simt装置、线程组动态构建方法及处理器 |
CN117389731A (zh) * | 2023-10-20 | 2024-01-12 | 上海芯高峰微电子有限公司 | 数据处理方法和装置、芯片、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10922095B2 (en) * | 2019-04-15 | 2021-02-16 | Salesforce.Com, Inc. | Software application performance regression analysis |
-
2024
- 2024-03-07 CN CN202410257036.1A patent/CN117850882B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672197A (zh) * | 2017-04-28 | 2021-11-19 | 英特尔公司 | 用来执行用于机器学习的浮点和整数操作的指令和逻辑 |
CN112241290A (zh) * | 2019-07-16 | 2021-01-19 | 辉达公司 | 用于在并行处理单元中有效执行数据规约的技术 |
CN114253821A (zh) * | 2022-03-01 | 2022-03-29 | 西安芯瞳半导体技术有限公司 | 一种分析gpu性能的方法、装置及计算机存储介质 |
CN117009054A (zh) * | 2023-07-27 | 2023-11-07 | 北京登临科技有限公司 | 一种simt装置、线程组动态构建方法及处理器 |
CN117389731A (zh) * | 2023-10-20 | 2024-01-12 | 上海芯高峰微电子有限公司 | 数据处理方法和装置、芯片、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117850882A (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3857353B1 (en) | Apparatuses and methods to accelerate matrix multiplication | |
RU2292581C2 (ru) | Команды загрузки/перемещения и копирования для процессора | |
US7949696B2 (en) | Floating-point number arithmetic circuit for handling immediate values | |
US8799344B2 (en) | Comparator unit for comparing values of floating point operands | |
US10678540B2 (en) | Arithmetic operation with shift | |
CN1613055A (zh) | 基于功率估算的指令调度 | |
CN110879724A (zh) | 用于深度学习和其它算法的fp16-s7e8混合精度 | |
TW201104569A (en) | Microprocessors and methods for executing instruction | |
EP1046983B1 (en) | VLIW processor and program code compression device and method | |
US11416248B2 (en) | Method and system for efficient floating-point compression | |
US7949862B2 (en) | Branch prediction table storing addresses with compressed high order bits | |
KR20180027537A (ko) | 와이드 데이터 타입들의 비교 | |
CN117850882B (zh) | 单指令多线程的处理装置及方法 | |
CN115344826A (zh) | 计算装置、操作方法和机器可读存储介质 | |
EP4278256B1 (en) | Parallel decode instruction set computer architecture with variable-length instructions | |
US20080215859A1 (en) | Computer with high-speed context switching | |
US20010001154A1 (en) | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions | |
US6970898B2 (en) | System and method for forcing floating point status information to selected values | |
US7016928B2 (en) | Floating point status information testing circuit | |
CN117573065B (zh) | 一种处理器多功能移位运算装置及运算方法 | |
US7444367B2 (en) | Floating point status information accumulation circuit | |
US20230367547A1 (en) | Extended floating-point range addition and multiplication | |
CN117785121A (zh) | 运算装置以及执行点积运算的方法 | |
CN116882475A (zh) | 应用于神经网络的训练方法及装置以及相关产品 | |
WO2020169487A1 (en) | Processor with instructions for logarithmic number operations |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |