CN112148249B - 点积运算实现方法、装置、电子设备及存储介质 - Google Patents
点积运算实现方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112148249B CN112148249B CN202010984688.7A CN202010984688A CN112148249B CN 112148249 B CN112148249 B CN 112148249B CN 202010984688 A CN202010984688 A CN 202010984688A CN 112148249 B CN112148249 B CN 112148249B
- Authority
- CN
- China
- Prior art keywords
- data
- adder
- multiplier
- operand
- input format
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/4824—Methods 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 using signed-digit representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3824—Accepting both fixed-point and floating-point numbers
-
- 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
Abstract
本申请公开了点积运算实现方法、装置、电子设备及存储介质,涉及深度学习及人工智能领域,其中的方法可包括:获取N组操作数,N为大于一的正整数,N组操作数均为第一数据输入格式或均为第二数据输入格式,第一数据输入格式包括:半精度的浮点数据和字符类型数据,第二数据输入格式包括:有符号的定点数据和字符类型数据;针对任一操作数,分别确定出所述操作数对应的输入数据,将输入数据输入对应的乘法器,得到输出结果,其中,不同的操作数分别对应于不同的乘法器;利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果。应用本申请所述方案,可节省硬件成本和功耗,并可确保较高的运算精度等。
Description
技术领域
本申请涉及计算机应用技术,特别涉及深度学习及人工智能领域的点积运算实现方法、装置、电子设备及存储介质。
背景技术
在目前流行的深度学习和神经网络中,存在着大量的卷积操作。为了追求运算精度,芯片中通常采用浮点运算方式,但缺点是增大了硬件成本和功耗等,为了节省硬件成本和功耗,可采用定点运算方式,但这样会带来运算精度的损失,网络性能会大打折扣等。例如,有时希望能够以较小的代价满足一些语音相关的应用中,对运算的精度和效率的较高需求。
发明内容
本申请提供了点积运算实现方法、装置、电子设备及存储介质。
一种点积运算实现方法,包括:
获取N组操作数,N为大于一的正整数,所述N组操作数均为第一数据输入格式或均为第二数据输入格式,所述第一数据输入格式包括:半精度的浮点数据和字符类型数据,所述第二数据输入格式包括:有符号的定点数据和所述字符类型数据;
针对任一操作数,分别确定出所述操作数对应的输入数据,将所述输入数据输入对应的乘法器,得到输出结果,其中,不同的操作数分别对应于不同的乘法器;
利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果。
一种点积运算实现装置,包括:获取模块及运算模块;
所述获取模块,用于获取N组操作数,N为大于一的正整数,所述N组操作数均为第一数据输入格式或均为第二数据输入格式,所述第一数据输入格式包括:半精度的浮点数据和字符类型数据,所述第二数据输入格式包括:有符号的定点数据和所述字符类型数据;
所述运算模块,用于针对任一操作数,分别确定出所述操作数对应的输入数据,将所述输入数据输入对应的乘法器,得到输出结果,其中,不同的操作数分别对应于不同的乘法器,利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果。
一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上所述的方法。
一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如以上所述的方法。
一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如以上所述的方法。
上述申请中的一个实施例具有如下优点或有益效果:所述N点积运算同时支持两种不同的数据输入格式,即包括半精度的浮点数据和字符类型数据的第一数据输入格式以及包括有符号的定点数据和字符类型数据的第二数据输入格式,从而可根据实际需要灵活输入不同数据输入格式的操作数来实现点积运算,兼顾了浮点运算和定点运算的优势,由于无需一直进行浮点运算,从而节省了硬件成本和功耗,并且通过浮点运算确保了运算精度等。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请所述点积运算实现方法第一实施例的流程图;
图2为本申请所述4点积运算过程的示意图;
图3为本申请所述点积运算实现方法第二实施例的流程图;
图4为本申请所述点积运算实现方法第三实施例的流程图;
图5为本申请所述点积运算实现装置50实施例的组成结构示意图;
图6为根据本申请实施例所述方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
另外,应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本申请所述点积运算实现方法第一实施例的流程图。如图1所示,包括以下具体实现方式。
在101中,获取N组操作数,N为大于一的正整数,N组操作数均为第一数据输入格式或均为第二数据输入格式,第一数据输入格式包括:半精度的浮点数据和字符类型(char)数据,第二数据输入格式包括:有符号的定点数据和char数据。
对于N组操作数来说,要么均为第一数据输入格式,要么均为第二数据输入格式,第一数据输入格式中可包括半精度的浮点数据和char数据,第二数据输入格式中可包括有符号的定点数据和char数据。
在102中,针对任一操作数,分别确定出该操作数对应的输入数据,将输入数据输入对应的乘法器,得到输出结果,其中,不同的操作数分别对应于不同的乘法器。
针对每组操作数,可分别将其对应的输入数据输入对应的乘法器,从而得到各乘法器的输出结果,即N个输出结果。
在103中,利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果。
通过加法器将N个输出结果相加,得到的结果即为所需的N点积运算的运算结果。
可以看出,上述实施例中所述的N点积运算同时支持两种不同的数据输入格式,即包括半精度的浮点数据和char数据的第一数据输入格式以及包括有符号的定点数据和char数据的第二数据输入格式,从而可根据实际需要灵活输入不同数据输入格式的操作数来实现点积运算,兼顾了浮点运算和定点运算的优势,由于无需一直进行浮点运算,从而节省了硬件成本和功耗,并且通过浮点运算确保了运算精度等。
而且,支持混合输入方式,如第一数据输入格式中包括半精度的浮点数据和char数据两种不同类型的数据,第二数据输入格式中包括有符号的定点数据和char数据两种不同类型的数据等,而这种方式更适合卷积操作中的实际运算需求,从而提升了运算性能等。
在实际应用中,可根据网络的特性分析和性能需求等来决定采用第一数据输入格式还是第二数据输入格式,两种数据输入格式可通过寄存器进行配置等。
如102中所述,针对任一操作数,可分别确定出该操作数对应的输入数据,并将输入数据输入对应的乘法器,得到输出结果。
具体地,若操作数为第一数据输入格式,那么可从操作数中的半精度的浮点数据中提取出尾数(significand)数据,将significand数据和操作数中的char数据作为输入数据。若操作数为第二数据输入格式,那么可直接将操作数中的有符号的定点数据和char数据作为输入数据。
半精度的浮点数据不能直接输入给乘法器进行乘法运算,需要提取出其中的significand数据,和char数据一起,作为乘法器的两个输入,如何从半精度的浮点数据中提取出significand数据为现有技术。而对于有符号的定点数据,可直接将其连同char数据一起,作为乘法器的两个输入。
乘法器可计算出乘积,作为输出结果输出。其中,若操作数为第一数据输入格式,还可从操作数中的半精度的浮点数据中提取出指数(exponent)数据,相应地,在获取到乘法器的输出结果后,还可根据exponent数据,将输出结果转换为全精度的定点数据,如何进行转换同样为现有技术。通过这样处理,可确保之后的运算没有精度的损失。
通常,N为偶数,优选地,N的取值可为4,即N点积运算可为4点积运算。4点积运算可使用4个乘法器和3个加法器,即所述乘法器可包括:第一乘法器、第二乘法器、第三乘法器和第四乘法器,所述加法器可包括:第一加法器、第二加法器和第三加法器。
如103中所述,可利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果。具体地,可利用第一加法器计算第一乘法器和第二乘法器的输出结果之和,利用第二加法器计算第三乘法器和第四乘法器的输出结果之和,利用第三加法器计算第一加法器和第二加法器的输出结果之和,从而得到4点积运算的运算结果。
基于上述介绍,图2为本申请所述4点积运算过程的示意图。如图2所示,可包括两层的相加操作,其中第一层的相加操作对应于第一加法器和第二加法器的操作,第二层的相加操作对应于第三加法器的操作。
从理论上来说,N的取值也可为2、6等其它偶数,通常来说,点积长度越长,运算时间会越短,但所需的硬件成本等会越大,因此优选地,本申请中综合考虑各种因素后,将N的取值设置为4,从而既确保了较快的运算速度,又不会耗费过多的硬件成本等。
图3为本申请所述点积运算实现方法第二实施例的流程图。如图3所示,包括以下具体实现方式。
在301中,获取4组操作数,4组操作数均为第一数据输入格式,第一数据输入格式包括:半精度的浮点数据和char数据。
本实施例中,假设进行4点积运算。
在302中,针对任一操作数,分别按照303-305所示方式进行处理。
即针对4组操作数中的每一组操作数,分别按照303-305所示方式进行处理。
在303中,从半精度的浮点数据中提取出significand数据和exponent数据。
在304中,将提取出的significand数据和char数据输入对应的乘法器,得到输出结果。
在305中,根据提取出的exponent数据,将输出结果转换为全精度的定点数据。
在306中,利用第一加法器计算第一乘法器和第二乘法器的输出结果之和,利用第二加法器计算第三乘法器和第四乘法器的输出结果之和。
假设本实施例中的4个乘法器分别为第一乘法器、第二乘法器、第三乘法器和第四乘法器。经过上述处理后,可得到4个乘法器的输出结果。
在307中,利用第三加法器计算第一加法器和第二加法器的输出结果之和,得到4点积运算的运算结果。
图4为本申请所述点积运算实现方法第三实施例的流程图。如图4所示,包括以下具体实现方式。
在401中,获取4组操作数,4组操作数均为第二数据输入格式,第二数据输入格式包括:有符号的定点数据和char数据。
本实施例中,假设进行4点积运算。
在402中,针对任一操作数,分别将其中的有符号的定点数据和char数据输入对应的乘法器,得到输出结果。
在403中,利用第一加法器计算第一乘法器和第二乘法器的输出结果之和,利用第二加法器计算第三乘法器和第四乘法器的输出结果之和。
假设本实施例中的4个乘法器分别为第一乘法器、第二乘法器、第三乘法器和第四乘法器。经过上述处理后,可得到4个乘法器的输出结果。
在404中,利用第三加法器计算第一加法器和第二加法器的输出结果之和,得到4点积运算的运算结果。
需要说明的是,对于前述的各方法实施例,为了简单描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。另外,某个实施例中没有详述的部分,可以参见其它实施例中的相关说明。
以上是关于方法实施例的介绍,以下通过装置实施例,对本申请所述方案进行进一步说明。
图5为本申请所述点积运算实现装置50实施例的组成结构示意图。如图5所示,包括:获取模块501及运算模块502。
获取模块501,用于获取N组操作数,N为大于一的正整数,N组操作数均为第一数据输入格式或均为第二数据输入格式,第一数据输入格式包括:半精度的浮点数据和char数据,第二数据输入格式包括:有符号的定点数据和char数据。
运算模块502,用于针对任一操作数,分别确定出该操作数对应的输入数据,将输入数据输入对应的乘法器,得到输出结果,其中,不同的操作数分别对应于不同的乘法器,利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果。
在实际应用中,可根据网络的特性分析和性能需求等来决定采用第一数据输入格式还是第二数据输入格式。
若操作数为第一数据输入格式,运算模块502可从操作数中的半精度的浮点数据中提取出significand数据,将significand数据和操作数中的char数据作为输入数据。
若操作数为第二数据输入格式,运算模块502可直接将操作数中的有符号的定点数据和char数据作为输入数据。
另外,若操作数为第一数据输入格式,运算模块502还可从操作数中的半精度的浮点数据中提取出exponent数据,根据exponent数据,将对应的乘法器的输出结果转换为全精度的定点数据。
优选地,N的取值为4,所述乘法器包括:第一乘法器、第二乘法器、第三乘法器和第四乘法器,所述加法器包括:第一加法器、第二加法器和第三加法器。
相应地,运算模块502可利用第一加法器计算第一乘法器和第二乘法器的输出结果之和,利用第二加法器计算第三乘法器和第四乘法器的输出结果之和,利用第三加法器计算第一加法器和第二加法器的输出结果之和,从而得到4点积运算的运算结果。
图5所示装置实施例的具体工作流程请参照前述方法实施例中的相关说明,不再赘述。
总之,采用本申请装置实施例所述方案,所述N点积运算同时支持两种不同的数据输入格式,即包括半精度的浮点数据和字符类型数据的第一数据输入格式以及包括有符号的定点数据和字符类型数据的第二数据输入格式,从而可根据实际需要灵活输入不同数据输入格式的操作数来实现点积运算,兼顾了浮点运算和定点运算的优势,由于无需一直进行浮点运算,从而节省了硬件成本和功耗,并且通过浮点运算确保了运算精度等。
如前所述,N的取值可为4,本申请所述4点积运算可和外围的存储结构、指令集相匹配,在占用较低带宽的条件下高效、高精度的完成卷积操作,并可适配各种网络模型,极大地满足了模型中对于算力的需求等。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例所述方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器Y01、存储器Y02,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器Y01为例。
存储器Y02即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的方法。
存储器Y02作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器Y01通过运行存储在存储器Y02中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器Y02可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器Y02可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器Y02可选包括相对于处理器Y01远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、区块链网络、局域网、移动通信网及其组合。
电子设备还可以包括:输入装置Y03和输出装置Y04。处理器Y01、存储器Y02、输入装置Y03和输出装置Y04可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置Y03可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置Y04可以包括显示设备、辅助照明装置和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器、发光二极管显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管或者液晶显示器监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网、广域网、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (6)
1.一种点积运算实现方法,包括:
获取N组操作数,N为大于一的正整数,所述N组操作数均为第一数据输入格式或均为第二数据输入格式,所述第一数据输入格式包括:半精度的浮点数据和字符类型数据,所述第二数据输入格式包括:有符号的定点数据和所述字符类型数据;
针对任一操作数,分别确定出所述操作数对应的输入数据,将所述输入数据输入对应的乘法器,得到输出结果,其中,不同的操作数分别对应于不同的乘法器;
利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果;
其中,所述确定出所述操作数对应的输入数据包括:若所述操作数为所述第一数据输入格式,则从所述操作数中的所述半精度的浮点数据中提取出尾数数据,将所述尾数数据和所述操作数中的所述字符类型数据作为所述输入数据,若所述操作数为所述第二数据输入格式,则直接将所述操作数中的所述有符号的定点数据和所述字符类型数据作为所述输入数据;
还包括:若所述操作数为所述第一数据输入格式,则从所述操作数中的所述半精度的浮点数据中提取出指数数据,根据所述指数数据,将对应的乘法器的输出结果转换为全精度的定点数据。
2.根据权利要求1所述的方法,其中,
所述N的取值为4;
所述乘法器包括:第一乘法器、第二乘法器、第三乘法器和第四乘法器;
所述加法器包括:第一加法器、第二加法器和第三加法器;
所述利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果包括:
利用所述第一加法器计算所述第一乘法器和所述第二乘法器的输出结果之和,利用所述第二加法器计算所述第三乘法器和所述第四乘法器的输出结果之和,利用所述第三加法器计算所述第一加法器和所述第二加法器的输出结果之和,得到4点积运算的运算结果。
3.一种点积运算实现装置,包括:获取模块及运算模块;
所述获取模块,用于获取N组操作数,N为大于一的正整数,所述N组操作数均为第一数据输入格式或均为第二数据输入格式,所述第一数据输入格式包括:半精度的浮点数据和字符类型数据,所述第二数据输入格式包括:有符号的定点数据和所述字符类型数据;
所述运算模块,用于针对任一操作数,分别确定出所述操作数对应的输入数据,将所述输入数据输入对应的乘法器,得到输出结果,其中,不同的操作数分别对应于不同的乘法器,利用加法器计算各乘法器的输出结果之和,得到N点积运算的运算结果;
其中,若所述操作数为所述第一数据输入格式,所述运算模块从所述操作数中的所述半精度的浮点数据中提取出尾数数据,将所述尾数数据和所述操作数中的所述字符类型数据作为所述输入数据,若所述操作数为所述第二数据输入格式,所述运算模块直接将所述操作数中的所述有符号的定点数据和所述字符类型数据作为所述输入数据;
所述运算模块进一步用于,若所述操作数为所述第一数据输入格式,则从所述操作数中的所述半精度的浮点数据中提取出指数数据,根据所述指数数据,将对应的乘法器的输出结果转换为全精度的定点数据。
4.根据权利要求3所述的装置,其中,
所述N的取值为4;
所述乘法器包括:第一乘法器、第二乘法器、第三乘法器和第四乘法器;
所述加法器包括:第一加法器、第二加法器和第三加法器;
所述运算模块利用所述第一加法器计算所述第一乘法器和所述第二乘法器的输出结果之和,利用所述第二加法器计算所述第三乘法器和所述第四乘法器的输出结果之和,利用所述第三加法器计算所述第一加法器和所述第二加法器的输出结果之和,得到4点积运算的运算结果。
5.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-2中任一项所述的方法。
6.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-2中任一项所述的方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010984688.7A CN112148249B (zh) | 2020-09-18 | 2020-09-18 | 点积运算实现方法、装置、电子设备及存储介质 |
US17/623,741 US20220357923A1 (en) | 2020-09-18 | 2021-08-05 | Method for implementing dot product operation, electronic device and storage medium |
EP21827377.9A EP3992774A4 (en) | 2020-09-18 | 2021-08-05 | METHOD AND DEVICE FOR IMPLEMENTING POINT PRODUCT OPERATION, ELECTRONIC DEVICE AND STORAGE MEDIA |
PCT/CN2021/110955 WO2022057502A1 (zh) | 2020-09-18 | 2021-08-05 | 点积运算实现方法、装置、电子设备及存储介质 |
JP2021578081A JP2022552046A (ja) | 2020-09-18 | 2021-08-05 | ドット積演算実現方法、装置、電子機器、及び記憶媒体 |
KR1020217043205A KR20220038607A (ko) | 2020-09-18 | 2021-08-05 | 내적 연산 구현 방법, 장치, 전자 기기 및 기록 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010984688.7A CN112148249B (zh) | 2020-09-18 | 2020-09-18 | 点积运算实现方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148249A CN112148249A (zh) | 2020-12-29 |
CN112148249B true CN112148249B (zh) | 2023-08-18 |
Family
ID=73894116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010984688.7A Active CN112148249B (zh) | 2020-09-18 | 2020-09-18 | 点积运算实现方法、装置、电子设备及存储介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220357923A1 (zh) |
EP (1) | EP3992774A4 (zh) |
JP (1) | JP2022552046A (zh) |
KR (1) | KR20220038607A (zh) |
CN (1) | CN112148249B (zh) |
WO (1) | WO2022057502A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148249B (zh) * | 2020-09-18 | 2023-08-18 | 北京百度网讯科技有限公司 | 点积运算实现方法、装置、电子设备及存储介质 |
CN115718586B (zh) * | 2022-11-29 | 2024-01-19 | 格兰菲智能科技有限公司 | 像素颜色混合操作方法、图形绘制方法、装置和设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594679A (en) * | 1983-07-21 | 1986-06-10 | International Business Machines Corporation | High speed hardware multiplier for fixed floating point operands |
CN102520906A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的向量长度可配置的向量点积累加网络 |
CN105607889A (zh) * | 2015-10-29 | 2016-05-25 | 中国人民解放军国防科学技术大学 | Gpdsp共享乘法器结构的定点浮点运算部件 |
CN108363558A (zh) * | 2018-02-08 | 2018-08-03 | 中国人民解放军战略支援部队信息工程大学 | 面向大数据处理的机器数级数据比较方法 |
CN109697083A (zh) * | 2018-12-27 | 2019-04-30 | 深圳云天励飞技术有限公司 | 数据的定点化加速方法、装置、电子设备及存储介质 |
CN110852416A (zh) * | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8626813B1 (en) * | 2013-08-12 | 2014-01-07 | Board Of Regents, The University Of Texas System | Dual-path fused floating-point two-term dot product unit |
US9978014B2 (en) * | 2013-12-18 | 2018-05-22 | Intel Corporation | Reconfigurable processing unit |
US11010131B2 (en) * | 2017-09-14 | 2021-05-18 | Intel Corporation | Floating-point adder circuitry with subnormal support |
US10853067B2 (en) * | 2018-09-27 | 2020-12-01 | Intel Corporation | Computer processor for higher precision computations using a mixed-precision decomposition of operations |
CN111381871B (zh) * | 2018-12-28 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
US11768664B2 (en) * | 2019-03-15 | 2023-09-26 | Advanced Micro Devices, Inc. | Processing unit with mixed precision operations |
US11016731B2 (en) * | 2019-03-29 | 2021-05-25 | Intel Corporation | Using Fuzzy-Jbit location of floating-point multiply-accumulate results |
US11886377B2 (en) * | 2019-09-10 | 2024-01-30 | Cornami, Inc. | Reconfigurable arithmetic engine circuit |
US20210287423A1 (en) * | 2020-03-15 | 2021-09-16 | Intel Corporation | Apparatus and method for double-precision ray traversal in a ray tracing pipeline |
CN112148249B (zh) * | 2020-09-18 | 2023-08-18 | 北京百度网讯科技有限公司 | 点积运算实现方法、装置、电子设备及存储介质 |
-
2020
- 2020-09-18 CN CN202010984688.7A patent/CN112148249B/zh active Active
-
2021
- 2021-08-05 JP JP2021578081A patent/JP2022552046A/ja active Pending
- 2021-08-05 EP EP21827377.9A patent/EP3992774A4/en not_active Withdrawn
- 2021-08-05 US US17/623,741 patent/US20220357923A1/en active Pending
- 2021-08-05 WO PCT/CN2021/110955 patent/WO2022057502A1/zh unknown
- 2021-08-05 KR KR1020217043205A patent/KR20220038607A/ko not_active Application Discontinuation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594679A (en) * | 1983-07-21 | 1986-06-10 | International Business Machines Corporation | High speed hardware multiplier for fixed floating point operands |
CN102520906A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的向量长度可配置的向量点积累加网络 |
CN105607889A (zh) * | 2015-10-29 | 2016-05-25 | 中国人民解放军国防科学技术大学 | Gpdsp共享乘法器结构的定点浮点运算部件 |
CN108363558A (zh) * | 2018-02-08 | 2018-08-03 | 中国人民解放军战略支援部队信息工程大学 | 面向大数据处理的机器数级数据比较方法 |
CN109697083A (zh) * | 2018-12-27 | 2019-04-30 | 深圳云天励飞技术有限公司 | 数据的定点化加速方法、装置、电子设备及存储介质 |
CN110852416A (zh) * | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 |
Non-Patent Citations (1)
Title |
---|
一种浮点乘法器的参数化设计;蒋华;袁红林;徐晨;;信息与电子工程(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20220357923A1 (en) | 2022-11-10 |
KR20220038607A (ko) | 2022-03-29 |
WO2022057502A1 (zh) | 2022-03-24 |
JP2022552046A (ja) | 2022-12-15 |
CN112148249A (zh) | 2020-12-29 |
EP3992774A4 (en) | 2022-11-23 |
EP3992774A1 (en) | 2022-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111738448B (zh) | 量子线路模拟方法、装置、设备及存储介质 | |
JP7269913B2 (ja) | ナレッジグラフ構築方法、装置、電子機器、記憶媒体およびコンピュータプログラム | |
JP7264866B2 (ja) | イベント関係の生成方法、装置、電子機器及び記憶媒体 | |
US11914964B2 (en) | Method and apparatus for training semantic representation model, device and computer storage medium | |
JP2022018095A (ja) | マルチモーダル事前訓練モデル取得方法、装置、電子デバイス及び記憶媒体 | |
EP3885963A1 (en) | Method and apparatus for determining causality, electronic device and storage medium | |
CN112506935B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN112148249B (zh) | 点积运算实现方法、装置、电子设备及存储介质 | |
CN113721884B (zh) | 运算方法、装置、芯片、电子装置及存储介质 | |
CN111507355A (zh) | 一种字符识别方法、装置、设备和存储介质 | |
CN111325332B (zh) | 卷积神经网络的处理方法和装置 | |
CN110705696A (zh) | 神经网络的量化与定点化融合方法及装置 | |
CN111079813B (zh) | 基于模型并行的分类模型计算方法和装置 | |
CN113204614A (zh) | 模型训练方法、优化训练数据集的方法及其装置 | |
US20220113943A1 (en) | Method for multiply-add operations for neural network | |
CN112529181B (zh) | 用于模型蒸馏的方法和装置 | |
CN113269213B (zh) | 训练集的获取方法、装置及电子设备 | |
CN112560928A (zh) | 负样本挖掘方法、装置、电子设备及存储介质 | |
CN112036561B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114475631B (zh) | 驾驶数据处理方法装置、设备、自动驾驶车辆介质及产品 | |
CN112560460B (zh) | 抽取结构化信息的方法、装置、电子设备和可读存储介质 | |
CN112819498B (zh) | 转化率确定方法、装置、电子设备和存储介质 | |
CN115237372A (zh) | 一种乘法电路、机器学习运算电路、芯片及数据处理方法 | |
CN115237992A (zh) | 数据格式转换的方法、装置及矩阵处理的方法、装置 | |
CN115237991A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |