CN117971189A - 一种可编程ai实现方法、装置、设备及存储介质 - Google Patents
一种可编程ai实现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117971189A CN117971189A CN202410255274.9A CN202410255274A CN117971189A CN 117971189 A CN117971189 A CN 117971189A CN 202410255274 A CN202410255274 A CN 202410255274A CN 117971189 A CN117971189 A CN 117971189A
- Authority
- CN
- China
- Prior art keywords
- data
- preprocessing
- unit
- module
- operator
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000007781 pre-processing Methods 0.000 claims abstract description 129
- 238000012545 processing Methods 0.000 claims abstract description 59
- 238000006243 chemical reaction Methods 0.000 claims abstract description 52
- 238000004364 calculation method Methods 0.000 claims abstract description 49
- 239000000284 extract Substances 0.000 claims abstract description 6
- 230000015654 memory Effects 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 101001001272 Homo sapiens Prostatic acid phosphatase Proteins 0.000 description 2
- 102100035703 Prostatic acid phosphatase Human genes 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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
- Advance Control (AREA)
Abstract
本申请涉及一种可编程AI实现方法、装置、设备及存储介质,应用在AI实现领域,其中方法包括:控制单元根据编码指令生成模型对应的配置信息并烧写,在获取到程序的启动指令时确定使能的算子模块;接口单元将模型数据经由预设的输入缓存区发送至数据转换单元;数据转换单元确定模型数据中的有效数据并提取,对有效数据进行分流;预处理单元读取输出缓存区中的预处理数据,使用使能的算子模块依次对预处理数据进行预处理;AI计算单元对数据进行计算,获取结果数据,将结果数据经由接口单元输出。本申请具有的技术效果是:最大限度地提高了系统的处理效率和资源利用率,实现对数据的针对性处理,可以根据不同模型的特性进行个性化定制。
Description
技术领域
本申请涉及AI实现的技术领域,尤其是涉及一种可编程AI实现方法、装置、设备及存储介质。
背景技术
随着人工智能的快速发展,AI应用已经涵盖了各行各业,包括自动驾驶、医疗诊断、自然语言处理、图像识别等领域,AI技术的应用不仅提高了工作效率,还为创新性的解决方案开辟了新的可能性。然而,随着AI应用的广泛普及,对于算力、成本和速度等方面的挑战逐渐凸显。
传统的AI实现方案通常采用CPU+GPU的组合,其中CPU负责数据预处理和后处理,对整个模型数据先处理完一个算子,然后再对整个模型数据进行下个算子运算;GPU执行深度学习模型的训练和推断,在训练过程中,GPU通过其强大的并行计算能力提升模型的训练速度。
然而,由于CPU的处理机制需要反复访问缓存和内存,使得整个模型计算不仅延时很大,而且会长时间占用CPU的负荷;而GPU虽然通过并行计算省去了访问缓存的步骤,但对于算子模块处理同样需要反复读写内存,不可避免增加了处理时长,进而导致现有的AI实现方案整体运算效率较低。
发明内容
为了提升现有AI实现方案的整体运算效率,本申请提供一种可编程AI实现方法、装置、设备及存储介质。
第一方面,本申请提供一种可编程AI实现方法,采用如下的技术方案:所述方法应用于可编程AI实现系统,所述可编程AI实现系统包括控制单元、接口单元、数据转换单元、预处理单元和AI计算单元,所述预处理单元包括若干算子模块,所述方法包括:
所述控制单元在获取到目标模型对应的编码指令时,生成所述编码指令对应的配置信息,将所述配置信息烧写至预设的硬件设备中,所述控制单元在获取到所述硬件设备对应程序的启动指令时,基于所述配置信息确定使能的算子模块;
所述接口单元在获取到模型数据时,将所述模型数据经由预设的输入缓存区发送至所述数据转换单元;
所述数据转换单元基于所述编码指令,确定所述模型数据中的有效数据并提取,对所述有效数据进行分流生成预处理数据和非预处理数据,将所述预处理数据发送至所述预处理单元,将所述非预处理数据发送至预设的输出缓存区;
所述预处理单元读取所述输出缓存区中的预处理数据,使用所述使能的算子模块依次对所述预处理数据进行预处理;
所述AI计算单元对预处理完成的所述预处理数据和所述非预处理数据进行计算,获取结果数据,将所述结果数据经由所述接口单元输出。
在一个具体的可实施方案中,所述预处理单元还包括寄存器模块,所述基于所述配置信息确定使能的所述算子模块包括:
所述控制单元将所述配置信息发送至所述预处理单元的寄存器模块;
所述预处理单元控制所述寄存器模块对所述配置信息进行解析,确定使能的算子模块。
在一个具体的可实施方案中,所述算子模块之间的数据传输接口为valid和ready;所述寄存器模块的配置接口为AXI Lite;所述预处理单元读取所述输出缓存区中的预处理数据之后,还包括:
所述预处理单元根据所述算子模块的实时计算状态确定所述算子模块对前级所述算子模块的数据接收形式,所述数据接收形式包括接收前级数据和反压前级数据。
在一个具体的可实施方案中,在所述对所述有效数据进行分流生成预处理数据和非预处理数据之后,还包括:
所述数据转换单元基于所述配置信息,对所述有效数据执行数据转换处理,所述数据转换处理包括矩阵相乘、行列转换和Tile读取。
在一个具体的可实施方案中,所述使用所述使能的算子模块依次对所述预处理数据进行预处理之后,还包括:
所述预处理单元将预处理完成的所述预处理数据经由所述接口单元发送至外部设备。
在一个具体的可实施方案中,所述AI计算单元对预处理完成的所述预处理数据和所述非预处理数据进行计算,获取结果数据包括:
所述AI计算单元对预处理完成的所述预处理数据和所述非预处理数据进行计算,获取计算完成的待验证数据,确定所述待验证数据是否符合预设标准;
若符合所述标准,则所述AI计算单元将所述待验证数据确定为结果数据;否则,将所述待验证数据发送至所述输出缓存区,供所述数据转换单元提取和处理,直至符合所述标准。
在一个具体的可实施方案中,所述AI计算单元包括由若干AI Engine Tile组成的二位阵列;
所述AI Engine Tile包括AI Engine、储存模块和互联模块;
所述AI Engine为超长指令字处理器,所述AI Engine包括标量子模块、矢量子模块、加载子模块和存储子模块;
所述AI计算单元的主要算力由所述矢量子模块提供。
第二方面,本申请提供一种可编程AI实现装置,采用如下技术方案:所述装置应用于可编程AI实现系统,所述可编程AI实现系统包括控制单元、接口单元、数据转换单元、预处理单元和AI计算单元,所述预处理单元包括若干算子模块,所述装置包括:
使能算子确定模块,用于在获取到目标模型对应的编码指令时,生成所述编码指令对应的配置信息,将所述配置信息烧写至预设的硬件设备中,在获取到所述硬件设备对应程序的启动指令时,基于所述配置信息确定使能的算子模块;
模型数据传输模块,用于在获取到模型数据时,将所述模型数据经由预设的输入缓存区发送至所述数据转换单元;
模型数据转换模块,用于基于所述编码指令,确定所述模型数据中的有效数据并提取,对所述有效数据进行分流生成预处理数据和非预处理数据,将所述预处理数据发送至所述预处理单元,将所述非预处理数据发送至预设的输出缓存区;
数据预处理模块,用于读取所述输出缓存区中的预处理数据,使用所述使能的算子模块依次对所述预处理数据进行预处理;
模型数据计算模块,用于对预处理完成的所述预处理数据和所述非预处理数据进行计算,获取结果数据,将所述结果数据经由所述接口单元输出。
第三方面,本申请提供一种计算机设备,采用如下技术方案:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任一种可编程AI实现方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,采用如下技术方案:存储有能够被处理器加载并执行上述任一种可编程AI实现方法的计算机程序。
综上所述,本申请具有以下有益技术效果:
1、通过编程确定预处理中使能的算子模块,可以根据特定的应用场景和目标模型需求,动态的选择哪些算子模块需要在预处理过程中工作,哪些算子模块不需要,减少了不必要算子模块在预处理过程中的资源浪费,实现了动态调整系统配置的目的,从而最大限度地提高了系统的处理效率和资源利用率;
2、通过使能的算子模块依次处理预处理数据,实现了算子模块的流水线作业,缓解了现有技术中CPU频繁访问缓存和内存导致的处理延迟问题,提高了预处理单元的数据处理效率,进而提升了系统的处理性能;
3、数据转换单元通过编码指令确定模型数据中的有效数据以及对有效数据分流的处理,可以根据目标模型的特定需求,实现对数据的针对性处理,进而提升了系统的处理精度和效率;
4、通过可编程的方式,本方案实现了针对目标模型的专用处理,使得系统可以根据不同模型的特性进行个性化定制,进一步提升了系统的灵活性。
附图说明
图1是本申请实施例中用于体现可编程AI实现系统的示意图。
图2是本申请实施例中可编程AI实现方法的流程图。
图3是本申请实施例中用于体现预处理模块的示意图。
图4是本申请实施例中可编程AI实现装置的结构框图。
图5是本申请实施例中用于体现计算机设备的示意图。
附图标记:401、使能算子确定模块;402、模型数据传输模块;403、模型数据转换模块;404、数据预处理模块;405、模型数据计算模块。
具体实施方式
以下结合附图1-附图5对本申请作进一步详细说明。
本申请实施例公开一种可编程AI实现方法,该方法应用于可编程AI实现系统,如图1所示,可编程AI实现系统包括输入缓存区和输出缓存区;可编程AI实现系统还包括用于下发配置信息的控制单元,用于接收模型数据和发送结果数据的接口单元,用于对输入缓存区的模型数据进行读取和数据转换的数据转换单元,用于对模型数据进行预处理的预处理单元和用于对数据进行计算的AI计算单元;接口单元为100G网络接口,不仅可以满足小数据量模型的需求,对于大数据量模型也能给予最大的支持;AI计算单元采用XILINX的ACPP AI Engine Core,ACPP AI Engine Core作为一个通用的处理单元,可对不同的模型数据进行卷积运算,可以支持不同种类的模型,例如常见的VGG、ResNet、GoogleNet、YOLO、SSD、MobileNet等模型;预处理单元包括若干算子模块,例如解压缩算子模块、Resize算子模块、Normalize算子模块等;预处理单元还包括寄存器模块,负责解析各个算子模块需要用到的参数信息,比如模型数据的分辨率信息等;上述输入缓存区、输出缓存区、控制单元、接口单元、数据转换单元、预处理单元、AI计算单元均集成在预设的硬件设备中。
如图2所示,该方法包括以下步骤:
S10,控制单元在获取到目标模型对应的编码指令时,生成编码指令对应的配置信息,将配置信息烧写至预设的硬件设备中,控制单元在获取到硬件设备对应程序的启动指令时,基于配置信息确定使能的算子模块。
具体来说,算子模块是消耗硬件资源的逻辑资源进行编码实现的,编码内容对应目标模型的需求,可以根据目标模型的应用场景或需求选择从逻辑资源上删除或者追加新的算子模块;例如图3所示,对于JPEG的Decode和Encode模块,有些应用场景只需要Decode模块而不需要Encode模块,Encode模块就可以通过编码从流水线上删除,用节约下来的硬件资源进行别的算子模块的实现;同样不需要Decode模块时,也可以删除Decode模块,相应的和Decode模块配合使用的IMG_Rebulid算子模块也可以进行删除用于其它算子实现;通过编码完成算子模块的删除和增加后,控制单元生成编码指令对应的配置信息,将配置信息通过JTAG烧写到硬件设备中,对整个硬件设备的连接关系不需要进行改动,节约了硬件变动的成本。
控制单元在获取到硬件设备对应程序的启动指令时,对配置信息进行解析并确定使能的算子模块;使能的算子模块即需要对数据进行运算和处理的算子模块,不使能的算子模块在数据处理时被直接跳过。
S20,接口单元在获取到模型数据时,将模型数据经由预设的输入缓存区发送至数据转换单元。
具体来说,接口单元通过100G网络接口接收来自外部的模型数据,接收到的模型数据被存储到输入缓存区中,输入缓存区旨在暂存大量的模型数据,以便数据转换单元能够按需读取和处理;数据转换单元读取存储在输入缓存区中的模型数据并进行处理。
S30,数据转换单元基于编码指令,确定模型数据中的有效数据并提取,对有效数据进行分流生成预处理数据和非预处理数据,将预处理数据发送至预处理单元,将非预处理数据发送至预设的输出缓存区。
具体来说,数据转换单元对输入缓存区中的模型数据进行读取,根据事先编码好的指令对应目标模型网络报文的需求,确定模型数据中的有效数据部分并进行提取,无效部分可以直接丢弃;提取完的模型数据根据是否需要预处理进行分流,如果需要预处理,模型数据则进入预处理单元进行预处理;如果不需要预处理,模型数据直接进入数据输出缓存区;输出缓存区旨在暂存大量的模型数据,以便数据转换单元、预处理单元和AI计算单元能够按需读取和处理。
S40,预处理单元读取输出缓存区中的预处理数据,使用使能的算子模块依次对预处理数据进行预处理。
具体来说,预处理单元对输出缓存区中的预处理数据进行读取,根据配置信息,预处理单元确定哪些算子模块是被使能的,即需要对预处理数据进行处理的算子模块;使能的算子模块按照预先配置的顺序,依次对预处理数据进行相应的算子运算和处理,预处理数据在算子模块组成的流水线中被连续地传递,即每个预处理数据都要经过完整的算子模块序列,直到所有使能的算子模块都对其进行了处理;对于不使能的算子模块,预处理单元可能会直接将预处理数据“直通”或者“跑空”,即不做任何处理,直接将数据传递给下一个算子模块。
S50,AI计算单元对预处理完成的预处理数据和非预处理数据进行计算,获取结果数据,将结果数据经由接口单元输出。
具体来说,AI计算单元对预处理完成的预处理数据和非预处理数据进行卷积运算,卷积运算为多层,包括输入层,卷积层,激励层,池化层,全链接层等,只有经过多层计算后获取最终的结果数据,并将结果数据通过网络接口输出。
通过可编程AI实现方法,根据目标模型的需求进行编码确定使能的算子模块,这种灵活的配置方式可以根据具体的应用场景或者模型的需求来选择删除或者追加算子模块,从而充分利用硬件资源,提高系统的效率和性能,减少了不必要的硬件资源浪费,降低了系统的成本;预处理单元采用流水线式的串联处理方式,使得预处理数据能够依次经过每个算子模块并有序地进行处理,这种流水线式的处理方式可以缓解CPU不断访问缓存和内存导致的时延问题,提高系统的效率和系统整体的数据处理速度;100G网络接口单元的应用可以满足对大数据量模型的需求,提高了系统的数据传输速度和计算能力;预处理单元中的算子模块根据配置信息进行使能,可以根据实际需求对预处理数据进行灵活的处理,根据不同的模型或者任务需求来进行定制化的处理,从而提高了系统的适用性和灵活性。
在一个实施例中,为了提高系统的可扩展性和可重用性,基于配置信息确定使能的算子模块的步骤可以被具体执行为:
控制单元首先生成配置信息,配置信息包括了对预处理单元中各个算子模块的使能状态的设置,控制单元将配置信息发送至预处理单元的寄存器模块;预处理单元控制寄存器模块接收来自控制单元发送的配置信息,对配置信息进行解析,寄存器模块将解析完成的配置信息传递到各个算子模块的接口信号上,根据模块是否使能,选择模块数据是直通还是进行相应算子处理;这些算子模块可以与目标模型中特定的预处理操作相关联,或者根据目标模型需求被设置为使能状态。
通过控制单元生成配置信息并将其发送至预处理单元的寄存器模块,系统可以实现对预处理单元中各个算子模块使能状态的动态配置,这意味着系统可以根据实际需求,灵活地调整各个算子模块的使能状态,从而实现对数据处理流程的定制化和优化;通过在预处理单元中实现动态配置使能状态的功能,可以将系统的复杂度降低到最低限度,相比于静态设置使能状态的方法,动态配置使能状态能够更好地适应不同的场景和需求,同时也更易于维护和管理;由于可以根据配置信息动态调整使能状态,系统具有更高的灵活性和通用性,这意味着同一套硬件设备可以适用于多种不同的应用场景和模型需求,从而降低了系统的开发和维护成本,提高了系统的可扩展性和可重用性。
在一个实施例中,算子模块之间的数据传输接口为valid(有效)和ready(准备),有效信号用于发送的算子模块指示数据是否有效,而准备信号则表示接收的算子模块是否准备好接收数据,这种接口设计可以确保数据的可靠传输,同时还可以控制数据的流动,缓解数据丢失或者数据处理速度不匹配的问题;寄存器模块的配置接口为AXI Lite,AXILite是一种轻量级的配置接口,适用于对寄存器进行读写操作,相比于其他复杂的配置接口,如AXI Full或者AXI Stream,AXI Lite更简单、更易于实现和使用,同时也更节省硬件资源。
为了提高系统的适应性和性能,预处理单元读取输出缓存区中的预处理数据之后的步骤可以被具体执行为:
在预处理单元内部,每个算子模块可能处于不同的计算状态,例如正在处理数据、暂停处理、或者准备好接收新数据等状态;预处理单元根据算子模块的实时计算状态确定算子模块对前级算子模块的数据接收形式,数据接收形式包括接收前级数据和反压前级数据;如果算子模块处于准备好接收新数据的状态,预处理单元将会向其发送新的数据;如果算子模块暂时无法接收新数据,可能因为正在处理数据或者其他原因,预处理单元将会向其施加反压力,即告知前级算子模块暂时停止发送数据,直到后级算子模块准备好接收新数据为止。
通过本实施例,预处理单元可以根据算子模块的实时计算状态确定数据传输方式,这种动态调节可以优化数据流程,提高整体处理效率,传统的数据处理流程往往是静态的,而这种动态调节可以根据实际情况灵活地选择数据传输方式,使得系统更加智能化;预处理单元能够向算子模块施加反压力,即告知前级算子模块暂时停止发送数据,这种反压机制可以缓解数据过载,防止后级算子模块的处理能力跟不上前级算子模块的数据产生速度,从而导致系统性能下降,通过反压机制,可以实现数据流的平衡,保证整个系统的稳定性和高效性;预处理单元能够监控算子模块的实时计算状态,包括正在处理数据、暂停处理、或者准备好接收新数据等状态,这种实时监控可以帮助系统及时调整数据处理策略,以适应不同的计算状态,从而提高系统的适应性和性能。
在一个实施例中,为了更好地适应不同的模型和任务需求,对有效数据进行分流生成预处理数据和非预处理数据之后的步骤可以被具体执行为:
数据转换单元基于目标模型对应的配置信息,对有效数据执行数据转换处理,数据转换处理包括矩阵相乘,即按照配置信息将有效数据转换成适合进行矩阵相乘运算的格式,并执行相应的计算;行列转换,即根据数据的结构从行转换成列,或者从列转换成行,以适应模型的输入要求;Tile读取,即将大块数据按照固定大小进行切割,以便更有效地处理大规模数据。
通过本实施例,使用目标模型对应的配置信息来指导数据转换处理,数据转换单元可以根据具体模型的要求,动态地调整数据转换的方式和参数,从而更好地适应不同的模型和任务需求;矩阵相乘是深度学习等领域中常见的计算操作,其优化对于提高模型的训练和推理速度至关重要,通过将有效数据按照配置信息转换成适合进行矩阵相乘运算的格式,并执行相应的计算,可以提高计算效率和性能;行列转换和Tile读取等操作可以使得数据更好地适应模型的输入要求和计算需求,这种数据结构转换可以提高数据处理的效率和精度,同时减少了后续计算步骤中可能出现的数据格式转换和重组操作,从而降低了计算成本。
在一个实施例中,为了根据外部设备的需求和配置信息,提供不同形式的数据,使用使能的算子模块依次对预处理数据进行预处理之后的步骤可以被具体执行为:
预处理单元将预处理完成的预处理数据经由接口单元发送至外部设备;外部设备接收到预处理数据后,可以进行进一步的处理、存储或者展示。
通过本实施例,系统可以根据外部设备的需求和配置信息,提供不同形式的数据,包括原始数据、经过计算的数据或者只进行了预处理的数据,这种灵活性使得外部设备可以根据具体的需求选择合适的数据进行进一步处理或者展示,而无需关心数据的具体处理过程;因为预处理数据已经经过初步加工,可能包含了最重要的信息或者特征,可以直接用于后续的处理或者分析,无需再次进行复杂的计算或者处理过程,可以节省外部设备的计算资源。
在一个实施例中,为了提高数据处理的准确性和效率,AI计算单元对预处理完成的预处理数据和非预处理数据进行计算,获取结果数据的步骤可以被具体执行为:
AI计算单元对预处理完成的预处理数据和非预处理数据进行卷积计算,常见的卷积运算都是多层的,有输入层,卷积层,激励层,池化层,全链接层等,只有经过每层计算后最终的结果数据才会通过接口单元输出,因此AI计算单元获取计算完成的待验证数据,确定待验证数据是否符合结果数据的预设标准;若符合标准,则AI计算单元将待验证数据确定为结果数据;否则,将待验证数据发送至输出缓存区,供数据转换单元提取和处理,直至符合结果数据的标准。
通过本实施例,AI计算单元通过预设标准自动判断数据是否符合要求,并根据结果进行相应的处理,这种自动化的验证和处理过程能够提高系统的智能性和效率;AI计算单元不断获取并验证数据,根据验证结果实时进行反馈和优化,使得系统能够动态地调整计算策略和参数,提高数据处理的准确性和效率。
在一个实施例中,为了使得AI计算单元能够提供更高效、灵活和可扩展的计算能力,AI计算单元包括由若干AI Engine Tile组成的二位阵列;AI Engine Tile包括AIEngine、储存模块和互联模块;AI Engine为超长指令字处理器,AI Engine包括标量子模块、矢量子模块、加载子模块和存储子模块;AI计算单元的主要算力由矢量子模块提供。
AI Engine作为超长指令字处理器,能够处理更为复杂的指令序列,提高了计算的灵活性和效率,通过超长指令字,可以将多个操作组合在一起,减少指令解析和调度的开销,提高了计算单元的并行度和执行效率;AI Engine Tile包括了AI Engine、储存模块和互联模块,这种模块化设计使得系统更易于扩展和维护,每个模块都具有独立的功能,可以根据需求进行灵活组合和配置,同时也方便了对模块的单独优化和升级;将主要算力放在矢量子模块上,能够有效地提高计算单元的并行计算能力和处理性能,矢量计算是一种高效的并行计算方式,特别适用于深度学习等需要大量数据并行处理的应用场景,因此能够为AI计算单元带来较高的技术效果和计算性能;由若干AI Engine Tile组成的二维阵列结构能够有效地提高计算单元的并行度和计算吞吐量,通过合理设计和调度,实现大规模数据并行计算,从而加速整个系统的数据处理和计算任务。
图2是一个实施例中可编程AI实现方法的流程示意图。应该理解的是,虽然图2流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行;除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行;并且图2的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述方法,本申请实施例还公开一种可编程AI实现装置。
参照图4,该装置包括以下模块:
使能算子确定模块401,用于在获取到目标模型对应的编码指令时,生成编码指令对应的配置信息,将配置信息烧写至预设的硬件设备中,在获取到硬件设备对应程序的启动指令时,基于配置信息确定使能的算子模块;
模型数据传输模块402,用于在获取到模型数据时,将模型数据经由预设的输入缓存区发送至数据转换单元;
模型数据转换模块403,用于基于编码指令,确定模型数据中的有效数据并提取,对有效数据进行分流生成预处理数据和非预处理数据,将预处理数据发送至预处理单元,将非预处理数据发送至预设的输出缓存区;
数据预处理模块404,用于预处理单元读取输出缓存区中的预处理数据,使用使能的算子模块依次对预处理数据进行预处理;
模型数据计算模块405,用于AI计算单元对预处理完成的预处理数据和非预处理数据进行计算,获取结果数据,将结果数据经由接口单元输出。
在一个实施例中,使能算子确定模块401,具体用于将配置信息发送至预处理单元的寄存器模块;预处理单元控制寄存器模块对配置信息进行解析,确定使能的算子模块。
在一个实施例中,数据预处理模块404,具体用于根据算子模块的实时计算状态确定算子模块对前级算子模块的数据接收形式,数据接收形式包括接收前级数据和反压前级数据。
在一个实施例中,模型数据转换模块403,具体用于基于配置信息,对有效数据执行数据转换处理,数据转换处理包括矩阵相乘、行列转换和Tile读取。
在一个实施例中,数据预处理模块404,具体用于将预处理完成的预处理数据经由接口单元发送至外部设备。
在一个实施例中,模型数据计算模块405,具体用于对预处理完成的预处理数据和非预处理数据进行计算,获取计算完成的待验证数据,确定待验证数据是否符合预设标准;若符合标准,则AI计算单元将待验证数据确定为结果数据;否则,将待验证数据发送至输出缓存区,供数据转换单元提取和处理,直至符合标准。
在一个实施例中,模型数据计算模块405,具体用于说明AI计算单元包括由若干AIEngine Tile组成的二位阵列;AI Engine Tile包括AI Engine、储存模块和互联模块;AIEngine为超长指令字处理器,AI Engine包括标量子模块、矢量子模块、加载子模块和存储子模块;AI计算单元的主要算力由矢量子模块提供。
本申请实施例提供的可编程AI实现装置,可以应用于如上述实施例中提供的可编程AI实现方法,相关细节参考上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
需要说明的是:本申请实施例中提供的可编程AI实现装置在进行可编程AI实现时,仅以上述各功能模块/功能单元的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块/功能单元完成,即将可编程AI实现装置的内部结构划分成不同的功能模块/功能单元,以完成以上描述的全部或者部分功能。另外,上述方法实施例提供的可编程AI实现方法的实施方式与本实施例提供的可编程AI实现装置的实施方式属于同一构思,本实施例提供的可编程AI实现装置的具体实现过程详见上述方法实施例,这里不再赘述。
本申请实施例还公开一种计算机设备。
具体来说,如图5所示,该计算机设备可以是桌上型计算机、笔记本电脑、掌上电脑以及云端服务器等计算机设备。该计算机设备可以包括,但不限于,处理器和存储器。其中,处理器和存储器可以通过总线或者其他方式连接。其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、图形处理器(Graphics Processing Unit,GPU)、嵌入式神经网络处理器(Neural-network Processing Unit,NPU)或者其他专用的深度学习协处理器、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请上述实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储控制单元、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例还公开一种计算机可读存储介质。
具体来说,计算机可读存储介质用于存储计算机程序,计算机程序被处理器执行时,实现上述方法实施方式中的方法。本领域技术人员可以理解,实现本申请上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
Claims (10)
1.一种可编程AI实现方法,其特征在于,所述方法应用于可编程AI实现系统,所述可编程AI实现系统包括控制单元、接口单元、数据转换单元、预处理单元和AI计算单元,所述预处理单元包括若干算子模块,所述方法包括:
所述控制单元在获取到目标模型对应的编码指令时,生成所述编码指令对应的配置信息,将所述配置信息烧写至预设的硬件设备中,所述控制单元在获取到所述硬件设备对应程序的启动指令时,基于所述配置信息确定使能的算子模块;
所述接口单元在获取到模型数据时,将所述模型数据经由预设的输入缓存区发送至所述数据转换单元;
所述数据转换单元基于所述编码指令,确定所述模型数据中的有效数据并提取,对所述有效数据进行分流生成预处理数据和非预处理数据,将所述预处理数据发送至所述预处理单元,将所述非预处理数据发送至预设的输出缓存区;
所述预处理单元读取所述输出缓存区中的预处理数据,使用所述使能的算子模块依次对所述预处理数据进行预处理;
所述AI计算单元对预处理完成的所述预处理数据和所述非预处理数据进行计算,获取结果数据,将所述结果数据经由所述接口单元输出。
2.根据权利要求1所述的方法,其特征在于,所述预处理单元还包括寄存器模块,所述基于所述配置信息确定使能的所述算子模块包括:
所述控制单元将所述配置信息发送至所述预处理单元的寄存器模块;
所述预处理单元控制所述寄存器模块对所述配置信息进行解析,确定使能的算子模块。
3.根据权利要求2所述的方法,其特征在于,所述算子模块之间的数据传输接口为valid和ready;所述寄存器模块的配置接口为AXI Lite;所述预处理单元读取所述输出缓存区中的预处理数据之后,还包括:
所述预处理单元根据所述算子模块的实时计算状态确定所述算子模块对前级所述算子模块的数据接收形式,所述数据接收形式包括接收前级数据和反压前级数据。
4.根据权利要求1所述的方法,其特征在于,在所述对所述有效数据进行分流生成预处理数据和非预处理数据之后,还包括:
所述数据转换单元基于所述配置信息,对所述有效数据执行数据转换处理,所述数据转换处理包括矩阵相乘、行列转换和Tile读取。
5.根据权利要求1所述的方法,其特征在于,所述使用所述使能的算子模块依次对所述预处理数据进行预处理之后,还包括:
所述预处理单元将预处理完成的所述预处理数据经由所述接口单元发送至外部设备。
6.根据权利要求1所述的方法,其特征在于,所述AI计算单元对预处理完成的所述预处理数据和所述非预处理数据进行计算,获取结果数据包括:
所述AI计算单元对预处理完成的所述预处理数据和所述非预处理数据进行计算,获取计算完成的待验证数据,确定所述待验证数据是否符合预设标准;
若符合所述标准,则所述AI计算单元将所述待验证数据确定为结果数据;否则,将所述待验证数据发送至所述输出缓存区,供所述数据转换单元提取和处理,直至符合所述标准。
7.根据权利要求1所述的方法,其特征在于,所述AI计算单元包括由若干AI EngineTile组成的二位阵列;
所述AI Engine Tile包括AI Engine、储存模块和互联模块;
所述AI Engine为超长指令字处理器,所述AI Engine包括标量子模块、矢量子模块、加载子模块和存储子模块;
所述AI计算单元的主要算力由所述矢量子模块提供。
8.一种可编程AI实现装置,其特征在于,所述装置应用于可编程AI实现系统,所述可编程AI实现系统包括控制单元、接口单元、数据转换单元、预处理单元和AI计算单元,所述预处理单元包括若干算子模块,所述装置包括:
使能算子确定模块(401),用于在获取到目标模型对应的编码指令时,生成所述编码指令对应的配置信息,将所述配置信息烧写至预设的硬件设备中,在获取到所述硬件设备对应程序的启动指令时,基于所述配置信息确定使能的算子模块;
模型数据传输模块(402),用于在获取到模型数据时,将所述模型数据经由预设的输入缓存区发送至所述数据转换单元;
模型数据转换模块(403),用于基于所述编码指令,确定所述模型数据中的有效数据并提取,对所述有效数据进行分流生成预处理数据和非预处理数据,将所述预处理数据发送至所述预处理单元,将所述非预处理数据发送至预设的输出缓存区;
数据预处理模块(404),用于读取所述输出缓存区中的预处理数据,使用所述使能的算子模块依次对所述预处理数据进行预处理;
模型数据计算模块(405),用于对预处理完成的所述预处理数据和所述非预处理数据进行计算,获取结果数据,将所述结果数据经由所述接口单元输出。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至7中任一种方法的计算机程序。
10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至7中任一种方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410255274.9A CN117971189A (zh) | 2024-03-06 | 2024-03-06 | 一种可编程ai实现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410255274.9A CN117971189A (zh) | 2024-03-06 | 2024-03-06 | 一种可编程ai实现方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971189A true CN117971189A (zh) | 2024-05-03 |
Family
ID=90853202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410255274.9A Pending CN117971189A (zh) | 2024-03-06 | 2024-03-06 | 一种可编程ai实现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971189A (zh) |
-
2024
- 2024-03-06 CN CN202410255274.9A patent/CN117971189A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110007961B (zh) | 一种基于risc-v的边缘计算硬件架构 | |
WO2022170997A1 (zh) | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 | |
Kästner et al. | Hardware/software codesign for convolutional neural networks exploiting dynamic partial reconfiguration on PYNQ | |
CN112840356A (zh) | 运算加速器、处理方法及相关设备 | |
CN106462393A (zh) | 用于统一应用编程接口和模型的系统和方法 | |
CN115794913B (zh) | 一种人工智能系统中数据处理方法及装置 | |
CN111694643B (zh) | 一种面向图神经网络应用的任务调度执行系统及方法 | |
US20230004775A1 (en) | Method for implementing a hardware accelerator of a neural network | |
US11967150B2 (en) | Parallel video processing systems | |
CN111047045B (zh) | 机器学习运算的分配系统及方法 | |
KR20200064044A (ko) | 자동학습 관리장치 및 방법 | |
CN115398395A (zh) | 具有用于同时处理不同类运算的独立数据路径的深度神经网络加速器 | |
CN114443559A (zh) | 可重构算子单元、处理器、计算方法、装置、设备及介质 | |
CN115860066A (zh) | 一种基于批处理的神经网络推理流水线复用的方法 | |
CN114661353A (zh) | 支持多线程的数据搬运装置及处理器 | |
US20220103831A1 (en) | Intelligent computing resources allocation for feature network based on feature propagation | |
CN107678781B (zh) | 处理器以及用于在处理器上执行指令的方法 | |
CN117971189A (zh) | 一种可编程ai实现方法、装置、设备及存储介质 | |
Xiong et al. | Deep‐Sea: A Reconfigurable Accelerator for Classic CNN | |
CN114897133A (zh) | 一种通用可配置的Transformer硬件加速器及其实现方法 | |
CN114581952A (zh) | 一种行人重识别方法、系统、装置、设备及计算机介质 | |
CN114970848A (zh) | 用于并行处理器的数据搬运装置及相应处理器 | |
KR20220166028A (ko) | 데이터 전처리를 위한 스토리지 장치 및 그 동작 방법 | |
CN113011577B (zh) | 处理单元、处理器核、神经网络训练机及方法 | |
CN108416435B (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 |