CN117130664B - 用于芯片检测任务的人工智能芯片计算方法、装置及芯片 - Google Patents
用于芯片检测任务的人工智能芯片计算方法、装置及芯片 Download PDFInfo
- Publication number
- CN117130664B CN117130664B CN202311370384.1A CN202311370384A CN117130664B CN 117130664 B CN117130664 B CN 117130664B CN 202311370384 A CN202311370384 A CN 202311370384A CN 117130664 B CN117130664 B CN 117130664B
- Authority
- CN
- China
- Prior art keywords
- floating point
- point data
- aggregation
- calculation
- chip
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 98
- 238000001514 detection method Methods 0.000 title claims abstract description 17
- 238000004220 aggregation Methods 0.000 claims abstract description 116
- 230000002776 aggregation Effects 0.000 claims abstract description 115
- 238000000034 method Methods 0.000 claims abstract description 21
- 238000013473 artificial intelligence Methods 0.000 claims description 19
- 230000009466 transformation Effects 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims 1
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000004580 weight loss Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
本发明是关于用于芯片检测任务的人工智能芯片计算方法、装置及芯片。其中,该方法包括:在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;所述聚合等级能根据计算任务或计算时间进行动态调整;对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零。本发明在计算单元进行计算之前,先根据不同聚合等级统一对浮点数据进行对齐预处理,在对浮点数据块中的浮点数据进行计算时进一步提高了计算效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及用于芯片检测任务的人工智能芯片计算方法、装置及芯片。
背景技术
现有技术中,用于检测任务、计算任务的人工智能芯片方案主要分为两类,一类是通用处理器,如CPU(Central Processing Unit,中央处理器)、FPGA(Field ProgrammableGate Array,现场可编程门阵列)等,通过软件实现人工智能计算;另一类是专门针对人工神经网络的加速处理器,如Nvidia的GPU(Graphics Processing Unit,图形处理器)、Google的TPU(Tensor Processing Units,张量处理器)等。这些芯片方案在不同场景下有其优劣势,但是对于多任务自分配和调度的问题,需要在软硬件结合的设计上做更多的优化和创新。
传统的人工神经网络处理器中,面临着算力不足、功耗过大、时延较长等问题,严重影响人工智能芯片在更多场景中的普及和使用。例如,在现有方案中,芯片内部的数据计算尤其是针对浮点数据的计算仍有较大的计算开销,传统的计算方式往往会带来很多冗余的计算和不必要的时延,如何进一步提升人工智能芯片计算能力,成为亟待解决的问题。
发明内容
为克服相关技术中存在的问题,本发明的实施例提供一种用于芯片检测任务的人工智能芯片计算方法、装置及芯片。技术方案如下:
根据本发明的实施例的第一方面,提供一种用于芯片检测任务的人工智能芯片计算方法,包括:
在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;所述聚合等级能根据计算任务和计算时间进行动态调整;
对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零。
在本申请一实施例中,所述根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,包括:
接收随着待计算浮点数据下发的多个聚合等级以及聚合信息,所述聚合信息指明了要对齐到相应聚合等级的浮点数据;
根据聚合信息将浮点数据的指数位对齐到相应聚合等级对应的基准指数位;其中,聚合等级对应的基准指数位能动态调整。
在本申请一实施例中,所述方法还包括:
将浮点数据的指数位对齐到相应聚合等级对应的基准指数位时,引入额外预设比特数用于存储对齐产生的移位信息。
在本申请一实施例中,所述方法还包括:
对浮点数据块中的浮点数据进行计算之前,对浮点数据进行变换;其中,所述变换包括以下至少一种:傅里叶变换、指数变换、Z变换、cordic变换;
对浮点数据进行计算之后的结果进行逆变换后输出。
根据本发明的实施例的第二方面,提供一种用于芯片检测任务的人工智能芯片计算装置,包括:
控制模块,用于在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;所述聚合等级能根据计算任务和计算时间进行动态调整;
计算模块,用于对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零。
在本申请一实施例中,所述控制模块用于:
接收随着待计算浮点数据下发的多个聚合等级以及聚合信息,所述聚合信息指明了要对齐到相应聚合等级的浮点数据;
根据聚合信息将浮点数据的指数位对齐到相应聚合等级对应的基准指数位;其中,聚合等级对应的基准指数位能动态调整。
在本申请一实施例中,所述控制模块还用于:
将浮点数据的指数位对齐到相应聚合等级对应的基准指数位时,引入额外预设比特数用于存储对齐产生的移位信息。
在本申请一实施例中,所述控制模块还用于:
对浮点数据块中的浮点数据进行计算之前,对浮点数据进行变换;其中,所述变换包括以下至少一种:傅里叶变换、指数变换、Z变换、cordic变换;
对浮点数据进行计算之后的结果进行逆变换后输出。
根据本发明的实施例的第三方面,一种人工智能芯片,包括上述第二方面中任一项所述的用于芯片检测任务的人工智能芯片计算装置。
根据本发明的实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现本发明的实施例的第一方面中任一项方法的步骤。
本发明的实施例提供的技术方案,在同一计算任务内,计算单元进行计算之前,先根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位得到多个浮点数据块,然后在对浮点数据块中的浮点数据进行计算时,若是加减运算无需进行对齐操作,若是乘法运算,则将原本的指数位相加操作转化为对指数位移位;若是除法运算,则将原本的指数位相减直接转化为归零,从而提高了计算效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的用于芯片检测任务的人工智能芯片计算方法的流程图。
图2是根据一示例性实施例示出的用于芯片检测任务的人工智能芯片计算方法的流程图。
图3是根据一示例性实施例示出的用于芯片检测任务的人工智能芯片计算装置的框图。
图4是根据一示例性实施例示出的用于芯片检测任务的人工智能芯片计算装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本实施例提供的计算处理方法可以由人工智能芯片(AI芯片)来执行,上述的AI芯片可以是集成电路芯片,具有数据处理能力,例如可以是通用处理器,包括CPU、FPGA、DSP(Digital Signal Processor,数字信号处理器) 、ASIC(Application SpecificIntegrated Circuit,专用集成电路)等,也可以是专用处理器,例如可以是GPU、TPU等。
AI芯片中包括计算单元,计算单元可以同时包含多个PE(Processing Element,阵列的最小控制单元)阵列,每个PE阵列包含多条PE线(peline),单个PE线具有多个PE,每个PE中可以包括乘加单元、少量寄存器以及少量控制逻辑,执行相应的浮点操作如相加和卷积。通过对PE阵列的调度,可以实现PE 阵列不同部分执行不同运算的异构并行计算能力。在现有方案中,芯片内部的计算数据尤其是针对浮点数的计算仍有较大的计算开销。在芯片进行计算时,PE对于浮点数据的加减法,首先要进行对阶,即指数位对齐,然后进行尾数相加减。如此,每个PE进行浮点数据计算时都要对浮点数据进行单独处理的计算方式,带来了不必要的时延和很多冗余的计算。
本申请实施例在AI芯片的计算单元内设置控制模块,对进入PE阵列的待计算数据进行统一处理。本发明的实施例提供了一种应用于芯片检测任务的人工智能芯片计算方法,可以应用于AI芯片中的计算单元,如图1所示,包括以下步骤S101-S102:
在步骤S101中,在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;所述聚合等级能根据计算任务和计算时间进行动态调整。
在步骤S102中,对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零。
本申请提出的人工智能芯片的计算方法,在在同一计算任务内,计算单元进行计算之前,先统一对输入的所有浮点数据进行对齐预处理聚合得到不同聚合等级的多个浮点数据块,不同的聚合等级对应不同的基准指数位,其中,聚合等级能根据计算任务或计算时间进行动态调整,即同一计算任务可以有不同的聚合等级,同一计算任务内的不同计算时间段聚合等级也可以不同。由于聚合等级的设置,具备相同聚合等级的浮点数据具有相同的指数位,可以少存部分指数位;然后由PE对同一聚合等级的浮点数据块的浮点数据进行计算:若是加减运算,则无需进行对齐操作,从而减少移位延时增加计算速度,若是乘法运算,则将原本的指数位相加操作转化为对指数位移位;若是除法运算,则将原本的指数位相减直接转化为归零,提高了计算效率。
在本申请一实施例中,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,包括步骤A1-A2:
步骤A1:接收随着待计算浮点数据下发的多个聚合等级以及聚合信息,所述聚合信息指明了要对齐到相应聚合等级的浮点数据。
其中,聚合等级可以对应到基准指数位,不同的聚合等级对应不同的基准指数位,聚合等级对应的基准指数位能根据计算任务动态调整。聚合信息则指明了哪些浮点数据聚合到哪个聚合等级,即哪些浮点数据的指数位对齐到哪些聚合等级对应的基准指数位。预先设定的多个聚合等级以及聚合信息可由上层端口进行配置,并且在计算不同的数据块时可以进行动态调整。上层端口的配置依据则是根据对待计算浮点数据的统计分布后得到。
步骤A2:根据聚合信息将浮点数据的指数位对齐到相应聚合等级对应的基准指数位;其中,聚合等级对应的基准指数位能动态调整。
在本申请一实施例中,所述方法还包括:
将浮点数据的指数位对齐到相应聚合等级对应的基准指数位时,引入额外预设比特数用于存储对齐产生的移位信息。
在将浮点数据的指数位对齐到相应聚合等级对应的基准指数位(即对阶操作)时,可能会引起尾数数据移出,因此,引入额外预设比特数用于存储对齐产生的移位信息。
在本申请一实施例中,所述方法还包括步骤B1-B2:
步骤B1,对浮点数据块中的浮点数据进行计算之前,对浮点数据进行变换;其中,所述变换包括以下至少一种:如傅里叶变换、指数变换、Z变换、cordic变换;
步骤B2,对浮点数据进行计算之后的结果进行逆变换后输出。
在该实施例中,计算单元在计算之前将数据转化至频域、对数域、复频域、cordic域等格式的变换。其中傅里叶变换在硬件实现中优先进行快速傅里叶变化(Fast FourierTransform,FFT)或者离散傅里叶变换(Discrete Fourier Transform,DFT)。Z变换(Z-transformation)是对离散序列进行的一种数学变换,Z变换可将时域信号(即离散时间序列)变换为在复频域的表达式。CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,该算法通过基本的加和移位运算代替乘法运算,使得矢量的旋转和定向的计算不再需要三角函数、乘法、开方、反三角、指数等函数。
上述变换均可以为计算带来增益并加快计算速度,如傅里叶变化可以将本来需要进行的乘法操作转化为相加操作,指数变化也可以将本来的乘法操作转化为相加,Z变换同样具备将乘法操作转化为加法操作的功能,cordic变化可以快速进行加乘操作非常利于硬件实现。经过变换后的数据,在计算单元内部进行相应的变换后的乘加操作,得出结果之后在输出的端口对其进行逆变换,得到原始类型数据,并继续在芯片系统内部进行传递。
本实施例通过采用跨域变换的方式,将原本的人工神经网络处理器的计算中复杂的乘法和卷积运算转化为加法和移位操作,以提升计算速度并提高计算精度。
下面通过实施例详细介绍实现过程。
图2是根据一示例性实施例示出的应用于人工智能芯片的计算处理方法的示意性流程图。可以将该人工智能芯片应用于神经网络的训练和推断。训练神经网络的主要工作就是不断调整权重,使得网络推断(或者预测)误差最小化的过程;而推断过程则是指对新的数据,使用这些能力完成特定任务(如分类、识别等)的过程。神经网络包含至少一个神经网络层,可以是层1、层2和层3中的任意一层或多层,本申请不做限制,人工神经网络处理器需要对不同层的数据依次进行计算,每一层网络的卷积计算,需要依次进行。如图2所示,该方法包括以下步骤:
在步骤S201中,计算单元接收计算任务的待计算浮点数据,同时接收随着待计算浮点数据下发的多个聚合等级以及聚合信息。
如上所述,预先设定的多个聚合等级以及聚合信息可由上层端口进行配置,并且聚合等级能根据计算任务和计算时间进行动态调整,聚合等级对应的基准指数位也可以根据计算任务和计算时间能动态调整,同一计算任务可以有不同的聚合等级,计算任务内的不同计算时间段聚合等级也可以不同,即形成不同聚合等级的浮点数据块。上层端口的配置依据则是根据对待计算浮点数据的统计分布后得到。例如,将多个要聚合到同一聚合等级的多个浮点数据中,指数位出现最多的且幅值居中的指数位作为该多个浮点数据的指数位要对齐的聚合等级的基准指数位。聚合信息指明了要对齐到相应聚合等级的浮点数据,例如,聚合信息可以是指数位在第一预设范围内的浮点数据聚合到第一聚合等级。
在步骤S202中,根据聚合信息将浮点数据的指数位对齐到相应聚合等级对应的基准指数位,得到多个浮点数据块。
在浮点数据中,指数位也就是阶码,阶码通常用移码表示,等于真值+固定偏置值,阶码对齐需要尾数移位。本申请一实施例中还将内部位宽变宽以存储中间变量避免溢出和小权重的丢失。
通过上述步骤,可在读入待计算浮点数据时,就将待计算浮点数据根据聚合等级聚合为不同的浮点数据块。浮点数据块之间的数据不重合。
在步骤S203中,对浮点数据块中的浮点数据进行变换。
其中,所述变换包括以下至少一种:傅里叶变换、指数变换、Z变换、cordic变换。
在步骤S204中,对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零。
在本申请一实施例中,若要针对跨聚合等级即跨浮点数据块的计算,可以多个数同时进行对齐移位,同时只需要对齐到目标的聚合等级即可。
在步骤S205中,对进行计算之后的结果进行逆变换后输出。
本申请在PE进行计算之前,统一对所有待计算浮点数据进行预处理对齐,即输入的待计算浮点数据在输入的同时便已经进行了指数位对齐,将数据读入和移位控制相结合。此时由于是在计算单元内部的计算流程中,因此不需要在意浮点数值是否规范,仅需要优先考虑如何快速完成计算,为了确保计算精度,引入额外比特数如8b的数据作为中间量精度补充以避免权重丢失。更进一步的,PE对浮点数据块中的浮点数据进行计算时,可以更加高效:若进行浮点数据的加减运算,便将传统的浮点加减运算的对齐操作省去,若进行乘法运算,直接对指数位进行移位,若进行除法运算,指数位直接转化为归零,大大提高了计算效率。
将上述状态不断循环,最终实现计算单元内部数据以独有的数据块模式进行快速的乘加操作,进而提升计算单元的计算速度和效率。所有的计算单元计算完成之后,向上层控制模块发出计算完成的指示,并将聚合使用的基准指数位进行清零。
在本申请一实施例中,即使不进行待计算浮点数据的对齐处理,也可以对获取的待计算浮点数据进行变换。所述变换包括以下至少一种:傅里叶变换、指数变换、Z变换、cordic变换。上述变换本身就可以为计算带来增益并加快计算速度,如傅里叶变化可以将本来需要进行的乘法操作转化为相加操作,指数变化也可以将本来的乘法操作转化为相加,Z变换同样具备将乘法操作转化为加法操作的功能,cordic变化可以快速进行加乘操作非常利于硬件实现。经过变换后的数据,在计算单元内部进行相应的变换后的乘加操作,得出结果之后在输出的端口对其进行逆变换,得到原始类型数据,并继续在芯片系统内部进行传递。
下述为本发明装置实施例,可以用于执行本发明方法实施例。
图3所示为本申请提出的一种用于芯片检测任务的人工智能芯片计算装置,该装置可以为服务器或服务器的一部分,也可以为终端或终端的一部分,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图3所示,该装置包括:
控制模块301,用于在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;所述聚合等级能根据计算任务和计算时间进行动态调整;
计算模块302,用于对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零。
在本申请一实施例中,所述控制模块301用于:
接收随着待计算浮点数据下发的多个聚合等级以及聚合信息,所述聚合信息指明了要对齐到相应聚合等级的浮点数据;
根据聚合信息将浮点数据的指数位对齐到相应聚合等级对应的基准指数位;其中,聚合等级对应的基准指数位能动态调整。
在本申请一实施例中,所述控制模块301还用于:
将浮点数据的指数位对齐到相应聚合等级对应的基准指数位时,引入额外预设比特数用于存储对齐产生的移位信息。
在本申请一实施例中,所述控制模块还用于:
对浮点数据块中的浮点数据进行计算之前,对浮点数据进行变换;其中,所述变换包括以下至少一种:傅里叶变换、指数变换、Z变换、cordic变换;
对浮点数据进行计算之后的结果进行逆变换后输出。
图4是根据一示例性实施例示出的一种计算装置400的框图,该装置可以为服务器或服务器的一部分,也可以为终端或终端的一部分,该装置包括:
处理器401;
用于存储处理器401可执行指令的存储器402;
其中,处理器401被配置为:
在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;所述聚合等级能根据计算任务和计算时间进行动态调整;
对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零。
在示例性实施例中,装置400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置400的处理器401执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置400的处理器执行时,使得装置400能够执行上述计算处理方法,所述方法包括:
在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;所述聚合等级能根据计算任务和计算时间进行动态调整;
对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零。
在示例性实施例中,还提供了一种人工智能芯片,包括上述的应用于芯片检测任务的人工智能芯片计算装置。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (8)
1.一种用于芯片检测任务的人工智能芯片计算方法,其特征在于,包括:
在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;
对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零;
所述根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,包括:
接收随着待计算浮点数据下发的多个聚合等级以及聚合信息,所述聚合信息指明了要对齐到相应聚合等级的浮点数据;其中,预先设定的多个聚合等级以及聚合信息由上层端口根据对待计算浮点数据的统计分布后进行配置,聚合等级能根据计算任务和计算时间进行动态调整,聚合等级对应的基准指数位能根据计算任务和计算时间动态调整;
根据聚合信息将浮点数据的指数位对齐到相应聚合等级对应的基准指数位。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将浮点数据的指数位对齐到相应聚合等级对应的基准指数位时,引入额外预设比特数用于存储对齐产生的移位信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对浮点数据块中的浮点数据进行计算之前,对浮点数据进行变换;其中,所述变换包括以下至少一种:傅里叶变换、指数变换、Z变换、cordic变换;
对浮点数据进行计算之后的结果进行逆变换后输出。
4.一种用于芯片检测任务的人工智能芯片计算装置,其特征在于,包括:
控制模块,用于在同一计算任务内,根据不同聚合等级将待计算浮点数据对齐到相应的基准指数位,得到多个浮点数据块,同一浮点数据块中的浮点数据具有相同的基准指数位;所述聚合等级能根据计算任务和计算时间进行动态调整;
计算模块,用于对浮点数据块中的浮点数据进行计算:若是加减运算,则直接进行浮点数据的尾数加减运算;若是乘法运算,则直接对指数位进行移位;若是除法运算,则将指数位直接转化为归零;
所述控制模块用于:
接收随着待计算浮点数据下发的多个聚合等级以及聚合信息,所述聚合信息指明了要对齐到相应聚合等级的浮点数据;其中,预先设定的多个聚合等级以及聚合信息由上层端口根据对待计算浮点数据的统计分布后进行配置,聚合等级能根据计算任务和计算时间进行动态调整,聚合等级对应的基准指数位能根据计算任务和计算时间动态调整;
根据聚合信息将浮点数据的指数位对齐到相应聚合等级对应的基准指数位;其中,聚合等级对应的基准指数位能动态调整。
5.根据权利要求4所述的装置,其特征在于,所述控制模块还用于:
将浮点数据的指数位对齐到相应聚合等级对应的基准指数位时,引入额外预设比特数用于存储对齐产生的移位信息。
6.根据权利要求4所述的装置,其特征在于,所述控制模块还用于:
对浮点数据块中的浮点数据进行计算之前,对浮点数据进行变换;其中,所述变换包括以下至少一种:傅里叶变换、指数变换、Z变换、cordic变换;
对浮点数据进行计算之后的结果进行逆变换后输出。
7.一种人工智能芯片,其特征在于,包括权利要求4-6任一项所述的用于人工智能芯片的计算装置。
8.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-3任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311370384.1A CN117130664B (zh) | 2023-10-23 | 2023-10-23 | 用于芯片检测任务的人工智能芯片计算方法、装置及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311370384.1A CN117130664B (zh) | 2023-10-23 | 2023-10-23 | 用于芯片检测任务的人工智能芯片计算方法、装置及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117130664A CN117130664A (zh) | 2023-11-28 |
CN117130664B true CN117130664B (zh) | 2024-01-09 |
Family
ID=88852933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311370384.1A Active CN117130664B (zh) | 2023-10-23 | 2023-10-23 | 用于芯片检测任务的人工智能芯片计算方法、装置及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130664B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101095103A (zh) * | 2004-03-26 | 2007-12-26 | 爱特梅尔股份有限公司 | 双处理器复域浮点数字信号处理片上系统 |
CN104679719A (zh) * | 2015-03-17 | 2015-06-03 | 成都金本华科技股份有限公司 | 一种基于fpga的浮点运算方法 |
CN109901814A (zh) * | 2019-02-14 | 2019-06-18 | 上海交通大学 | 自定义浮点数及其计算方法和硬件结构 |
CN116400883A (zh) * | 2023-03-09 | 2023-07-07 | 华南理工大学 | 一种可切换精度的浮点乘加器 |
CN116661729A (zh) * | 2023-06-05 | 2023-08-29 | 北京苹芯科技有限公司 | 一种混合浮点的加法器树设计系统 |
CN116841500A (zh) * | 2022-03-24 | 2023-10-03 | 华为技术有限公司 | 一种浮点数的处理方法及相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003084969A (ja) * | 2001-09-07 | 2003-03-20 | Fujitsu Ltd | 浮動小数点剰余演算器、情報処理装置及びコンピュータプログラム |
-
2023
- 2023-10-23 CN CN202311370384.1A patent/CN117130664B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101095103A (zh) * | 2004-03-26 | 2007-12-26 | 爱特梅尔股份有限公司 | 双处理器复域浮点数字信号处理片上系统 |
CN104679719A (zh) * | 2015-03-17 | 2015-06-03 | 成都金本华科技股份有限公司 | 一种基于fpga的浮点运算方法 |
CN109901814A (zh) * | 2019-02-14 | 2019-06-18 | 上海交通大学 | 自定义浮点数及其计算方法和硬件结构 |
CN116841500A (zh) * | 2022-03-24 | 2023-10-03 | 华为技术有限公司 | 一种浮点数的处理方法及相关设备 |
CN116400883A (zh) * | 2023-03-09 | 2023-07-07 | 华南理工大学 | 一种可切换精度的浮点乘加器 |
CN116661729A (zh) * | 2023-06-05 | 2023-08-29 | 北京苹芯科技有限公司 | 一种混合浮点的加法器树设计系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117130664A (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701250B (zh) | 数据定点化方法和装置 | |
CN110447010B (zh) | 在硬件中执行矩阵乘法 | |
WO2020074989A1 (en) | Data representation for dynamic precision in neural network cores | |
CN110163240B (zh) | 对象识别方法及设备 | |
CN106970775A (zh) | 一种可重构定浮点通用加法器 | |
CN111967608A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN116523015B (zh) | 对于工艺误差鲁棒的光学神经网络训练方法、装置及设备 | |
EP3819788A1 (en) | Data processing system and data processing method | |
CN106951394A (zh) | 一种可重构定浮点通用fft处理器 | |
CN116700663B (zh) | 一种浮点数处理方法及装置 | |
CN113902089A (zh) | 加速激活函数运算的装置、方法及存储介质 | |
CN108228136A (zh) | 基于优化查找表法的对数函数计算的方法及装置 | |
CN118410849A (zh) | 确定量化截断值的方法、设备和介质 | |
US20210064976A1 (en) | Neural network circuitry having floating point format with asymmetric range | |
CN117130664B (zh) | 用于芯片检测任务的人工智能芯片计算方法、装置及芯片 | |
US20210044303A1 (en) | Neural network acceleration device and method | |
US11551087B2 (en) | Information processor, information processing method, and storage medium | |
CN116384460B (zh) | 鲁棒性光学神经网络训练方法、装置、电子设备及介质 | |
US20200192633A1 (en) | Arithmetic processing device and method of controlling arithmetic processing device | |
CN115358389B (zh) | 神经网络的训练误差降低方法、装置、电子设备及介质 | |
CN115936965A (zh) | 应用于gpu的函数计算系统、方法和装置 | |
CN115577221A (zh) | 信号处理方法、装置及旋转因子的优化方法和终端设备 | |
CN114816335A (zh) | 一种忆阻器阵列符号数乘法实现方法、装置及设备 | |
CN111260046B (zh) | 运算方法、装置及相关产品 | |
CN116909755B (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 |