CN113961506B - 加速器和电子装置 - Google Patents
加速器和电子装置 Download PDFInfo
- Publication number
- CN113961506B CN113961506B CN202111214262.4A CN202111214262A CN113961506B CN 113961506 B CN113961506 B CN 113961506B CN 202111214262 A CN202111214262 A CN 202111214262A CN 113961506 B CN113961506 B CN 113961506B
- Authority
- CN
- China
- Prior art keywords
- complement
- bits
- memory
- accelerator
- receive
- 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
- 230000000295 complement effect Effects 0.000 claims abstract description 119
- 238000006243 chemical reaction Methods 0.000 claims abstract description 76
- 238000012545 processing Methods 0.000 claims abstract description 55
- 230000005540 biological transmission Effects 0.000 claims abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 2
- 208000010378 Pulmonary Embolism Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
Abstract
本文描述了一种加速器和电子装置。该加速器包括处理引擎单元、存储器以及补码转换器。补码转换器耦合在处理引擎单元和存储器之间的数据传输路径中,并且补码转换器被配置为:将来自存储器的第一补码转换为第一原码并且将第一原码传输至处理引擎单元;以及将来自处理引擎单元的第二原码转换为第二补码并且将第二补码传输至存储器。通过在处理引擎单元和存储器之间的数据传输路径中设置硬件形式的补码转换器,可以避免使用额外的指令来进行原码和补码之间的转换,提高了程序的执行速度和效率。
Description
技术领域
本公开的实施例一般地涉及电子领域,更具体而言涉及一种加速器和包括该加速器的电子装置。
背景技术
诸如图形处理器(GPU)之类的并行高性能多线程多核处理系统处理数据的速度比过去快得多。这些处理系统可以将复杂的计算分解为较小的任务,并且由多核并行处理以增加处理效率并且减少处理时间。
在一些情形下,诸如GPU之类的多核处理器对具有大量相同或相似形式的数据的张量的处理尤为有利。张量数据在计算机领域通常表示一维或多维数组的数据,例如图像数据就是一种常规的二维张量数据,其可以由二维数组表示。对图像数据进行处理时,可以由多核处理器对图像数据中的不同部分并行处理以减少处理时间。
张量数据在存储器中被存储时,张量数据在一些情形下可以按原码存储,在另一些情形下也可以按补码存储。这两种状态都存在。然而,当GPU的处理引擎处理数据时,需要原码数据以正确处理。对此,常规方案包括使用额外的指令将补码数据转换为原码数据以便于处理引擎的正确操作。额外的指令往往引起GPU的处理效率的降低和时间的延长。
发明内容
本公开的实施例提供了一种加速器和电子装置,其可以对原码和补码进行转换。
根据本公开的第一方面,提供一种加速器。该加速器包括处理引擎单元、存储器以及补码转换器。补码转换器耦合在处理引擎单元和存储器之间的数据传输路径中,并且补码转换器被配置为:将来自存储器的第一补码转换为第一原码并且将第一原码传输至处理引擎单元;以及将来自处理引擎单元的第二原码转换为第二补码并且将第二补码传输至存储器。通过在处理引擎单元和存储器之间的数据传输路径中设置硬件形式的补码转换器,可以避免使用额外的指令来进行原码和补码之间的转换,提高了程序的执行速度和效率。此外,虽然存储器访问具有多种不同形式的读指令和写指令,但是通过定义数据段属性,这些指令全可以进行自动格式转换。段属性是存储设置并且独立于核心程序,因此对于两种存储格式,相同的核心程序都可以正确执行。换言之,无论数据格式是原码还是补码,核心程序都能够无影响地进行存储访问而无需任何改动。当程序启动时,数据段的流处理器命令可以按照输入和输出的存储格式来动态声明该数据段的属性。
在第一方面的一种可能实现方式中,加速器还包括旁路电路。旁路电路耦合至补码转换器并且被配置为:基于段属性数据,选择性将补码转换器旁路,以将存储器与处理引擎单元直接耦合。通过使用旁路电路,加速器不仅可以进行自动格式转换,还可以兼容通过使用指令进行格式转换的常规程序。
在第一方面的一种可能实现方式中,补码转换器包括第一补码转换电路和第二补码转换电路。第一补码转换电路被配置为基于第一补码的第一首比特的数值,选择性地转换第一补码的第一多个剩余比特的数值。第二补码转换电路,被配置为基于第二原码的第二首比特的数值,选择性地转换第二原码的第二多个剩余比特的数值。
在第一方面的一种可能实现方式中,第一补码转换电路包括第一多个反相器、第一加法器和第一多路选择器。第一多个反相器被配置为将第一多个剩余比特分别取反以生成第一多个剩余比特的第一多个取反比特。第一加法器被配置为将第一多个取反比特加1以生成第一多个转换比特。第一多路选择器包括第一输入端、第二输入端和第一控制端。第一输入端被配置为接收第一多个剩余比特。第二输入端,被配置为接收第一多个转换比特。第一控制端被配置为接收第一首比特,第一多路选择器被配置为基于第一首比特的值,选择性地输出第一多个剩余比特或第一多个转换比特。通过使用多个反相器、加法器和多路选择器,可以以简单的电路结构实现补码转换器,并且降低成本和简化设计。
在第一方面的一种可能实现方式中,第二补码转换电路包括第二多个反相器、第二加法器和第二多路选择器。第二多个反相器被配置为将第二多个剩余比特分别取反以生成第二多个剩余比特的第二多个取反比特。第二加法器被配置为将第二多个取反比特加1以生成第二多个转换比特。第二多路选择器包括第三输入端、第四输入端和第二控制端。第三输入端,被配置为接收第二多个剩余比特。第四输入端,被配置为接收第二多个转换比特。第二控制端,被配置为接收第二首比特,第二多路选择器被配置为基于第二首比特的值,选择性地输出第二多个剩余比特或第二多个转换比特。通过使用多个反相器、加法器和多路选择器,可以以简单的电路结构实现补码转换器,并且降低成本和简化设计。
在第一方面的一种可能实现方式中,旁路电路包括第三多路选择器。第三多路选择器包括第五输入端、第六输入端和第三控制端。第五输入端,被配置为接收第一补码或第一原码。第六输入端被配置为接收经转换的原码或补码。第三控制端被配置为接收位于段属性数据中的旁路使能信号。第三多路选择器被配置为基于旁路使能信号选择性地将补码转换器旁路。通过使用多路选择器,可以以简单的电路结构实现旁路电路,并且降低成本和简化设计。
在第一方面的一种可能实现方式中,加速器包括图形处理器,存储器包括一级高速缓存或二级高速缓存。
在第一方面的一种可能实现方式中,加速器还包括流处理器。流处理器被配置为将段属性数据的至少一部分传输至旁路电路。
在第一方面的一种可能实现方式中,处理引擎单元还被配置为从存储器接收多维张量数据。
在本公开的第二方面,提供一种电子设备。电子设备包括供电单元和根据第一方面的加速器。该加速器由供电单元供电。通过在处理引擎单元和存储器之间的数据传输路径中设置硬件形式的补码转换器,可以避免使用额外的指令来进行原码和补码之间的转换,提高了程序的执行速度和效率。此外,虽然存储器访问具有多种不同形式的读指令和写指令,但是通过定义数据段属性,这些指令全可以进行自动格式转换。段属性是存储设置并且独立于核心程序,因此对于两种存储格式,相同的核心程序都可以正确执行。换言之,无论数据格式是原码还是补码,核心程序都能够无影响地进行存储访问而无需任何改动。当程序启动时,数据段的流处理器命令可以按照输入和输出的存储格式来动态声明该数据段的属性。
根据本公开的实施例的方法和电子设备,编程人员可以无需使用额外的指令来进行原码和补码之间的转换,提高了程序的执行速度和效率。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的多个实施例能够在其中实现的示例环境的示意图;
图2示出了根据本公开的一个实施例的芯片示意框图;
图3示出了根据本公开的一个实施例的三维张量示意框图;
图4示出了根据本公开的一个实施例的图像数据的页分配示意图;以及
图5示出了根据本公开的一个实施例的补码转换子系统的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中示出了本公开的优选实施例,然而应该理解,本公开可以以各种形式实现而不应被这里阐述的实施例限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如前文所提及的,常规方案包括使用额外的指令将补码数据转换为原码数据以便于处理引擎的正确操作。额外的指令往往引起GPU的处理效率的降低和时间的延长。
在本公开的一些实施例中,通过在加速器中的存储器和处理引擎之间的路径中设置补码转换电路,可以通过硬件实现原码和补码之间的转换,而无需使用额外的指令进行转换。相比于指令转换(通常需要多个时钟周期),硬件处理转换可以无需额外的多个指令周期,而是在信号传输过程中直接被转换,这极大地降低转换所需的时间,从而降低程序的运算开销和处理时间。
图1示出了本公开的多个实施例能够在其中实现的示例环境100的示意图。示例环境100例如可以是诸如计算机之类的具有计算能力的电子设备。在一个实施例中,示例环境100例如包括中央处理器(CPU)20、系统存储器10、北桥/存储器桥30、加速器子系统40、设备存储器50和南桥/输入输出(IO)桥60。系统存储器10例如可以是诸如动态随机存取存储器(DRAM)之类的易失性存储器。北桥/存储器桥30例如集成了内存控制器、PCIe控制器等,其负责CPU 20和高速接口之间的数据交换以及桥接CPU 20和南桥/IO桥60。南桥/IO桥60用于计算机的低速接口,例如串行高级技术接口(SATA)控制器等。加速器子系统40例如可以包括诸如图形处理器(GPU)和人工智能(AI)加速器等用于对图形、视频等数据进行加速处理的装置或芯片。设备存储器50例如可以是诸如DRAM之类的位于加速器子系统40外部的易失性存储器。在本公开中,设备存储器50也被称为片外存储器,即,位于加速器子系统40的芯片外部的存储器。相对而言,加速器子系统40的芯片内部也具有易失性存储器,例如一级(L1)高速缓存(cache)以及可选的二级(L2)高速缓存。这将在下文结合本公开的一些实施例具体描述。虽然在图1中示出了本公开的多个实施例能够在其中实现的一种示例环境100,但是本公开不限于此。本公开的一些实施例也可以在诸如ARM架构和RISC-V架构之类的具有诸如GPU之类的加速器子系统的一些应用环境中使用。示例环境100还可以包括其它未示出的部件或装置,例如为加速器子系统200供电的供电单元。本公开对比不进行限制。
图2示出了根据本公开的一个实施例的加速器子系统200的示意框图。加速器子系统200例如可以是图1中加速器子系统40的芯片的一种具体实现方式。加速器子系统200例如是诸如GPU之类的加速器子系统芯片。在一个实施例中,加速器子系统200包括流处理器(SP)210、页表装置220、处理引擎(PE)单元230、直接存储器访问(DMA)控制器240、补码转换器270、L1高速缓存(cache)260和L2高速缓存250。
加速器子系统200由诸如CPU 20之类的主机设备控制,并且接收来自CPU 20的指令。SP 210对来自CPU 20的指令进行分析,并且将经分析的操作指派给PE单元230、页表装置220和DMA控制器240进行处理。页表装置220用于管理加速器子系统200的片上虚拟存储。在本公开中,L2高速缓存250和诸如图1中的设备存储器50之类的片外存储器构成虚拟存储系统。页表装置220由SP 210、PE单元230和DMA控制器240共同维护。
PE单元230包括多个处理引擎(processing engine,PE)PE_1、PE_2……PE_N,其中N表示大于1的整数。PE单元230中的每个PE可以是单指令多线程(SIMT)装置。在PE中,每个线程可以具有自己的寄存器堆(register file),并且每个PE的所有线程还共享一个统一寄存器堆(uniform register file)。多个PE可以并行地执行相同或不同的处理工作,可以并行地进行下文所述的地址转换和存储器中目标数据的访问,从而减少处理时间。可以理解,多个PE处理的目标元素并不相同,并且目标元素所在的段、页、缓存行和元素的属性、尺寸、维度排序等可以有所不同,如下文具体描述。
每个线程可以在自己的寄存器堆与存储器子系统之间做线程级的数据交换。每个线程有自己的算数逻辑执行单元并使用自己的存储地址,其采用典型的寄存器存取架构(load-store architecture)。每个执行单元包括一个支持多种数据类型的浮点/定点单元以及一个算数逻辑单元。
大多数的指令执行算数和逻辑运算,例如,浮点和定点数的加、减、乘、除,或者逻辑与、或、非等。操作数来自于寄存器。存储器读写指令可以提供寄存器与片上/片外存储器之间的数据交换。一般地,PE中所有的执行单元可以同步地执行相同指令。通过使用谓词(predicate)寄存器,可以屏蔽部分执行单元,从而实现分支指令的功能。
在一个实施例中,图2的加速器子系统200可以例如执行如下操作:1)组建页表项内容和初始状态;2)将诸如图1中的设备存储器50之类的片外存储器上的数据搬运至片上存储器,例如L2高速缓存250;3)启动和执行程序;4)定义各个段并对张量以及存储的属性进行描述;5)在程序执行完成时,将执行结果的数据写入至片外存储器。存储的属性可以包括段属性、维度属性和页属性等。
段属性包括旁路使能信号,其指示是否使用补码转换器以执行在原码和补码之间的转换。此外,段属性还可以包括段中页使用的状态标志、元素大小、元素数据编码类型以及转换标志,段内缓存行的替换规则等。维属性可以用于独立设置各维的属性,包括长模式、流(streaming)模式、地址的符号属性以及缓存行内逆交叉寻址的位宽等信息。长模式表示张量在一个维度的尺寸显著高于其它维度的尺寸。流模式表示可以在核心程序不停止的情形下支持无限长的张量数据的计算。地址的符号属性表示相对于基准点的坐标偏移值可以为正也可以为负,换言之在同一维度上可以正向偏移也可以负向偏移。页的属性包括页标识、物理基址、状态字段和维度信息等。页标识用于索引对应的页表项。物理基址描述页在诸如L2高速缓存之类的片上存储器或片外的存储器内的物理首地址。状态字段表示页是否被占用或可用。维度信息主要包括维度的数目以及各维的尺寸,该字段可以由段定义。页的属性例如可以被存储在页表装置220内。
可以理解,在公开的实施例中,加速器子系统200所处理的数据主要针对多维张量。例如,在一个实施例中,张量可以是四维张量,其具有四个维度D1、D2、D3和D4,并且张量在各维上的尺寸可以不同。在另一些实施例中,张量可以是一维、二维、三维或更多维张量,本公开对此不进行限制。此外,在本公开的实施例中,张量内部可以支持诸如uint8、int8、bfloat16、float16、uint16、int16、float32、int32、uint32以及其他自定义元素类型,本公开对此也不进行限制。对于张量的寻址而言,其以元素为基本单位。例如,如果元素类型为int8,则元素以字节为单位。再例如,如果元素类型为int16,则寻址基本单位为双字节,依此类推。在下文中,将以int8作为参考进行描述,但是可以理解,本公开不限于此。其他数据元素类型也可以适用。换言之,在本公开中,多维张量数据在从存储器向PE单元的传输过程中可以经历下文所描述的从补码到原码的转换,或从PE单元向存储器的传输过程中可以经历下文所描述的从原码到补码的转换,而无需使用额外的指令进行转换。
在一些情形中,张量所包含的数据量可能较大,而L2高速缓存250的容量有限,因此无法将张量整体加载至片上的L2高速缓存250。在本公开的一些实施例中,为了便于张量的并行处理,可以将张量划分为至少一个段。在张量仅包括一个段的情形下,张量即为段。而在张量包括多个段的情形下,段为张量的一部分。CPU 20可以通过指令指定段的各个部分由哪个PE进行处理。
在一个实施例中,补码转换电路270位于L1高速缓存260和PE单元230之间,从而当L1高速缓存260中的补码形式的数据向PE单元230传输时,补码转换电路270中的第一补码电路271可以将其转换为原码,而当PE单元230生成的原码数据向L1高速缓存260中传输时,补码转换电路270中的第二补码电路272可以将其转换为补码。虽然在图2中将补码转换电路270示出为在L1高速缓存260和PE单元230之间,但是这仅是示意,而非对本公开的范围进行限制。补码转换电路270也可以位于L1高速缓存260和L2高速缓存250之间,或是位于DMA240和和L2高速缓存250之间。此外,在一些实施例中,加速器子系统200还可以包括旁路电路(未示出)以在需要时将在L1高速缓存260和PE单元230之间的信号传输路径中的补码转换电路270旁路,从而将L1高速缓存260和PE单元230直接连接。本公开对此也不进行限制。
图3示出了根据本公开的一个实施例的三维张量300的示意框图。三维张量300具有三个维度D1、D2和D3,并且包括第一段S1、第二段S2和第三段S3。CPU 20可以指定段S1的张量元素由PE_1、PE_2、PE_3、PE_4、PE_5、PE_6、PE_7和PE_8处理。此外,CPU20还指定了第二段S2的张量元素由PE_1-PE_4处理。在本公开的实施例中,每个段所具有的尺寸可以不同,因此编程人员可以基于设计需要灵活配置段。实际上,页的划分可以在任意一个或多个维上实施,并且各维上划分的页数是相互独立的。
在一个实施例中,可以将张量数据存储于片上的高速存储器,例如L2高速缓存250。但由于片上的高速存储器的容量较少,因此在张量规模较大时,编程人员可以将张量划分为多个段,每个段描述张量一部分。核心程序(kernel)可以分多次启动,每次由DMA控制器240提前将张量的一个段由片外存储搬运到片内存储,并供kernel操作使用。在多次启动kernel后,张量包含的所有段均被处理,整个运行过程结束。当片上的高速存储器足以容纳kernel所要访问的所有张量时,一个张量仅需要一个段描述即可,kernel也只需要启动一次。
进一步地,在本公开的一些实施例中,在一个段内,还可以设置至少一个页以进一步细分张量。例如,在第一段S1中,具有4个页P[1]、P[2]、P[3]和P[4]。第二段S2仅具有一个页。在本公开的实施例中,每个段所具有的页的数目可以不同,因此编程人员可以基于设计需要灵活配置段内页的尺寸。例如,将页配置为适于整体存入L2高速缓存250。
如上所述,当对张量寻址时,最小的寻址单元是以元素为单元。一个页通常可以包括多个元素。目标元素所在的页在本文中被称为“目标元素页”。在本公开的一些实施例中,页可以包括多个缓存行。目标元素页可以位于L2高速缓存250中时,如果PE经由L1高速缓存260读取目标元素,则L2高速缓存250需要将L2高速缓存250中的包括目标元素在内的一小部分的物理地址连续的数据整体传输至L1高速缓存260。这一小部分数据也被称为缓存行(cache line)数据,而这种缓存机制基于空间邻近性原理。PE从L1高速缓存260读取数据仅需几个时钟周期,而L1高速缓存260从L2高速缓存250读取数据可能需要几十个甚至上百个时钟周期。因此,期望减少L1高速缓存260从L2高速缓存250读取数据的次数。虽然在此以“缓存行”来描述从L2高速缓存250到L1高速缓存260的最小传输数据单位,但在本公开中,这部分数据可以并不必然按行或列排列,一个“缓存行”里面的数据分布在多个维上,且各维上分布的数据尺寸不限于1。PE对一个段内的数据进行并行处理,PE的分配在数据的逻辑地址空间展开,独立于段的物理存储结构,具体如下文描述。
在图3中,第一页P[1]中的第一组缓存行被指定由PE_1处理,第二组缓存行被指定由PE_2处理。虽然在此以顺序示出了张量由多个PE依序处理,但是可以理解张量数据的处理独立于PE的顺序,本公开对此不进行限制。例如图3中的PE_2表示部分的张量数据可以由PE_M处理,其中M表示不大于N的任意整数。
图4示出了根据本公开的一个实施例的图像数据400的页分配示意图。图像数据是典型的二维张量。在一个实施例中,图像数据400例如为8*8像素。换言之,图像数据400在第一维D1具有8个像素,并且在第二维D2也具有8个像素。因此,图像数据400具有像素P00、P01……P77。在图4的实施例中,图像数据400仅具有一个段,但是按两个维度分为4个页P[1]、P[2]、P[3]和P[4]。4个页可以按第二维D2划分以分配给PE_1和PE_2处理,也可以按第一维D1划分以分配给PE_1和PE_2处理。此外,还可以按对角线划分。本公开对此不进行限制。
图5示出了根据本公开的一个实施例的补码转换子系统500的示意图。在一个实施例中,补码转换系统500可以是图2中的加速器子系统200的至少一部分的一种具体实现方式,因此上面针对图1-图4所描述的各个方面可以选择性地适用于补码转换系统500。
补码转换子系统500包括旁路电路540和补码转换电路550。补码转换电路550例如可以用于将来自诸如L1高速缓存260之类的存储器的第一补码转换为第一原码并且将第一原码传输至处理引擎PE_1,或例如用于将来自处理引擎单元PE_1的第二原码转换为第二补码并且将第二补码传输至诸如L1高速缓存260之类的存储器。通过在处理引擎单元和存储器之间的数据传输路径中设置硬件形式的补码转换器,可以避免使用额外的指令来进行原码和补码之间的转换,提高了程序的执行速度和效率。此外,虽然存储器访问具有多种不同形式的读指令和写指令,但是通过定义数据段属性,这些指令全可以进行自动格式转换。段属性是存储设置并且独立于核心程序,因此对于两种存储格式,相同的核心程序都可以正确执行。换言之,无论数据格式是原码还是补码,核心程序都能够无影响地进行存储访问而无需任何改动。当程序启动时,数据段的流处理器命令可以按照输入和输出的存储格式来动态声明该数据段的属性。
可以理解,加速器中的补码转换器可以包括多个补码转换电路。例如,针对每个处理引擎,可以配备两个补码转换电路以分别处理从原码到补码的转换和从补码到原码的转换。备选地,可以针对每个处理引擎仅提供一个补码转换电路,通过复用的方式实现从原码到补码的转换和从补码到原码的转换。在另一个实施例中,可以在PE单元230和L1高速缓存260之间仅设置两个补码转换电路以分别处理从原码到补码的转换和从补码到原码的转换。本公开对此不进行限制。下面仅以一个补码转换电路550来描述本公开中的补码转换器中的补码转换电路的一种实现方式。补码转换电路550可以用于针对int8的字节数据在原码和补码之间进行转换。虽然在此针对int8字节数据进行描述,但是本公开不限于此。在不脱离本公开的原理、精神和范围的前提下,可以对补码转换电路的时序方式进行修改以适用于其它类型的数据。
在补码转换电路550被实现为第一补码转换电路时,其被配置为基于第一补码的第一首比特in[7]的数值,选择性地转换第一补码的第一多个剩余比特in[6:0]的数值。例如,如果第一首比特in[7]的数值为1,则其将第一多个剩余比特in[6:0]的数值提供给7个反相器510、511、512、513、514、515和516取反,以生成第一多个取反比特。第一多个取反比特被提供至加法器520。加法器520在此情形下为第一加法器,并且将第一多个取反比特组成的数据末尾加1,以生成7位的第一多个转换比特。第一多个转换比特被提供至多路选择器530。多路选择器530在此情形下为第一多路选择器。由于多路选择器530的第一控制端接收到控制输入是为1的in[7],因此多路选择器530输出7位输出比特out[6:0],该七位输出比特out[6:0]实际上在此情形下就是第一多个转换比特。该七位输出比特out[6:0]与第一首比特in[7]组合以生成第一原码,即,第一首比特in[7]仍为原码的第一首比特,而第一多个转换比特out[6:0]构成后7位比特。
如果第一首比特in[7]的数值为0,则其将第一多个剩余比特in[6:0]的数值直接提供至多路选择器530。由于多路选择器530的第一控制端接收到控制输入是为0的in[7],因此多路选择器530输出7位输出比特out[6:0],该七位输出比特out[6:0]实际上在此情形下就是第一多个剩余比特in[6:0]。该七位输出比特out[6:0]与第一首比特in[7]组合以生成第一原码,即,第一首比特in[7]仍为原码的第一首比特,而第一多个转换比特out[6:0]构成后7位比特。
在补码转换电路550被实现为第二补码转换电路时,其被配置为基于第二原码的第二首比特的数值,选择性地转换第二原码的第二多个剩余比特的数值。第二补码转换电路的操作与第一补码转换电路的操作基本上相同,在此不再赘述。通过使用多个反相器、加法器和多路选择器,可以以简单的电路结构实现补码转换器,并且降低成本和简化设计。
补码转换子系统500还包括旁路电路540。旁路电路540耦合至补码转换电路550并且被配置为基于段属性数据,选择性将补码转换电路550旁路,以将存储器与处理引擎单元直接耦合。在一个实施例中,旁路电路可以包括多个子旁路电路以分别将多个补码转换电路进行旁路。备选地,旁路电路也可以对补码转换器整体进行旁路。通过使用旁路电路,加速器不仅可以进行自动格式转换,还可以兼容通过使用指令进行格式转换的常规程序。在一个实施例中,旁路电路540可以是第三多路选择器。旁路电路540包括第五输入端、第六输入端和第三控制端。第五输入端,被配置为接收第一补码或第一原码。第六输入端被配置为接收经转换的原码或补码。第三控制端被配置为接收位于段属性数据中的旁路使能信号Bypass_En。第三多路选择器被配置为基于旁路使能信号Bypass_En选择性地将补码转换电路550旁路。通过使用多路选择器,可以以简单的电路结构实现旁路电路,并且降低成本和简化设计。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (9)
1.一种加速器,其中所述加速器是图形处理器,包括:
处理引擎单元;
存储器;以及
补码转换器,耦合在所述处理引擎单元和所述存储器之间的数据传输路径中,并且所述补码转换器被配置为:
将来自所述存储器的第一补码转换为第一原码并且将所述第一原码传输至所述处理引擎单元;以及
将来自所述处理引擎单元的第二原码转换为第二补码并且将所述第二补码传输至所述存储器;
旁路电路,所述旁路电路耦合至所述补码转换器并且被配置为:
基于段属性数据,选择性将所述补码转换器旁路,以将所述存储器与所述处理引擎单元直接耦合。
2.根据权利要求1所述的加速器,其中所述补码转换器包括:
第一补码转换电路,被配置为基于所述第一补码的第一首比特的数值,选择性地转换所述第一补码的第一多个剩余比特的数值;以及
第二补码转换电路,被配置为基于所述第二原码的第二首比特的数值,选择性地转换所述第二原码的第二多个剩余比特的数值。
3.根据权利要求2所述的加速器,其中所述第一补码转换电路包括:
第一多个反相器,被配置为将所述第一多个剩余比特分别取反以生成所述第一多个剩余比特的第一多个取反比特;
第一加法器,被配置为将所述第一多个取反比特加1以生成第一多个转换比特;以及
第一多路选择器,包括:
第一输入端,被配置为接收所述第一多个剩余比特;
第二输入端,被配置为接收所述第一多个转换比特;以及
第一控制端,被配置为接收所述第一首比特,所述第一多路选择器被配置为基于所述第一首比特的值,选择性地输出所述第一多个剩余比特或所述第一多个转换比特。
4.根据权利要求3所述的加速器,其中所述第二补码转换电路包括:
第二多个反相器,被配置为将所述第二多个剩余比特分别取反以生成所述第二多个剩余比特的第二多个取反比特;
第二加法器,被配置为将所述第二多个取反比特加1以生成第二多个转换比特;以及
第二多路选择器,包括:
第三输入端,被配置为接收所述第二多个剩余比特;
第四输入端,被配置为接收所述第二多个转换比特;以及
第二控制端,被配置为接收所述第二首比特,所述第二多路选择器被配置为基于所述第二首比特的值,选择性地输出所述第二多个剩余比特或所述第二多个转换比特。
5.根据权利要求1所述的加速器,其中所述旁路电路包括第三多路选择器,所述第三多路选择器包括:
第五输入端,被配置为接收所述第一补码或所述第一原码;
第六输入端,被配置为接收经转换的原码或补码;以及
第三控制端,被配置为接收位于所述段属性数据中的旁路使能信号;
所述第三多路选择器被配置为基于所述旁路使能信号选择性地将所述补码转换器旁路。
6.根据权利要求1所述的加速器,所述存储器包括一级高速缓存或二级高速缓存。
7.根据权利要求1所述的加速器,还包括:
流处理器,被配置为将所述段属性数据的至少一部分传输至所述旁路电路。
8.根据权利要求1所述的加速器,其中所述处理引擎单元还被配置为从所述存储器接收多维张量数据。
9.一种电子设备,包括:
供电单元;
根据权利要求1-8中任一项所述的加速器,由所述供电单元供电。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111214262.4A CN113961506B (zh) | 2021-10-19 | 2021-10-19 | 加速器和电子装置 |
PCT/CN2022/107417 WO2023065748A1 (zh) | 2021-10-19 | 2022-07-22 | 加速器和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111214262.4A CN113961506B (zh) | 2021-10-19 | 2021-10-19 | 加速器和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961506A CN113961506A (zh) | 2022-01-21 |
CN113961506B true CN113961506B (zh) | 2023-08-29 |
Family
ID=79465129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111214262.4A Active CN113961506B (zh) | 2021-10-19 | 2021-10-19 | 加速器和电子装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113961506B (zh) |
WO (1) | WO2023065748A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961506B (zh) * | 2021-10-19 | 2023-08-29 | 海飞科(南京)信息技术有限公司 | 加速器和电子装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH035833A (ja) * | 1989-06-01 | 1991-01-11 | Mitsubishi Electric Corp | マイクロプロセッサ |
US6615338B1 (en) * | 1998-12-03 | 2003-09-02 | Sun Microsystems, Inc. | Clustered architecture in a VLIW processor |
CN1937413A (zh) * | 2006-09-30 | 2007-03-28 | 东南大学 | 双涡轮结构低密度奇偶校验码解码器 |
CN102122240A (zh) * | 2011-01-20 | 2011-07-13 | 东莞市泰斗微电子科技有限公司 | 一种数据类型转换电路 |
CN202475439U (zh) * | 2011-11-28 | 2012-10-03 | 中国电子科技集团公司第五十四研究所 | 一种基于可配置qc-ldpc编译码算法的硬件仿真验证平台 |
CN106940638A (zh) * | 2017-03-10 | 2017-07-11 | 南京大学 | 一种快速、低功耗和省面积的二进制原码加/减法运算单元的硬件架构 |
CN112711441A (zh) * | 2019-10-25 | 2021-04-27 | 安徽寒武纪信息科技有限公司 | 用于转换数据类型的转换器、芯片、电子设备及其方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL236117A (zh) * | 1958-02-14 | |||
US9329872B2 (en) * | 2012-04-27 | 2016-05-03 | Esencia Technologies Inc. | Method and apparatus for the definition and generation of configurable, high performance low-power embedded microprocessor cores |
CN104202053B (zh) * | 2014-07-17 | 2017-04-19 | 南京航空航天大学 | 一种快速n位原码到补码的转换装置和转换方法 |
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
CN110033086B (zh) * | 2019-04-15 | 2022-03-22 | 广州异构智能科技有限公司 | 用于神经网络卷积运算的硬件加速器 |
CN113961506B (zh) * | 2021-10-19 | 2023-08-29 | 海飞科(南京)信息技术有限公司 | 加速器和电子装置 |
-
2021
- 2021-10-19 CN CN202111214262.4A patent/CN113961506B/zh active Active
-
2022
- 2022-07-22 WO PCT/CN2022/107417 patent/WO2023065748A1/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH035833A (ja) * | 1989-06-01 | 1991-01-11 | Mitsubishi Electric Corp | マイクロプロセッサ |
US6615338B1 (en) * | 1998-12-03 | 2003-09-02 | Sun Microsystems, Inc. | Clustered architecture in a VLIW processor |
CN1937413A (zh) * | 2006-09-30 | 2007-03-28 | 东南大学 | 双涡轮结构低密度奇偶校验码解码器 |
CN102122240A (zh) * | 2011-01-20 | 2011-07-13 | 东莞市泰斗微电子科技有限公司 | 一种数据类型转换电路 |
CN202475439U (zh) * | 2011-11-28 | 2012-10-03 | 中国电子科技集团公司第五十四研究所 | 一种基于可配置qc-ldpc编译码算法的硬件仿真验证平台 |
CN106940638A (zh) * | 2017-03-10 | 2017-07-11 | 南京大学 | 一种快速、低功耗和省面积的二进制原码加/减法运算单元的硬件架构 |
CN112711441A (zh) * | 2019-10-25 | 2021-04-27 | 安徽寒武纪信息科技有限公司 | 用于转换数据类型的转换器、芯片、电子设备及其方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2023065748A1 (zh) | 2023-04-27 |
CN113961506A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2966085B2 (ja) | 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 | |
EP2725498B1 (en) | DMA vector buffer | |
CN113836049B (zh) | 存储器访问方法和电子装置 | |
CN114579929B (zh) | 加速器执行的方法和电子设备 | |
US11403104B2 (en) | Neural network processor, chip and electronic device | |
EP3975061A1 (en) | Neural network processor, chip and electronic device | |
CN114610394B (zh) | 指令调度的方法、处理电路和电子设备 | |
CN114489798B (zh) | 用于确定张量元素的越界状态的方法和电子装置 | |
US9910801B2 (en) | Processor model using a single large linear registers, with new interfacing signals supporting FIFO-base I/O ports, and interrupt-driven burst transfers eliminating DMA, bridges, and external I/O bus | |
CN113961506B (zh) | 加速器和电子装置 | |
CN114218153B (zh) | 用于存储管理的方法、介质、程序产品、系统和装置 | |
CN114218152B (zh) | 流处理方法、处理电路和电子设备 | |
US6785743B1 (en) | Template data transfer coprocessor | |
CN114489791A (zh) | 处理器装置及其指令执行方法、计算设备 | |
CN114510271B (zh) | 用于在单指令多线程计算系统中加载数据的方法和装置 | |
CN114035980B (zh) | 基于便笺存储器来共享数据的方法和电子装置 | |
CN114201444B (zh) | 用于存储管理的方法、介质、程序产品、系统和装置 | |
US11886737B2 (en) | Devices and systems for in-memory processing determined | |
JP7490766B2 (ja) | 演算論理回路レジスタの順序付け | |
US20220067524A1 (en) | Sparsity-aware datastore for inference processing in deep neural network architectures | |
CN116964618A (zh) | 对偶向量算术逻辑单元 | |
Paar et al. | A novel predication scheme for a SIMD system-on-chip | |
CN114970844A (zh) | 一种通用神经网络张量处理器 | |
CN116402102A (zh) | 神经网络处理器和电子设备 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40067448 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |