CN115237370A - 计算装置、数据处理方法及相关产品 - Google Patents

计算装置、数据处理方法及相关产品 Download PDF

Info

Publication number
CN115237370A
CN115237370A CN202110449503.7A CN202110449503A CN115237370A CN 115237370 A CN115237370 A CN 115237370A CN 202110449503 A CN202110449503 A CN 202110449503A CN 115237370 A CN115237370 A CN 115237370A
Authority
CN
China
Prior art keywords
circuit
counting
hamming weight
computing device
binary sequence
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
CN202110449503.7A
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.)
Cambrian Kunshan Information Technology Co ltd
Original Assignee
Shanghai Cambricon Information 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 Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN202110449503.7A priority Critical patent/CN115237370A/zh
Publication of CN115237370A publication Critical patent/CN115237370A/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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • G06F7/4983Multiplying; Dividing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)

Abstract

本披露公开了一种计算装置、数据处理方法及相关产品。该计算装置可以包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本披露的方案提供了执行汉明重量指令的硬件架构,其可以简化处理,提高机器的处理效率。

Description

计算装置、数据处理方法及相关产品
技术领域
本披露一般地涉及处理器领域。更具体地,本披露涉及计算装置、数据处理方法、芯片和板卡。
背景技术
汉明距离在信息论中的定义是两个等长字符串之间的汉明距离,也就是两个字符串对应位置的不同字符的个数。例如:二进制字符序列10011001与10101010之间的汉明距离是4;而数字序列12345678与22345768之间的汉明距离为3;文字序列“familes”与“familar”之间的汉明距离为2。汉明重量是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是1的个数,所以11101的汉明重量是4。事实上,汉明重量分析广泛地应用在信息论、编码理论、密码学、信息搜索、文本翻译等领域中。
另一方面,随着深度学习的迅猛发展,适合于深度学习处理的芯片、处理器等硬件架构也有了跨越式的进展。如果能将汉明重量分析移植到适合深度学习处理的硬件架构上,则有可能加速汉明重量分析处理,提升各种领域中相关处理的处理效率。现有的硬件和/或指令集不能有效地支持汉明重量分析相关的操作。
发明内容
为了至少部分地解决背景技术中提到的一个或多个技术问题,本披露的方案提供了一种计算装置、数据处理方法、芯片和板卡。
在第一方面中,本披露公开一种计算装置,包括控制电路和运算电路,其中:所述控制电路用于对汉明重量指令进行解析,所述汉明重量指令的操作对象包括二进制序列,所述汉明重量指令指示对所述二进制序列中的“1”的个数进行统计以作为其汉明重量;以及所述运算电路包括多个从处理电路,并且所述运算电路用于根据所述汉明重量指令,调度相应数量的从处理电路执行汉明重量运算任务,其中所调度的每个从处理电路针对所分配的所述二进制序列中的序列段统计其中“1”的个数。
在第二方面中,本披露提供一种芯片,包括前述第一方面任一实施例的计算装置。
在第三方面中,本披露提供一种板卡,包括前述第二方面任一实施例的芯片。
在第四方面中,本披露提供一种由计算装置实施的数据处理方法,所述计算装置包括控制电路和运算电路,所述运算电路包括多个从处理电路,所述方法包括:所述控制电路对汉明重量指令进行解析,所述汉明重量指令的操作对象包括二进制序列,所述汉明重量指令指示对所述二进制序列中的“1”的个数进行统计以作为其汉明重量;以及所述运算电路根据所述汉明重量指令,调度相应数量的从处理电路执行汉明重量运算任务,其中所调度的每个从处理电路针对所分配的所述二进制序列中的序列段统计其中“1”的个数。
通过如上所提供的计算装置、数据处理方法、集成电路芯片和板卡,本披露实施例提供了一种在包括多个从处理电路的硬件架构上执行汉明重量分析的方案。汉明重量计算任务可以分布在多个从处理电路上执行,从而充分利用深度学习处理硬件架构的计算优势,通过并行运算提高机器的处理效率。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出本披露实施例的板卡的结构图;
图2示出本披露实施例的组合处理装置的结构图;
图3示出本披露实施例的单核或多核计算装置的处理器核的内部结构示意图;
图4示出本披露实施例的计算装置的示例性结构示意图;
图5示出本披露实施例的计算装置中的运算电路的部分结构示意图;
图6示出根据本披露实施例的主处理电路和从处理电路的部分结构示意图;以及
图7示出根据本披露实施例的数据处理方法的示例性流程图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中可能出现的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
下面结合附图来详细描述本披露的具体实施方式。
图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和存储装置204。
计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。
接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。
处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。
存储装置204用以存储待处理的数据,其可以是DRAM,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。
图3示出了计算装置201为单核或多核装置时处理核的内部结构示意图。计算装置301用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,计算装置301包括三大模块:控制模块31、运算模块32及存储模块33。
控制模块31用以协调并控制运算模块32和存储模块33的工作,以完成深度学习的任务,其包括取指单元(instruction fetch unit,IFU)311及指令译码单元(instructiondecode unit,IDU)312。取指单元311用以获取来自处理装置203的指令,指令译码单元312则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块32和存储模块33。
运算模块32包括向量运算单元321及矩阵运算单元322。向量运算单元321用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元322负责深度学习算法的核心计算,即矩阵乘及卷积。
存储模块33用来存储或搬运相关数据,包括神经元存储单元(neuron RAM,NRAM)331、权值存储单元(weight RAM,WRAM)332、直接内存访问模块(direct memory access,DMA)333。NRAM 331用以存储输入神经元、输出神经元和计算后的中间结果;WRAM 332则用以存储深度学习网络的卷积核,即权值;DMA 333通过总线34连接DRAM 204,负责计算装置301与DRAM 204间的数据搬运。
基于前述硬件环境,在一个方面中,本披露实施例提供了一种计算装置,根据汉明重量指令来执行汉明重量计算任务。如前面所提到的,汉明距离是求两个等长字符串之间对应位置的不同字符的个数,也就是将一个字符串变换成另一个字符串所需要替换字符的个数,其可以代表两个字符串之间的相似度。汉明距离的含义也可以扩展到更高维度数据之间的距离,例如两幅2D图像之间的距离,或者两幅3D图像之间的距离,统计二者之间不相同的数据位的个数。无论是二维数据、三维数据还是更高维数据之间的汉明距离,都可以转换成待计算汉明距离的两个数据之间按位进行异或运算得到二进制序列后,统计该二进制序列中“1”的个数,也即计算该二进制序列的汉明重量,从而作为这两个数据的汉明距离。这里的“位”根据不同的应用场景,可以是每个字符位、每个数字位、每比特位、甚至多个数据单元构成的“位”,本披露实施例在此方面没有限制。按位异或运算后得到的二进制序列可能非常长。因此,若能充分利用前述硬件环境,挖掘数据的并行处理可能性,则可以加速运算,提升效率。
图4示出根据本披露实施例的计算装置400的示意性结构框图。可以理解,该结构可以视为图3中单个处理核的内部结构细化,也可以视为在多个图3所示处理核基础上联合的功能划分框图。如图4所示,本披露实施例的计算装置400可以用于执行汉明重量计算任务,其可以包括存储电路40、控制电路41和运算电路42,三者之间相互连接以传输各种数据和指令。
控制电路41的功能与图3中的控制模块31类似,其例如也可以包括取指单元(instruction fetch unit,IFU)411及指令译码单元(instruction decode unit,IDU)412。在执行例如计算操作的各种运算操作中,控制电路41可以配置成获取计算指令并对计算指令进行解析以获得运算指令,然后将运算指令发送到运算电路42和存储电路40。计算指令可以是一种形式的硬件指令并且包括一个或多个操作码,而每个操作码可以表示将要由运算电路42执行的一个或多个具体的操作。这些操作可以根据应用场景的不同而包括不同类型的操作,例如可以包括加法操作或乘法操作等算术运算、逻辑运算、比较运算或者查表运算,或者前述各类运算的任意多种组合。相应地,运算指令可以是根据计算指令解析后得到的运算电路内部执行的一个或多个微指令。
进一步,根据应用场景的不同,在解析计算指令后获得的运算指令可以是经控制电路41译码后的运算指令或者可以是未经控制电路41译码的运算指令。当运算指令是未经控制电路41译码的运算指令时,则运算电路42内可以包括相应的译码电路来执行运算指令的译码,以例如得到多个微指令。
运算电路42可以包括主处理电路421和多个从处理电路422。主处理电路和从处理电路之间以及多个从处理电路之间可以通过各种连接相互通信。
主处理电路和从处理电路可以相互配合,由此实现并行运算处理。在这种配置中,主处理电路例如可以用于对输入数据执行前序处理,例如对数据进行拆分,以及从多个从处理电路接收中间结果并执行后续处理,以得到运算指令的最终运算结果。从处理电路例如可以用于根据运算指令,对相应的数据(例如,拆分的数据)并行执行中间运算得到多个中间结果,并将多个中间结果传输回主处理电路。
在不同的应用场景中,多个从处理电路之间的连接方式既可以是通过硬线布置的硬连接方式,也可以是根据例如微指令进行配置的逻辑连接方式,以形成多种从处理电路阵列的拓扑结构。本披露实施例在此方面没有限制。
通过将运算电路42设置成主从结构(例如一主多从结构,或者多主多从结构,本披露在此方面没有限制),对于正向运算的计算指令,可以根据计算指令将数据进行拆分,从而通过多个从处理电路对计算量较大的部分进行并行运算以提高运算速度,节省运算时间,进而降低功耗。
为了支持运算功能,主处理电路和从处理电路可以包括各种计算电路,例如可以包括向量运算单元及矩阵运算单元。向量运算单元用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元负责深度学习算法的核心计算,例如矩阵乘和卷积。
存储电路40用来存储或搬运相关数据。在深度学习中,存储电路例如可用于存储神经元、权值等待运算数据,也可以存储运算结果。存储电路例如可以包括缓存402、寄存器404和直接内存访问模块(Direct Memory Access,DMA)406中的一个或任意组合。直接内存访问模块DMA 406可以用于与片外存储器(未示出)进行数据交互。
上面描述了根据本披露实施例的示例性计算装置,在该计算装置中,主处理电路和从处理电路可以属于同一处理器或芯片的不同模块,也可以属于不同处理器,本披露在此方面没有限制。
在一个实施例中,控制电路41可以配置成例如利用指令译码单元412对汉明重量指令进行解析。该汉明重量指令的操作对象包括二进制序列。汉明重量指令指示对该二进制序列中的“1”的个数进行统计,也即计算该二进制序列的汉明重量。进一步地,在此实施例中,运算电路42可以配置用于根据汉明重量指令,调度相应数量的从处理电路422执行汉明重量运算任务,其中所调度的每个从处理电路针对所分配的二进制序列中的序列段统计其中“1”的个数。
在一些实施例中,为了充分利用计算装置的并行计算资源,运算电路42中的主处理电路421可以配置用于根据汉明重量指令以及从处理电路的处理能力,对待统计的二进制序列进行拆分。
根据汉明重量指令可以确定要完成的运算量。汉明重量指令中可以指示待统计的二进制序列的尺寸信息。
从处理电路的处理能力代表可用的运算资源,其例如可以包括可用的从处理电路的数量,每个从处理电路一次能够处理的数据量,等等。
由此,基于要完成的运算量和可用运算资源量,主处理电路可以拆分待统计的二进制序列。
图5示出了根据本披露实施例的运算装置中的运算电路的部分结构示意图,以便通过示出各种数据在运算电路中的分配、传输和处理来描述汉明重量指令的执行方案。
如图所示,运算电路500(例如图4中的运算电路42)除了包括前面描述的主处理电路510、多个从处理电路520之外,还可以包括第一存储电路530和第二存储电路540。
第一存储电路530可以用于存储多播数据,也即第一存储电路中的数据将通过广播总线传输给多个从处理电路,这些从处理电路接收到相同的数据。可以理解,通过广播总线可以实现广播和多播。多播是指将一份数据传输到多个从处理电路的通信方式;而广播是将一份数据传输到所有从处理电路的通信方式,是多播的一个特例。由于多播和广播都对应一对多的传输方式,本文中未对二者特意区分,广播和多播可以统称为多播,本领域技术人员根据上下文可以明确其含义。第二存储电路540可以用于存储分发数据,也即第二存储电路中的数据将分别传输给不同的从处理电路,每个从处理电路接收到不同的数据。通过分别提供第一存储电路和第二存储电路,可以支持针对待运算的数据以不同传输方式进行传输,从而通过在多个从处理电路之间复用多播数据来降低数据吞吐量。
在一些实施例中,主处理电路510可以进一步用于:将待统计的二进制序列存储在第一存储电路530中,以在运算期间通过广播总线传输给所调度的多个从处理电路。
可以理解,待统计的二进制序列可能非常长,因此可以通过拆分待统计的二进制序列,经由多轮运算来实现汉明重量计算任务。
由于汉明重量计算中对二进制序列中“1”的个数的统计与各个序列段在二进制序列中的位置无关这一特性,也即无论先统计二进制序列中的哪个序列段都不影响最终结果,因此对二进制序列的拆分可以是任意的。而且,每个从处理电路每次可以处理一个不同的序列段,从而并行处理,提高效率。
因此,在一些实施例中,主处理电路510可以按照存储顺序和对齐要求,将二进制序列拆分成多个序列段,在每轮运算中,为所调度的每个从处理电路传输一个不同的序列段。
本文中“对齐要求”是指运算过程中例如为了尽量充分利用硬件,例如填满运算器而对数据尺寸提出的要求。在一个示例中,对齐要求例如是64字节,因此可以将二进制序列拆分为64字节大小的序列段,从而每个序列段可以完全利用所调度的从处理电路。
当二进制序列的长度超过一轮处理量(例如,64个从处理电路,每个处理64字节的序列段)时,需要重复多轮上述运算。每轮运算中,各个从处理电路的统计一段不同的序列段。
图6示出了根据本披露实施例的主处理电路和从处理电路的部分结构示意图。在本披露实施例中,基于汉明重量计算任务的需求,每个从处理电路600(例如图5中的从处理电路520)可以包括计数电路610和累加电路620。
在每轮运算中,计数电路610用于针对传输给当前从处理电路的序列段,统计其中“1”的个数。
在一些实现中,计数电路610可以包括多个计数器611,每个计数器例如用于统计分配给从处理电路的序列段中的一个子序列段中“1”的个数。例如,对于分配给从处理电路的64字节的二进制序列段,可以有64个计数器611,每个统计其中一个8比特子序列段中“1”的个数。计数器611可以通过各种逻辑电路来实现,本披露实施例在此方面没有限制。
在每轮运算中,累加电路620可以用于将计数电路的计数结果进行累加,得到部分计数值;以及将该部分计数值与前一轮次的部分计数值进行累加。
在一些实现中,累加电路620可以包括加法电路621和寄存器622。加法电路621用于对多个计数器的计数结果执行加法操作,以获得当前轮次的部分计数值。进一步地,加法电路621还可以对当前轮次的部分计数值与前一轮次的部分计数值执行加法操作,以更新部分计数值。加法电路例如可以包括以多级树状结构方式排列的多级华莱士树压缩器组;或者加法电路可以包括以多级树状结构方式排列的多级加法器组,本披露实施例在此方面没有限制。
寄存器622可以配合加法电路621使用,用于保存更新的部分计数值,也即寄存器保存最新的累加结果。
在一些实现中,累加电路620还可以包括乘法电路623。乘法电路623用于将多个计数器的计数结果分别与分配的权值执行乘法运算得到多个乘积结果,其中分配的权值为1;以及将乘积结果输送给加法电路621进行累加。
如前面所提到的,本披露实施例的汉明重量计算任务可以充分利用深度学习处理硬件架构来实现。深度学习任务通常包括大量的乘加运算,因此深度学习处理器中也会包括大量的乘法器和加法器。虽然从前文对汉明重量计算任务的描述可知,汉明重量计算任务无需乘法器的参与,也即可以旁路深度学习处理器中的乘法器。不过,在一些实施例中,也可以使用这些乘法器,只需要把权值设置为1即可。
这些权值可以由主处理电路预先存储在例如图5的第二存储电路540中,然后从处理电路可以在运算之前加载这些权值以便后续与计数结果执行乘法运算。
进一步地,在一些实施例中,运算电路可以将所调度的从处理电路的部分计数值进行累加,以得到整个二进制序列的汉明重量。
如前面所提到的,主处理电路例如可以从多个从处理电路接收中间结果并执行后续处理,以得到运算指令的最终运算结果。具体地,在上述实施例中,主处理电路510可以用于将每个从处理电路的部分计数值进行累加,以得到针对整个二进制序列的最终计数值,也即其汉明重量。
在另一些实现中,所调度的多个从处理电路可以将各自的部分计数值进行累加汇总后再返回给主处理电路。例如,这些从处理电路可以按照多级树状结构方式,两两累加汇总后将最终计数值返回给主处理电路。本披露实施例在具体的累加方式上没有限制。
当将本披露实施例的汉明重量计算任务应用于汉明距离计算时,在一些实施例中,待统计的二进制序列是由两个尺寸相等的输入数据执行按位异或操作获得的,从而该二进制序列的汉明重量等于这两个输入数据的汉明距离。异或操作和汉明重量计算操作可以分成两部分实现,也可以放在一起实现,本披露实施例在此方面没有限制。由于输入数据可能是各种维度的数据,因此将异或操作和汉明重量计算分开实现可以便于更灵活地部署硬件实施。
以上结合图5-图6描述了汉明重量计算任务的拆分方式和运算过程。本领域技术人员可以理解,虽然在图5中将各个处理电路与存储电路示出为分立的模块,但是根据不同的配置,存储电路与处理电路也可以合并成一个模块。例如,第一存储电路530可以与主处理电路510合并在一起,第二存储电路540则可以由多个从处理电路520共享,并为每个从处理电路分配独立的存储区域,加速访问。本披露实施例在此方面没有限制。
本披露实施例还提供了利用前述计算装置执行数据处理的方法。图7示出根据本披露实施例的数据处理方法700的示例性流程图。
如图7所示,在步骤710中,解析汉明重量指令,该汉明重量指令的操作对象包括待统计的二进制序列,并且该汉明重量指令指示对该待统计的二进制序列中的“1”的个数进行统计以作为其汉明重量。该步骤例如可以由图4的控制电路41来执行。
接着,在步骤720中,根据汉明重量指令,调度相应数量的从处理电路执行汉明重量运算任务,其中所调度的每个从处理电路针对所分配的二进制序列中的序列段统计其中“1”的个数。该步骤例如可以由图4的运算电路42来执行。
在一些实施例中,运算电路包括主处理电路、多个从处理电路、第一存储电路和/或第二存储电路。因此,步骤720可以进一步包括子步骤721,主处理电路根据汉明重量指令以及从处理电路的处理能力,对待统计的二进制序列进行拆分;以及子步骤722,将二进制序列存储在第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路。可选地,还可以包括子步骤723,将值为1的权值存储在第二存储电路中,以在使用乘法器时使用。
具体地,在子步骤721中,主处理电路可以按照存储顺序和对齐要求,将二进制序列拆分成多个序列段。继而,在子步骤722中,主处理电路在每轮运算中通过广播总线为所调度的每个从处理电路传输一个不同的序列段。
步骤720还可以进一步包括子步骤724,从处理电路针对传输的序列段统计其中“1”的个数,并返回统计结果。具体地,从处理电路可以包括计数电路和累加电路来实现上述“1”的个数统计的任务,参见前文描述。
步骤720可以进一步包括子步骤725,将所调度的从处理电路的部分计数值进行累加,以得到整个二进制序列的汉明重量。该步骤可以由从处理电路执行,也可以由主处理电路执行。例如,所调度的多个从处理电路可以按照多级树状结构方式,两两累加汇总后将最终计数值返回给主处理电路。在这种实现中,多个从处理电路可以根据互连电路的拓扑结构设计合适的累加汇总方式,以节省计算时间。又例如,主处理电路可以对多个从处理电路返回的部分计数值进行累加。具体地,主处理电路中可以包括累加电路,以将从每个从处理电路接收到的部分计数值进行累加,从而得到整个二进制序列的汉明重量。
本领域技术人员可以理解,方法流程图中描述的步骤与前面结合图4-6描述的计算装置的各个电路相对应,因此前面描述的特征同样适用于方法步骤,此处不再重复。
本披露实施例还提供了一种芯片,其可以包括前面结合附图描述的任一实施例的计算装置。进一步地,本披露还提供了一种板卡,该板卡可以包括前述芯片。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款1、一种计算装置,包括控制电路和运算电路,其中:
所述控制电路用于对汉明重量指令进行解析,所述汉明重量指令的操作对象包括二进制序列,所述汉明重量指令指示对所述二进制序列中的“1”的个数进行统计以作为其汉明重量;以及
所述运算电路包括多个从处理电路,并且所述运算电路用于根据所述汉明重量指令,调度相应数量的从处理电路执行汉明重量运算任务,其中所调度的每个从处理电路针对所分配的所述二进制序列中的序列段统计其中“1”的个数。
条款2、根据条款1所述的计算装置,其中所述运算电路还包括主处理电路和第一存储电路,所述主处理电路用于:
根据所述汉明重量指令以及从处理电路的处理能力,对所述二进制序列进行拆分;以及
将所述二进制序列存储在所述第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路。
条款3、根据条款2所述的计算装置,其中所述主处理电路还用于:
按照存储顺序和对齐要求,将所述二进制序列拆分成多个序列段,在每轮运算中,为所调度的每个从处理电路传输一个不同的序列段。
条款4、根据条款3所述的计算装置,其中每个所述从处理电路包括计数电路和累加电路,并且在每轮运算中:
所述计数电路用于针对传输给当前从处理电路的序列段,统计其中“1”的个数;以及
所述累加电路用于将所述计数电路的计数结果进行累加,得到部分计数值,以及将所述部分计数值与前一轮次的部分计数值进行累加。
条款5、根据条款5所述的计算装置,其中所述计数电路包括多个计数器,每个计数器用于统计所述序列段中一个子序列段中的“1”的个数。
条款6、根据条款7所述的计算装置,其中所述累加电路包括加法电路和寄存器,其中:
所述加法电路用于对所述多个计数器的计数结果执行加法操作,以获得当前轮次的部分计数值,以及对所述当前轮次的部分计数值与前一轮次的部分计数值执行加法操作,以更新所述部分计数值;以及
所述寄存器用于保存更新的所述部分计数值。
条款7、根据条款6所述的计算装置,其中所述累加电路还包括乘法电路,所述乘法电路用于:
将所述多个计数器的计数结果分别与分配的权值执行乘法运算得到多个乘积结果,其中所述分配的权值为1;以及
将所述乘积结果输送给所述加法电路进行累加。
条款8、根据条款1-7任一所述的计算装置,其中所述运算电路进一步用于:
将所调度的从处理电路的部分计数值进行累加,以得到所述二进制序列的汉明重量。
条款9、根据条款1-8任一所述的计算装置,其中所述二进制序列是由两个尺寸相等的输入数据执行按位异或操作获得的,并且所述二进制序列的汉明重量等于所述两个输入数据的汉明距离。
条款10、一种芯片,包括根据条款1-9任一所述的计算装置。
条款11、一种板卡,包括根据条款10所述的芯片。
条款12、一种由计算装置实施的数据处理方法,所述计算装置包括控制电路和运算电路,所述运算电路包括多个从处理电路,所述方法包括:
所述控制电路对汉明重量指令进行解析,所述汉明重量指令的操作对象包括二进制序列,所述汉明重量指令指示对所述二进制序列中的“1”的个数进行统计以作为其汉明重量;以及
所述运算电路根据所述汉明重量指令,调度相应数量的从处理电路执行汉明重量运算任务,其中所调度的每个从处理电路针对所分配的所述二进制序列中的序列段统计其中“1”的个数。
条款13、根据条款12所述的方法,其中所述运算电路还包括主处理电路和第一存储电路,所述方法进一步包括:
所述主处理电路根据所述汉明重量指令以及从处理电路的处理能力,对所述二进制序列进行拆分;以及
将所述二进制序列存储在所述第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路。
条款14、根据条款13所述的方法,其中所述方法进一步包括:
所述主处理电路按照存储顺序和对齐要求,将所述二进制序列拆分成多个序列段,在每轮运算中,为所调度的每个从处理电路传输一个不同的序列段。
条款15、根据条款14所述的方法,其中每个所述从处理电路包括计数电路和累加电路,并且所述方法包括:在每轮运算中,
所述计数电路针对传输给当前从处理电路的序列段,统计其中“1”的个数;以及
所述累加电路将所述计数电路的计数结果进行累加,得到部分计数值,以及将所述部分计数值与前一轮次的部分计数值进行累加。
条款16、根据条款15所述的方法,其中所述计数电路包括多个计数器,每个计数器统计所述序列段中一个子序列段中的“1”的个数。
条款17、根据条款16所述的方法,其中所述累加电路包括加法电路和寄存器,并且所述方法包括:
所述加法电路对所述多个计数器的计数结果执行加法操作,以获得当前轮次的部分计数值,以及对所述当前轮次的部分计数值与前一轮次的部分计数值执行加法操作,以更新所述部分计数值;以及
所述寄存器保存更新的所述部分计数值。
条款18、根据条款17所述的方法,其中所述累加电路还包括乘法电路,并且所述方法包括:
所述乘法电路将所述多个计数器的计数结果分别与分配的权值执行乘法运算得到多个乘积结果,其中所述分配的权值为1;以及
将所述乘积结果输送给所述加法电路进行累加。
条款19、根据条款12-18任一所述的方法,其中所述方法进一步包括:
所述运算电路将所调度的从处理电路的部分计数值进行累加,以得到所述二进制序列的汉明重量。
条款20、根据条款12-19任一所述的方法,其中所述二进制序列是由两个尺寸相等的输入数据执行按位异或操作获得的,并且所述二进制序列的汉明重量等于所述两个输入数据的汉明距离。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。

Claims (20)

1.一种计算装置,包括控制电路和运算电路,其中:
所述控制电路用于对汉明重量指令进行解析,所述汉明重量指令的操作对象包括二进制序列,所述汉明重量指令指示对所述二进制序列中的“1”的个数进行统计以作为其汉明重量;以及
所述运算电路包括多个从处理电路,并且所述运算电路用于根据所述汉明重量指令,调度相应数量的从处理电路执行汉明重量运算任务,其中所调度的每个从处理电路针对所分配的所述二进制序列中的序列段统计其中“1”的个数。
2.根据权利要求1所述的计算装置,其中所述运算电路还包括主处理电路和第一存储电路,所述主处理电路用于:
根据所述汉明重量指令以及从处理电路的处理能力,对所述二进制序列进行拆分;以及
将所述二进制序列存储在所述第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路。
3.根据权利要求2所述的计算装置,其中所述主处理电路还用于:
按照存储顺序和对齐要求,将所述二进制序列拆分成多个序列段,在每轮运算中,为所调度的每个从处理电路传输一个不同的序列段。
4.根据权利要求3所述的计算装置,其中每个所述从处理电路包括计数电路和累加电路,并且在每轮运算中:
所述计数电路用于针对传输给当前从处理电路的序列段,统计其中“1”的个数;以及
所述累加电路用于将所述计数电路的计数结果进行累加,得到部分计数值,以及将所述部分计数值与前一轮次的部分计数值进行累加。
5.根据权利要求5所述的计算装置,其中所述计数电路包括多个计数器,每个计数器用于统计所述序列段中一个子序列段中的“1”的个数。
6.根据权利要求7所述的计算装置,其中所述累加电路包括加法电路和寄存器,其中:
所述加法电路用于对所述多个计数器的计数结果执行加法操作,以获得当前轮次的部分计数值,以及对所述当前轮次的部分计数值与前一轮次的部分计数值执行加法操作,以更新所述部分计数值;以及
所述寄存器用于保存更新的所述部分计数值。
7.根据权利要求6所述的计算装置,其中所述累加电路还包括乘法电路,所述乘法电路用于:
将所述多个计数器的计数结果分别与分配的权值执行乘法运算得到多个乘积结果,其中所述分配的权值为1;以及
将所述乘积结果输送给所述加法电路进行累加。
8.根据权利要求1-7任一所述的计算装置,其中所述运算电路进一步用于:
将所调度的从处理电路的部分计数值进行累加,以得到所述二进制序列的汉明重量。
9.根据权利要求1-8任一所述的计算装置,其中所述二进制序列是由两个尺寸相等的输入数据执行按位异或操作获得的,并且所述二进制序列的汉明重量等于所述两个输入数据的汉明距离。
10.一种芯片,包括根据权利要求1-9任一所述的计算装置。
11.一种板卡,包括根据权利要求10所述的芯片。
12.一种由计算装置实施的数据处理方法,所述计算装置包括控制电路和运算电路,所述运算电路包括多个从处理电路,所述方法包括:
所述控制电路对汉明重量指令进行解析,所述汉明重量指令的操作对象包括二进制序列,所述汉明重量指令指示对所述二进制序列中的“1”的个数进行统计以作为其汉明重量;以及
所述运算电路根据所述汉明重量指令,调度相应数量的从处理电路执行汉明重量运算任务,其中所调度的每个从处理电路针对所分配的所述二进制序列中的序列段统计其中“1”的个数。
13.根据权利要求12所述的方法,其中所述运算电路还包括主处理电路和第一存储电路,所述方法进一步包括:
所述主处理电路根据所述汉明重量指令以及从处理电路的处理能力,对所述二进制序列进行拆分;以及
将所述二进制序列存储在所述第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路。
14.根据权利要求13所述的方法,其中所述方法进一步包括:
所述主处理电路按照存储顺序和对齐要求,将所述二进制序列拆分成多个序列段,在每轮运算中,为所调度的每个从处理电路传输一个不同的序列段。
15.根据权利要求14所述的方法,其中每个所述从处理电路包括计数电路和累加电路,并且所述方法包括:在每轮运算中,
所述计数电路针对传输给当前从处理电路的序列段,统计其中“1”的个数;以及
所述累加电路将所述计数电路的计数结果进行累加,得到部分计数值,以及将所述部分计数值与前一轮次的部分计数值进行累加。
16.根据权利要求15所述的方法,其中所述计数电路包括多个计数器,每个计数器统计所述序列段中一个子序列段中的“1”的个数。
17.根据权利要求16所述的方法,其中所述累加电路包括加法电路和寄存器,并且所述方法包括:
所述加法电路对所述多个计数器的计数结果执行加法操作,以获得当前轮次的部分计数值,以及对所述当前轮次的部分计数值与前一轮次的部分计数值执行加法操作,以更新所述部分计数值;以及
所述寄存器保存更新的所述部分计数值。
18.根据权利要求17所述的方法,其中所述累加电路还包括乘法电路,并且所述方法包括:
所述乘法电路将所述多个计数器的计数结果分别与分配的权值执行乘法运算得到多个乘积结果,其中所述分配的权值为1;以及
将所述乘积结果输送给所述加法电路进行累加。
19.根据权利要求12-18任一所述的方法,其中所述方法进一步包括:
所述运算电路将所调度的从处理电路的部分计数值进行累加,以得到所述二进制序列的汉明重量。
20.根据权利要求12-19任一所述的方法,其中所述二进制序列是由两个尺寸相等的输入数据执行按位异或操作获得的,并且所述二进制序列的汉明重量等于所述两个输入数据的汉明距离。
CN202110449503.7A 2021-04-25 2021-04-25 计算装置、数据处理方法及相关产品 Pending CN115237370A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110449503.7A CN115237370A (zh) 2021-04-25 2021-04-25 计算装置、数据处理方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110449503.7A CN115237370A (zh) 2021-04-25 2021-04-25 计算装置、数据处理方法及相关产品

Publications (1)

Publication Number Publication Date
CN115237370A true CN115237370A (zh) 2022-10-25

Family

ID=83666181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110449503.7A Pending CN115237370A (zh) 2021-04-25 2021-04-25 计算装置、数据处理方法及相关产品

Country Status (1)

Country Link
CN (1) CN115237370A (zh)

Similar Documents

Publication Publication Date Title
CN109284823B (zh) 一种运算装置及相关产品
CN110597559B (zh) 计算装置以及计算方法
CN110163360B (zh) 一种计算装置及方法
TWI795519B (zh) 計算裝置、機器學習運算裝置、組合處理裝置、神經網絡芯片、電子設備、板卡及執行機器學習計算的方法
CN109522052B (zh) 一种计算装置及板卡
CN111047022B (zh) 一种计算装置及相关产品
US11775808B2 (en) Neural network computation device and method
CN109711540B (zh) 一种计算装置及板卡
CN109740729B (zh) 运算方法、装置及相关产品
CN111047021B (zh) 一种计算装置及相关产品
CN109711538B (zh) 运算方法、装置及相关产品
CN115237370A (zh) 计算装置、数据处理方法及相关产品
CN111260070B (zh) 运算方法、装置及相关产品
CN111260046B (zh) 运算方法、装置及相关产品
CN115237373A (zh) 计算装置、数据处理方法及相关产品
CN111047024A (zh) 一种计算装置及相关产品
CN115237371A (zh) 计算装置、数据处理方法及相关产品
CN111930671B (zh) 异构智能处理器、处理方法及电子设备
CN111382852B (zh) 数据处理装置、方法、芯片及电子设备
CN114691083A (zh) 矩阵乘法电路、方法及相关产品
CN114692846A (zh) 数据处理装置、数据处理方法及相关产品
CN114692845A (zh) 数据处理装置、数据处理方法及相关产品
CN114692074A (zh) 矩阵乘法电路、方法及相关产品
CN115471392A (zh) 用于多目标检测的芯片、板卡、方法及计算装置
CN111966402A (zh) 指令处理方法、装置及相关产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20221021

Address after: 215300 room 5, 232 Yuanfeng Road, Yushan Town, Kunshan City, Suzhou City, Jiangsu Province

Applicant after: Cambrian (Kunshan) Information Technology Co.,Ltd.

Address before: 6 / F, block B, 168 Tonghui Road, Pudong New Area, Shanghai 201306

Applicant before: SHANGHAI CAMBRICON INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination