CN113835675A - 数据处理装置及数据处理方法 - Google Patents

数据处理装置及数据处理方法 Download PDF

Info

Publication number
CN113835675A
CN113835675A CN202010583752.0A CN202010583752A CN113835675A CN 113835675 A CN113835675 A CN 113835675A CN 202010583752 A CN202010583752 A CN 202010583752A CN 113835675 A CN113835675 A CN 113835675A
Authority
CN
China
Prior art keywords
module
data
input
multiply
interconnection
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
Application number
CN202010583752.0A
Other languages
English (en)
Inventor
刘欢
冯立国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN202010583752.0A priority Critical patent/CN113835675A/zh
Priority to PCT/CN2021/095559 priority patent/WO2021258954A1/zh
Priority to EP21829205.0A priority patent/EP4145276A4/en
Publication of CN113835675A publication Critical patent/CN113835675A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

本申请公开了一种数据处理装置及数据处理方法。该装置包括:配置模块、输入路由模块、互联路由模块和多个乘加单元模块;配置模块根据输入数学模型对其他模块进行配置;输入路由模块根据配置建立输入数据通道到乘加单元模块的输入接口的输入路由;互联路由模块根据配置按照乘加单元模块的编号排序位数建立前级乘加单元模块的输出接口到后级乘加单元模块的输入接口的互联路由,以实现多个乘加单元模块的单向级联;乘加单元模块通过输入路由和/或互联路由获取其输入数据并根据配置其输入数据进行算术运算。该数据处理装置可以实现灵活复杂的算术运算,满足对数学模型切换和更新的需求,以及兼顾数据运算效率、数据传输效率和互联开销的平衡。

Description

数据处理装置及数据处理方法
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理装置及数据处理方法。
背景技术
多数据算术运算的数据模型具备数据多、位宽大、吞吐量高的特点,通常需要对多个数据进行灵活复杂的算术运算。数据模型中的运算大多为数据之间或者数据与常数之间的乘法、加法、减法,以及数据的自身共轭等基本运算。
MIMD(Multiple Instruction Multiple Data,多指令多数据)处理装置,可以对多个输入数据进行复杂算术运算,其中,在MIMD处理装置中多个运算单元之间采用的互联路由方式通常为矩阵互联、共享总线或者全映射路由等。但是,在矩阵互联方式中,存在用于路由而无法实际运算的运算单元,会造成运算单元运算效率的浪费;在共享总线方式中,不能多个运算单元同时传输数据,运算单元之间的数据传输效率较低,以此降低了完成运算的速度;在全映射路由方式中,运算单元之间的连线开销以及选择器开销都比较大。因此,上述互联路由方式无法实现运算单元运算效率、数据传输效率和互联开销的平衡。
发明内容
本申请实施例提供了一种数据处理装置及数据处理方法,以实现在对多个输入数据进行复杂算术运算时兼顾运算单元运算效率、数据传输效率和互联开销的平衡。
第一方面,本申请实施例提供了一种数据处理装置,包括:配置模块、输入路由模块、互联路由模块和多个乘加单元(Multiply and Accumulate Unit,MAU)模块,其中,
所述配置模块,用于根据输入数学模型分别对所述输入路由模块、所述互联路由模块以及所述多个乘加单元模块进行配置,对应得到第一配置数据、第二配置数据和第三配置数据;
所述输入路由模块,用于根据所述第一配置数据,建立所述数据处理装置的多个输入数据通道到所述多个乘加单元模块的输入接口之间的输入路由;
所述互联路由模块,用于根据所述配置数据,按照所述多个乘加单元模块的编号排序位数建立所述多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,以实现所述多个乘加单元模块之间的单向级联;
所述乘加单元模块,用于通过所述输入路由和/或所述互联路由获取所述乘加单元模块的输入数据,并根据所述第三配置数据对所述乘加单元模块的输入数据进行算术运算。
第二方面,本申请实施例还提供了一种数据处理方法,应用于本申请任意实施例所述的数据处理装置中,包括:
通过配置模块根据输入数学模型对输入路由模块、互联路由模块以及多个乘加单元模块进行配置,对应得到第一配置数据、第二配置数据和第三配置数据;
通过所述输入路由模块根据所述第一配置数据,建立多个输入数据通道到所述多个乘加单元模块的输入接口之间的输入路由;
通过所述互联路由模块根据所述配置模块的第二配置数据,按照所述多个乘加单元模块的编号排序位数建立所述多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的路由,以实现所述多个乘加单元模块之间的单向级联;
通过所述输入路由模块接收所述数据处理装置的多个输入数据;
通过所述乘加单元模块基于所述输入路由和/或所述互联路由获取所述乘加单元模块的输入数据,并根据所述第三配置数据,对所述乘加单元模块的输入数据进行算术运算,并通过编号排序位数为最后一位的所述乘加单元模块得出与所述多个输入数据对应的算术运算结果。
本申请实施例提供的技术方案中,数据处理装置可以对多个装置输入数据进行灵活且复杂的算术运算,且能够满足多数据算数运算对于数学模型切换和更新的需求;同时,数据处理装置中的互联路由模块根据配置模块的配置,按照多个乘加单元模块的编号排序位数建立多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,以实现多个乘加单元模块之间的单向级联,而非双向级联,以此减小了互联路由开销,而且数据处理装置中不存在冗余的不进行实际算术运算的转发乘加单元模块,乘加单元模块之间的数据传输也高于共享总线方式的互联路由,由此本申请实施例提供的数据处理装置在对多个输入数据进行复杂算术运算时能够兼顾运算单元运算效率、数据传输效率和互联开销的平衡。
附图说明
图1为本申请实施例提供的一种数据处理装置的结构示意图;
图2为本申请实施例提供的一种乘加单元模块的结构示意图;
图3为本申请实施例提供的一种输入路由模块的结构示意图;
图4为本申请实施例提供的一种互联路由模块中第2位乘加单元模块的互联路由示例图;
图5为本申请实施例提供的一种互联路由模块中第3位乘加单元模块的互联路由示例图;
图6为本申请实施例提供的一种互联路由模块中第4位乘加单元模块的互联路由示例图;
图7为本申请实施例提供的一种互联路由模块中第X位乘加单元模块的互联路由示例图;
图8为本申请实施例提供的一种数据处理方法的结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特有的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在一个示例性实施方式中,图1为本申请实施例提供的一种数据处理装置的结构示意图。该装置适用于对多输入数据进行灵活且复杂的算术运算的情况。如图1所示,本申请实施例提供的数据处理装置,包括:配置模块10、输入路由模块20、互联路由模块30和多个乘加单元模块40。其中,
配置模块10,用于根据输入数学模型对输入路由模块20、互联路由模块30以及多个乘加单元模块40进行配置,对应得到第一配置数据、第二配置数据和第三配置数据;
输入路由模块20,用于根据第一配置数据,建立数据处理装置的多个输入数据通道到多个乘加单元模块40的输入接口之间的输入路由;
互联路由模块30,用于根据第二配置数据,按照多个乘加单元模块40的编号排序位数建立多个乘加单元模块40中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,以实现所述多个乘加单元模块之间的单向级联;
乘加单元模块40,用于通过输入路由和/或互联路由获取乘加单元模块40的输入数据,并根据第三配置数据对乘加单元模块40的输入数据进行算术运算。
可选的,配置模块10由CPU(Central Processing Unit,中央处理器)实现,分别与输入路由模块20、互联路由模块30和多个乘加单元模块40相连,对输入路由模块20、互联路由模块30以及多个乘加单元模块40进行配置,得到与输入路由模块20对应的第一配置数据,与互联路由模块30对应的第二配置数据,以及与每个乘加单元模块40对应的第三配置数据,具体可以是分别向输入路由模块20、互联路由模块30以及多个乘加单元模块40中相关器件发送对应的配置数据,可选的,第一配置数据、第二配置数据以及第三配置数据为针对相关器件的控制信号。
在一示例中,配置模块10可以分别通过单独的控制信号线与每个乘加单元模块40相连,以实现对每个乘加单元模块40的控制。
在另一示例中,配置模块10也可以通过控制总线同时与每个乘加单元模块40相连,以实现对每个乘加单元模块40的控制。此示例提供的控制方式,极大地减少了连线开销。
输入数学模型,指的是向配置模块输入的用于多数据算术运算的一种数学模型,可以根据实际需求进行切换或更新,其具备多数据、大位宽、高吞吐量的特点。例如,有的数学模型需要先对若干输入数据进行加法操作,其结果和其余输入数据再相乘;有的数学模型需要先对若干输入数据进行减法操作,减法结果再和若干输入数据进行乘法操作,乘法结果再和其余输入数据进行加法操作;有的数学模型需要对所有输入数据进行乘法操作。大多数学模型的运算特征均是输入数据之间的乘法、加法、减法等基本操作,或者是输入数据与常数之间的乘法、加法、减法等基本操作,又或者是输入数据自身共轭、取反等基本操作。
针对数据处理装置而言,其输入数据为多个(如N个),其输出数据为1个。可选的,N个输入数据同时输入,例如通过数据总线同时输入N个数据进行相应的算术运算。其中,当输入数据为N个时,乘加单元模块40的数量可以为N个,也可以为N-1个,也可以更少,具体可以根据乘加单元模块的计算能力来确定,本实施例对此不作具体限定。由于算术运算至少是在两个输入数据之间进行的,为了避免存在空闲的乘加单元模块,可以设置乘加单元模块40的数量为N-1个,下述以N-1个乘加单元模块为例进行解释说明。
乘加单元模块40在基于输入路由模块20建立的输入路由和/或互联路由模块建立的互联路由接收到数据之后,根据第三配置数据对其接收到的数据进行算术运算。可选的,第三配置数据用于指示选取进行算术运算的数据,和/或指示每次算术运算的类型等。其中,输入路由通过输入路由模块20创建,用于实现数据处理装置的输入数据到乘加单元模块的输入数据之间的映射;互联路由通过互联路由模块30创建,用于实现一个乘加单元模块的输出数据到另一个乘加单元模块的输入数据之间的映射。值得指出的是,针对一个乘加单元模块40而言,其输入数据可以单独来自于输入路由,也可以单独来自于互联路由,也可以同时来自于输入路由和互联路由。
乘加单元模块具有多个输入接口和一个输出接口。输入接口可以用于接收数据处理装置的输入数据,也可以用于接收其他乘加单元模块的输出数据,还可以接收配置模块配置的常数。
在一种具体示例中,乘加单元模块用于实现两个数据之间的常用算术运算,例如加法、乘法、取反、共轭等。如图2所示,乘加单元模块的输入接口包括:两个装置数据输入接口4001、两个互联数据输入接口4002和一个常数输入接口4003,装置数据输入接口用于接收数据处理装置的输入数据,互联数据输入接口用于接收前级乘加单元模块的输出数据,常数输入接口用于接收配置模块配置的常数。
进一步的,如图2所示,乘加单元模块还包括控制接口4004,用于接收配置模块的第三配置数据。进而,乘加单元模块,具体用于根据配置模块的第三配置数据,在通过输入接口接收的数据中选择一个或两个数据进行算术运算,也即在通过两个装置数据输入接口、两个互联数据输入接口以及一个常数输入接口接收到的多个数据中选择一个或两个数据进行相应的算术运算。
在一示例中,乘加单元模块中可以包括以下至少一种:选择器、共轭取反单元、乘法单元、加法单元和截位单元,其中,共轭取反单元用于对数据进行共轭操作和/或取反操作,或者用于对数据进行直通操作。
在一具体示例中,如图2所示,乘加单元模块40中包括选择器401、选择器402、共轭取反单元403、共轭取反单元404、乘法单元405、加法单元406和截位单元407。
其中,选择器401根据配置模块的配置(即第三配置数据)从5个数据中选择一个或两个数据通过;乘法单元405完成乘法算术运算;加法单元406完成加法算术运算;共轭取反单元403和共轭取反单元404根据配置模块的配置(即第三配置数据)对选择器401通过的两个数据分别进行共轭操作和/或取反操作,或者直通操作,其中,直通操作是指不对输入共轭取反单元的数据进行任何操作,即共轭取反单元对通过的数据进行直通操作时,其输出数据即为输入数据;选择器402根据配置模块的配置(即第三配置数据)在乘法单元405输出数据、加法单元406输出数据、共轭取反单元403输出数据以及共轭取反单元404输出数据这四个数据中选择一个通过。另外,截位单元407根据配置模块的配置(即第三配置数据)对选择器402的输出数据截位操作,以避免多数据算术运算时运算结果溢出。最终,截位单元407的输出即为乘加单元模块的输出。
在本示例中,乘加单元模块可以对接收的任意两个数据进行共轭/取反运算和乘/加运算的组合运算,也可以对接收的任意任一个数据进行直通操作、共轭操作和取反操作。
值得指出的是,选择器401、选择器402、共轭取反单元403、共轭取反单元404和截位单元407的配置均可以通过乘加单元模块的控制接口4004来获取。
在本实施方式提供的技术方案中,为每个乘加单元模块设置编号,多个乘加单元模块按照编号进行排序,可以是按照编号由小到大进行排序,也可以按照编号由大到小进行排序,多个乘加单元模块基于互联路由模块建立的互联路由实现单向级联。在多个乘加单元模块中,互联路由是前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间,也即数据流方向是由前级乘加单元模块的输出接口到后级乘加单元模块的输入接口的。其中,前级乘加单元模块和后级乘加单元模块是相对而言的,前级乘加单元模块的编号排序位数小于后级乘加单元模块的编号排序位数。
也即,乘加单元模块间的数据映射是单向非对称的,前级乘加单元模块的输出数据可以映射到后级乘加单元模块的输入数据,而后级乘加单元模块的输出数据不可以映射到前级乘加单元模块的输入数据。
进而,数据处理装置的整体数据流向是编号排序位数为第一位的乘加单元模块到编号排序位数为最后一位的乘加单元模块,以数据处理装置包括N-1个乘加单元模块为例,数据处理装置的整体数据流向是从第1位乘加单元模块到第N-1位乘加单元模块的。
除编号排序位数为最后一位的乘加单元模块(如图1中第N-1位乘加单元模块)之外,其余乘加单元模块的输出送入互联路由模块中,以通过互联路由模块实现多个乘加单元模块之间的单向级联。编号排序位数为最后一位的乘加单元模块的输出即为数据处理装置的输出,无需再送入互联路由模块中。
输入路由模块20,按照第一配置数据,建立N个输入数据通道到N-1个乘加单元模块之间的路由。其中,每个输入数据通道用于接收一个输入数据,N个输入数据通道可以同时接收数据处理装置的N个输入数据。第一配置数据,用于指示建立某个输入数据通道到某个乘加单元模块的某个输入接口之间的路由,具体可以是建立某个输入数据通道到某个乘加单元模块的某个装置数据输入接口之间的路由。
在每个乘加单元模块具备两个装置数据输入接口的情况下,输入路由模块20具备建立N个输入数据通道到N-1个乘加单元模块之间共计N*2*(N-1)条映射路由的能力。
在一具体示例中,如图3所示,输入路由模块20中包括多个选择器201,选择器201用于提供数据处理装置的多个输入数据通道到乘加单元模块的一个装置数据输入接口之间的路由。其中,每个选择器201的输入为配置数据以及N个输入数据,输出为某一个乘加单元模块某个装置数据输入接口的输入数据。N-1个乘加单元模块共计2N-2个装置数据输入接口,与每个装置数据输入接口对应的输入数据通道均可以通过配置模块独立配置。进而,输入路由模块使数据处理装置能够实现多个输入数据的并行计算。
进一步的,在一示例中,输入路由模块用于根据第一配置数据,建立数据处理装置的多个输入数据通道到多个乘加单元模块的输入接口之间的输入路由,可以具体为:
输入路由模块,用于根据第一配置数据,通过选择器在数据处理装置的多个输入数据通道中选择一个输入数据目标通道,建立输入数据目标通道到一个乘加单元模块的一个装置数据输入接口之间的路由。
如图3所示,以一个选择器201为例,选择器201具备建立N个输入数据通道中任意一个输入数据通道到与该选择器201相连的一个乘加单元模块的一个装置数据输入接口之间的路由的能力。图3中输入数据0至输入数据N-1即为数据处理装置的N个输入数据,装置输入数据0和装置输入数据1即为乘加单元模块的两个装置数据输入接口分别接收到的数据处理装置的输入数据。
具体的,选择器201根据配置模块的配置,在N个输入数据通道中选择一个输入数据通道作为输入数据目标通道,建立该输入数据目标通道到与该选择器201相连的一个乘加单元模块的一个装置数据输入接口之间的路由。
值得指出的是,选择器201也可以根据配置模块的配置,不建立N个输入数据通道中任意一个输入数据通道到与该选择器201相连的一个乘加单元模块的一个装置数据输入接口之间的路由。此时,与该选择器201相连的乘加单元模块的装置数据输入接口无法接收到数据处理装置的输入数据。
互联路由模块30可以根据第二配置数据,建立多个乘加单元模块40中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的路由,以完成前级乘加单元模块输出数据到后级乘加单元模块的互联输入数据的单向非对称映射。在乘加单元模块最多能处理两个数据的算术运算的情况下,后级乘加单元模块最多能选择两个前级乘加单元模块的输出进行级联算术运算。
其中,第二配置数据用于指示建立某个前级乘加单元模块的输出接口到某个后级乘加单元模块的某个输入接口之间的路由,具体可以是建立某个前级乘加单元模块的输出接口到某个后级乘加单元模块的某个互联数据输入接口之间的路由。
进而,在输入路由模块根据配置模块的配置建立多个输入数据通道到多个乘加单元模块的输入接口之间的输入路由,以及互联路由模块根据配置模块的配置建立前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的各个互联路由之后,多个乘加单元模块之间基于输入路由和互联路由构成了并/串联混合的网络拓扑。
在上述技术方案中,配置模块根据所需支持的多数据算术运算数学模型,对输入路由模块、乘加单元模块和互联路由模块进行配置,令数据处理装置的输入数据和乘加单元模块的输出数据可以灵活映射到对应的乘加单元模块的输入数据,乘加单元模块对其接收的数据执行相关运算,使得数据处理装置具备多数据复杂算术运算的能力。
在一示例中,互联路由模块用于通过直连方式和/或选择器提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由;其中,前级乘加单元模块的编号排序位数小于后级乘加单元模块的编号排序位数。
互联路由模块中选择器的输入数据为前级乘加单元模块的输出数据,输出数据为后级乘加单元模块的互联输入数据(即通过互联数据输入接口接收的输入数据)。可选的,互联路由模块中选择器的输入数据为一个或多个,输出数据为一个。当选择器的数据为一个时,该选择器相当于对其输入数据和输出数据进行直连。
在一具体示例中,在乘加单元模块最多能处理两个数据的算术运算的情况下,针对编号排序前四位的乘加单元模块,互联路由模块用于通过直连方式提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由;针对除编号排序前四位之外的乘加单元模块,互联路由模块用于通过直连方式和选择器提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由。
以编号排序位数为X的第X位乘加单元模块为例进行解释说明,首先设定X为大于等于0且小于等于乘加单元模块总数量的整数。
第X位乘加单元模块数据流的上游有X-1个乘加单元模块,若要在X个乘加单元模块之间进行乘加单元模块级联运算,可以对X-1进行的正整数的加法分解,如X-1=1+(X-2)=2+(X-3)=3+(X-4)=……=floor(X-1/2)+ceil(X-1/2),其中,floor为向下(即向负无穷方向)取整函数,ceil为向上(即向正无穷方向)取整函数。
“X-1=1+(X-2)”表示第X位乘加单元模块可以完成“1个乘加单元模块输出”和“X-2个乘加单元模块级联输出”的级联算术运算。由于多个乘加单元模块之间是单向级联的,故“1个乘加单元模块输出”和“X-2个乘加单元模块级联输出”分别对应于第X-1位乘加单元模块的输出和第X-2位乘加单元模块的输出,因此,“X-1=1+(X-2)”表示第X位乘加单元模块可以完成“第X-1位乘加单元模块的输出”和“第X-2位乘加单元模块的输出”的级联算术运算。
“X-1=2+(X-3)”表示第X位乘加单元模块可以完成“2个乘加单元模块级联输出”和“X-3个乘加单元模块级联输出”的级联算术运算。由于多个乘加单元模块之间是单向级联的,故“2个乘加单元模块级联输出”和“X-3个乘加单元模块级联输出”分别对应于第X-1位乘加单元模块的输出和第X-3位乘加单元模块的输出,因此,“X-1=2+(X-3)”表示第X位乘加单元模块可以完成“第X-1位乘加单元模块的输出”和“第X-3位乘加单元模块的输出”的级联算术运算。
以此类推,“X-1=floor((X-1)/2)+ceil((X-1)/2)”表示第X位乘加单元模块可以完成“floor((X-1)/2)个乘加单元模块级联输出”和“ceil((X-1)/2)个乘加单元模块级联输出”的级联算术运算。由于多个乘加单元模块之间是单向级联的,故“floor((X-1)/2)个乘加单元模块级联输出”和“ceil((X-1)/2)个乘加单元模块级联输出”分别对应于第X-1位乘加单元模块的输出和第ceil((X-1)/2)位乘加单元模块的输出,因此,“X-1=floor((X-1)/2)+ceil((X-1)/2)”表示第X位乘加单元模块可以完成“第X-1位乘加单元模块的输出”和“第ceil((X-1)/2)位乘加单元模块的输出”的级联算术运算。
综上看来,第X位乘加单元模块的前级乘加单元模块有固定的第X-1位乘加单元模块,和可选的第X-2位乘加单元模块、第X-3位乘加单元模块、…、第ceil((X-1)/2)位乘加单元模块。因此,互联路由模块无需提供第1位乘加单元模块、第2位乘加单元模块、…、第ceil((X-1)/2)-1位乘加单元模块到第X位乘加单元模块的路由,以减少互联路由开销。
编号排序前四位的乘加单元模块,即第1位乘加单元模块至第4位乘加单元模块,这四个乘加单元模块的编号排序位数靠前,比较特殊。
其中,第1位乘加单元模块为数处理装置中的首个乘加单元模块,无前级乘加单元模块。
第2位乘加单元模块的前级乘加单元模块有且只有第1位乘加单元模块。
第3位乘加单元模块的前级乘加单元模块有且只有第1位乘加单元模块和第2位乘加单元模块。
第4位乘加单元模块的前级乘加单元模块有3个,分别为第1位乘加单元模块、第2位乘加单元模块和第3位乘加单元模块。但X=4时,X-2=ceil((X-1)/2)=2,所以可认定第3(即X-1)位乘加单元模块和第2位乘加单元模块是前级乘加单元模块,第1位乘加单元模块不是前级乘加单元模块。互联路由中无需考虑第1位乘加单元模块的输出到第4位乘加单元模块的输入之间的路由。
进而,针对编号排序前四位的乘加单元模块而言,其互联路由可以仅通过直连方式,也即通过连线来实现,其互联路由中仅有连线开销,没有选择器开销。
参照图4、图5和图6,在一具体示例中,针对编号排序前四位的乘加单元模块,互联路由模块用于通过直连方式提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由,可以具体为:
互联路由模块,还用于通过直连方式提供第1位乘加单元模块的输出接口到第2位乘加单元模块的互联数据输入接口之间的互联路由,第1位乘加单元模块的输出接口和第2位乘加单元模块的输出接口到第3位乘加单元模块的互联数据输入接口之间的互联路由,第2位乘加单元模块的输出接口和第3位乘加单元模块的输出接口到第4位乘加单元模块的互联数据输入接口之间的互联路由。
即,第2位乘加单元模块的互联路由为第1位乘加单元模块的输出到第2位乘加单元模块的互联输入数据0(也可以是互联输入数据1)的路由;第3位乘加单元模块的互联路由为第2位乘加单元模块的输出到第3位乘加单元模块的互联输入数据0的路由,以及第1位乘加单元模块的输出到第3位乘加单元模块的互联输入数据1的路由;第4位乘加单元模块的互联路由为第3位乘加单元模块的输出到第4位乘加单元模块的互联输入数据0的路由,以及第2位乘加单元模块的输出到第4位乘加单元模块的互联输入数据1的路由。
其中,互联输入数据1和互联输入数据0为乘加单元模块的两个互联数据输入接口接收的输入数据。
除编号排序前四位之外的乘加单元模块,即第4位乘加单元模块之后的其他乘加单元模块,仍以第X位乘加单元模块为例表示其中一个乘加单元模块,此时X为大于4且小于等于乘加单元模块总数量(N-1)的自然数,即4<X≤N-1。
参照图7,在一具体示例中,针对除编号排序前四位之外的乘加单元模块,互联路由模块用于通过直连方式和选择器提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由,可以具体为:
互联路由模块,用于通过选择器提供第X-2位乘加单元模块至第ceil((X-1)/2)位乘加单元模块的输出接口到第X位乘加单元模块的一个互联数据输入接口之间的路由;通过直连方式提供第X-1位乘加单元模块的输出接口到第X位乘加单元模块的另一个互联数据输入接口之间的互联路由。
第X-2位乘加单元模块、第X-3位乘加单元模块、…、第ceil((X-1)/2)个乘加单元模块的输出接口接入经配置模块配置的选择器,选择器的输出直连到第X位乘加单元模块的一个互联数据输入接口;第X-1位乘加单元模块的输出接口固定直连到第X位乘加单元模块的另一个互联数据输入接口即可。
也即,第X位乘加单元模块的互联路由为第X-2位乘加单元模块、第X-3位乘加单元模块、…、第ceil((X-1)/2)位乘加单元模块中任意一个乘加单元模块的输出到第X位乘加单元模块的互联输入数据1的路由,以及第X-1位乘加单元模块的输出到第X位乘加单元模块的互联输入数据0的路由。
进一步的,可以将互联路由模块,用于根据第二配置数据,建立多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,具体为:
互联路由模块,用于根据第二配置数据,通过选择器在第X-2位乘加单元模块至第ceil((X-1)/2)位乘加单元模块中选择一个目标乘加单元模块,建立目标乘加单元模块的输出接口到第X位乘加单元模块的一个互联数据输入接口之间的互联路由。
与第X位乘加单元模块对应的选择器根据第二配置数据,在第X-2位乘加单元模块、第X-3位乘加单元模块、…、第ceil((X-1)/2)位乘加单元模块中选取一个连接到第X位乘加单元模块的一个互联数据输入接口。
在上述技术方案中,在第5位乘加单元模块至第N-1位乘加单元模块中,每个乘加单元模块的选择器开销为(X-2-ceil((X-1)/2))选1,进而互联路由模块内选择器开销的数量级为N^2/4。互联路由模块若使用现有的全映射方案,每个乘加单元模块在另外的N-2个乘加单元模块中任选2个执行乘加单元模块级联运算,每个乘加单元模块的选择器开销是2*(N-2)选1,N-1个乘加单元模块的选择器开销为(N-1)*2*(N-2)选1的选择器资源,数量级为2*N^2。相比之下,本申请实施例提供的互联路由模块的选择器开销远小于全映射方案。
本申请实施方式提供的互联路由模块,不存在冗余的不进行实际算术运算的转发乘加单元模块,乘加单元模块之间的数据传输也高于共享总线方式的互联路由,且互联开销小于全映射路由方式,兼顾了运算单元运算效率、数据传输效率和互联开销的平衡。
本申请实施方式提供的技术方案中,数据处理装置可以对多个装置输入数据进行灵活且复杂的算术运算,且能够满足多数据算数运算对于数学模型切换和更新的需求;同时,数据处理装置中的互联路由模块根据配置模块的配置,按照多个乘加单元模块的编号排序位数建立多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,以实现多个乘加单元模块之间的单向级联,而非双向级联,以此减小了互联路由开销,而且数据处理装置中不存在冗余的不进行实际算术运算的转发乘加单元模块,乘加单元模块之间的数据传输也高于共享总线方式的互联路由,由此本申请实施例提供的数据处理装置在对多个输入数据进行复杂算术运算时能够兼顾运算单元运算效率、数据传输效率和互联开销的平衡。
在一个示例性实施方式中,图8为本申请提供的一种数据处理方法的流程示意图。该方法适用于对多输入数据进行灵活且复杂的算术运算的情况。该方法可以由本申请任意实施方式中提供的数据处理装置执行。
如图8所示,本申请实施例提供的数据处理方法,应用于本申请任意实施方式中提供的数据处理装置中,包括:
S810、通过配置模块根据输入数学模型对输入路由模块、互联路由模块以及多个乘加单元模块分别进行配置,对应得到第一配置数据、第二配置数据和第三配置数据。
S820、通过输入路由模块根据第一配置数据,建立多个输入数据通道到多个乘加单元模块的输入接口之间的输入路由。
S830、通过互联路由模块根据第二配置数据,按照所述多个乘加单元模块的编号排序位数建立多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,以实现多个乘加单元模块之间的单向级联。
S840、通过输入路由模块接收数据处理装置的多个输入数据。
在配置模块完成相关配置之后,数据处理装置即可通过输入路由模块接收输入数据。
S850、通过乘加单元模块基于输入路由和/或互联路由获取乘加单元模块的输入数据,并根据第三配置数据,对乘加单元模块的输入数据进行算术运算,以及通过编号排序位数为最后一位的乘加单元模块得出与多个输入数据对应的算术运算结果。
在一示例中,乘加单元模块中包括以下至少一种:选择器、共轭取反单元、乘法单元、加法单元和截位单元,其中,所述共轭取反单元用于对数据进行共轭操作和/或取反操作,或者用于对数据进行直通操作。
在一示例中,乘加单元模块的输入接口包括:两个装置数据输入接口,用于接收数据处理装置的输入数据;乘加单元模块的输入接口包括:两个互联数据输入接口,用于接收前级乘加单元模块的输出数据;乘加单元模块的输入接口还包括:常数输入接口,用于接收配置模块配置的常数;乘加单元模块,具体用于根据第三配置数据,在通过输入接口接收的数据中选择一个或两个数据进行算术运算。
相应的,配置模块在根据输入数学模型分别对输入路由模块、互联路由模块以及多个乘加单元模块进行配置时,根据输入数学模型,对输入路由模块内各个选择器进行配置,实现对第1位乘加单元模块至第N-1位乘加单元模块的输入路由进行配置;根据输入数学模型,对互联路由模块内各个选择器进行配置,实现对第5位乘加单元模块至第N-1位乘加单元模块的互联路由进行配置;根据输入数学模型,对各个乘加单元模块进行相关配置。
如果输入数学模型中包括常数,配置模块还将输入数学模型中的常数输入对应的乘加单元模块中。
进一步的,输入路由模块中包括多个选择器,选择器用于提供数据处理装置的多个输入数据通道到乘加单元模块的一个装置数据输入接口之间的输入路由。
进一步的,输入路由模块根据第一配置数据,通过选择器在数据处理装置的多个输入数据通道中选择一个输入数据目标通道,建立输入数据目标通道到一个乘加单元模块的一个装置数据输入接口之间的输入路由。
在一示例中,互联路由模块通过直连方式和/或选择器提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由;其中,前级乘加单元模块的编号排序位数小于后级乘加单元模块的编号排序位数。
进一步的,在乘加单元模块最多处理两个数据的情况下,针对编号排序前四位的乘加单元模块,互联路由模块通过直连方式提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由;针对除编号排序前四位之外的乘加单元模块,互联路由模块通过直连方式和选择器提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由。
进一步的,互联路由模块通过直连方式提供第1位乘加单元模块的输出接口到第2位乘加单元模块的互联数据输入接口之间的互联路由,第1位乘加单元模块的输出接口和第2位乘加单元模块的输出接口到第3位乘加单元模块的互联数据输入接口之间的互联路由,第2位乘加单元模块的输出接口和第3位乘加单元模块的输出接口到第4位乘加单元模块的互联数据输入接口之间的互联路由。
互联路由模块通过选择器提供第X-2位乘加单元模块至第ceil((X-1)/2)位乘加单元模块的输出接口到第X位乘加单元模块的一个互联数据输入接口之间的互联路由;通过直连方式提供第X-1位乘加单元模块的输出接口到第X位乘加单元模块的另一个互联数据输入接口之间的互联路由。
其中,X为大于4且小于等于乘加单元模块总数量的自然数,ceil为向上取整函数。
进一步的,互联路由模块根据第二配置数据,通过选择器在第X-2位乘加单元模块至第ceil((X-1)/2)位乘加单元模块中选择一个目标乘加单元模块,建立目标乘加单元模块的输出接口到第X位乘加单元模块的一个互联数据输入接口之间的互联路由。
本实施方式未尽详细解释之处请参见前述实施例,在此不再赘述。
在上述技术方案中,数据处理装置可以对多个装置输入数据进行灵活且复杂的算术运算,且能够满足多数据算数运算对于数学模型切换和更新的需求;同时,数据处理装置中的互联路由模块根据配置模块的配置,按照多个乘加单元模块的编号排序位数建立多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,以实现多个乘加单元模块之间的单向级联,而非双向级联,以此减小了互联路由开销,而且数据处理装置中不存在冗余的不进行实际算术运算的转发乘加单元模块,乘加单元模块之间的数据传输也高于共享总线方式的互联路由,由此本申请实施例提供的数据处理装置在对多个输入数据进行复杂算术运算时能够兼顾运算单元运算效率、数据传输效率和互联开销的平衡。
以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(ROM)、随机访问存储器(RAM)、光存储器装置和系统(数码多功能光碟DVD或CD光盘)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(FGPA)以及基于多核处理器架构的处理器。
通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本申请的范围。因此,本申请的恰当范围将根据权利要求确定。

Claims (11)

1.一种数据处理装置,其特征在于,包括:配置模块、输入路由模块、互联路由模块和多个乘加单元模块,其中,
所述配置模块,用于根据输入数学模型分别对所述输入路由模块、所述互联路由模块以及所述多个乘加单元模块进行配置,对应得到第一配置数据、第二配置数据和第三配置数据;
所述输入路由模块,用于根据所述第一配置数据,建立所述数据处理装置的多个输入数据通道到所述多个乘加单元模块的输入接口之间的输入路由;
所述互联路由模块,用于根据所述第二配置数据,按照所述多个乘加单元模块的编号排序位数建立所述多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,以实现所述多个乘加单元模块之间的单向级联;
所述乘加单元模块,用于通过所述输入路由和/或所述互联路由获取所述乘加单元模块的输入数据,并根据所述第三配置数据对所述乘加单元模块的输入数据进行算术运算。
2.根据权利要求1所述的装置,其特征在于,所述乘加单元模块的输入接口包括:两个装置数据输入接口,用于接收所述数据处理装置的输入数据;
所述乘加单元模块的输入接口包括:两个互联数据输入接口,用于接收前级乘加单元模块的输出数据;
所述乘加单元模块的输入接口还包括:常数输入接口,用于接收所述配置模块配置的常数;
所述乘加单元模块,用于根据所述第三配置数据,在通过所述输入接口接收的数据中选择一个或两个数据进行算术运算。
3.根据权利要求2所述的装置,其特征在于,所述互联路由模块用于通过直连方式和/或选择器提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由;其中,所述前级乘加单元模块的编号排序位数小于所述后级乘加单元模块的编号排序位数。
4.根据权利要求3所述的装置,其特征在于,
针对编号排序前四位的乘加单元模块,所述互联路由模块用于通过直连方式提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由;
针对除编号排序前四位之外的乘加单元模块,所述互联路由模块用于通过直连方式和选择器提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由。
5.根据权利要求4所述的装置,其特征在于,针对编号排序前四位的乘加单元模块,所述互联路由模块用于通过直连方式提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由,包括:
所述互联路由模块,用于通过直连方式提供第1位乘加单元模块的输出接口到第2位乘加单元模块的互联数据输入接口之间的互联路由,第1位乘加单元模块的输出接口和第2位乘加单元模块的输出接口到第3位乘加单元模块的互联数据输入接口之间的互联路由,第2位乘加单元模块的输出接口和第3位乘加单元模块的输出接口到第4位乘加单元模块的互联数据输入接口之间的互联路由。
6.根据权利要求4所述的装置,其特征在于,针对除编号排序前四位之外的乘加单元模块,所述互联路由模块用于通过直连方式和选择器提供前级乘加单元模块的输出接口到后级乘加单元模块的互联数据输入接口之间的互联路由,包括:
所述互联路由模块,用于通过选择器提供第X-2位乘加单元模块至第ceil((X-1)/2)位乘加单元模块的输出接口到第X位乘加单元模块的一个互联数据输入接口之间的互联路由;通过直连方式提供第X-1位乘加单元模块的输出接口到第X位乘加单元模块的另一个互联数据输入接口之间的互联路由;
其中,X为大于4且小于等于乘加单元模块总数量的自然数,ceil为向上取整函数。
7.根据权利要求6所述的装置,其特征在于,所述互联路由模块,用于根据所述第二配置数据,建立所述多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,包括:
所述互联路由模块,用于根据所述第二配置数据,通过选择器在第X-2位乘加单元模块至第ceil((X-1)/2)位乘加单元模块中选择一个目标乘加单元模块,建立所述目标乘加单元模块的输出接口到第X位乘加单元模块的一个互联数据输入接口之间的互联路由。
8.根据权利要求1或2所述的装置,其特征在于,所述乘加单元模块中包括以下至少一种:选择器、共轭取反单元、乘法单元、加法单元和截位单元,其中,所述共轭取反单元用于对数据进行共轭操作和/或取反操作,或者用于对数据进行直通操作。
9.根据权利要求2所述的装置,其特征在于,所述输入路由模块中包括多个选择器,所述选择器用于提供所述数据处理装置的多个输入数据通道到所述乘加单元模块的一个装置数据输入接口之间的输入路由。
10.根据权利要求9所述的装置,其特征在于,所述输入路由模块,用于根据所述第一配置数据,建立所述数据处理装置的多个输入数据通道到所述多个乘加单元模块的输入接口之间的输入路由,包括:
所述输入路由模块,用于根据所述第一配置数据,通过选择器在所述数据处理装置的多个输入数据通道中选择一个输入数据目标通道,建立所述输入数据目标通道到一个所述乘加单元模块的一个装置数据输入接口之间的输入路由。
11.一种数据处理方法,其特征在于,应用于如权利要求1-10任一项所述的数据处理装置中,包括:
通过配置模块根据输入数学模型分别对输入路由模块、互联路由模块以及多个乘加单元模块进行配置,对应得到第一配置数据、第二配置数据和第三配置数据;
通过所述输入路由模块根据所述第一配置数据,建立多个输入数据通道到所述多个乘加单元模块的输入接口之间的输入路由;
通过所述互联路由模块根据所述第二配置数据,按照所述多个乘加单元模块的编号排序位数建立所述多个乘加单元模块中前级乘加单元模块的输出接口到后级乘加单元模块的输入接口之间的互联路由,以实现所述多个乘加单元模块之间的单向级联;
通过所述输入路由模块接收所述数据处理装置的多个输入数据;
通过所述乘加单元模块基于所述输入路由和/或所述互联路由获取所述乘加单元模块的输入数据,并根据所述第三配置数据,对所述乘加单元模块的输入数据进行算术运算,以及,通过编号排序位数为最后一位的所述乘加单元模块得出与所述多个输入数据对应的算术运算结果。
CN202010583752.0A 2020-06-23 2020-06-23 数据处理装置及数据处理方法 Pending CN113835675A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010583752.0A CN113835675A (zh) 2020-06-23 2020-06-23 数据处理装置及数据处理方法
PCT/CN2021/095559 WO2021258954A1 (zh) 2020-06-23 2021-05-24 数据处理装置及数据处理方法
EP21829205.0A EP4145276A4 (en) 2020-06-23 2021-05-24 DATA PROCESSING DEVICE AND DATA PROCESSING METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010583752.0A CN113835675A (zh) 2020-06-23 2020-06-23 数据处理装置及数据处理方法

Publications (1)

Publication Number Publication Date
CN113835675A true CN113835675A (zh) 2021-12-24

Family

ID=78964260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010583752.0A Pending CN113835675A (zh) 2020-06-23 2020-06-23 数据处理装置及数据处理方法

Country Status (3)

Country Link
EP (1) EP4145276A4 (zh)
CN (1) CN113835675A (zh)
WO (1) WO2021258954A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677735B (zh) * 2012-09-19 2017-08-04 北京中科晶上科技股份有限公司 一种数据处理装置及数字信号处理器
US10360163B2 (en) * 2016-10-27 2019-07-23 Google Llc Exploiting input data sparsity in neural network compute units
US10445451B2 (en) * 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US20210382691A1 (en) * 2018-10-15 2021-12-09 The Board Of Trustees Of The University Of Illinois In-Memory Near-Data Approximate Acceleration
JP7115211B2 (ja) * 2018-10-18 2022-08-09 富士通株式会社 演算処理装置および演算処理装置の制御方法

Also Published As

Publication number Publication date
WO2021258954A1 (zh) 2021-12-30
EP4145276A1 (en) 2023-03-08
EP4145276A4 (en) 2023-11-01

Similar Documents

Publication Publication Date Title
US11995027B2 (en) Neural processing accelerator
JP3578502B2 (ja) 単一プロセッサにおいて並列データ処理を実行する方法
EP3096222B1 (en) Pipelined cascaded digital signal processing structures and methods
KR0125623B1 (ko) 데이타 프로세서 및 데이타 처리방법
US6754805B1 (en) Method and apparatus for configurable multi-cell digital signal processing employing global parallel configuration
CN107797962B (zh) 基于神经网络的计算阵列
EP1351134A2 (en) Superpipelined arithmetic-logic unit with feedback
US20040168044A1 (en) Input pipeline registers for a node in an adaptive computing engine
CN102819520A (zh) 具有嵌入式浮点结构的数字信号处理模块
CN113064852B (zh) 一种可重构处理器及配置方法
US11734216B2 (en) Cascade communications between FPGA tiles
US11507531B2 (en) Apparatus and method to switch configurable logic units
US20210011686A1 (en) Arithmetic operation device and arithmetic operation system
CN112204517A (zh) 多输入浮点加法器
Graham et al. The cost of broadcasting on star graphs and k-ary hypercubes
KR0138859B1 (ko) 다중 명령어 다중 데이타형 신경망 전용 디지탈 어레이 프로세서 및 이를 이용해 구성된 시스템
CN113032723A (zh) 一种矩阵乘法器的实现方法及矩阵乘法器装置
JP4255475B2 (ja) データ駆動型情報処理装置
US20210200711A1 (en) System and Method for Configurable Systolic Array with Partial Read/Write
CN113835675A (zh) 数据处理装置及数据处理方法
CN110609804A (zh) 半导体器件和控制半导体器件的方法
US6401106B1 (en) Methods and apparatus for performing correlation operations
US7047271B2 (en) DSP execution unit for efficient alternate modes for processing multiple data sizes
CN103677735B (zh) 一种数据处理装置及数字信号处理器
JP3144859B2 (ja) 算術論理演算装置

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