CN116468078A - 面向人工智能芯片的智能引擎处理方法和装置 - Google Patents

面向人工智能芯片的智能引擎处理方法和装置 Download PDF

Info

Publication number
CN116468078A
CN116468078A CN202310323951.1A CN202310323951A CN116468078A CN 116468078 A CN116468078 A CN 116468078A CN 202310323951 A CN202310323951 A CN 202310323951A CN 116468078 A CN116468078 A CN 116468078A
Authority
CN
China
Prior art keywords
neural network
target
configuration change
computing unit
parameters
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
CN202310323951.1A
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202310323951.1A priority Critical patent/CN116468078A/zh
Publication of CN116468078A publication Critical patent/CN116468078A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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

Abstract

本申请涉及一种面向人工智能芯片的智能引擎处理方法和装置,应用于芯片中的智能引擎,所述智能引擎包括阵列排布的多个计算单元,所述方法包括:所述智能引擎中的目标计算单元接收配置更改指令,其中,所述目标计算单元为所述多个计算单元中的任一个;所述目标计算单元根据所述配置更改指令读取配置更改数据;所述目标计算单元基于所述配置更改数据对所述目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算。本申请能够实现灵活调整参数。

Description

面向人工智能芯片的智能引擎处理方法和装置
技术领域
本申请涉及芯片技术领域,特别是涉及一种面向人工智能芯片的智能引擎处理方法和装置。
背景技术
当前,人工智能芯片已经应用于人工神经网络领域的计算处理中。通过人工智能芯片能够快速地进行神经网络运算,得到神经网络运算结果。
但是,传统的人工智能芯片在进行神经网络运算时,所用到的所有权重参数是提前配置好的,若是需要改变其中某个单一个参数,需要进行大范围重配,因此,传统的人工智能芯片在进行神经网络运算时,存在参数调整的灵活度较低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够灵活调整参数的面向人工智能芯片的智能引擎处理方法和装置。
第一方面,本申请提供了一种数据处理方法。应用于芯片中的智能引擎,智能引擎包括阵列排布的多个计算单元,所述方法包括:智能引擎中的目标计算单元接收配置更改指令,其中,目标计算单元为多个计算单元中的任一个;目标计算单元根据配置更改指令读取配置更改数据;目标计算单元基于配置更改数据对目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算。
在其中一个实施例中,配置更改指令包括第一配置更改指令,目标计算单元根据配置更改指令读取配置更改数据,包括:目标计算单元根据第一配置更改指令从智能引擎的目标寄存器读取目标权重参数,并将读取到的目标权重参数存储至目标计算单元对应的缓存中;其中,目标寄存器用于存储智能引擎中各计算单元的待更新的权重参数。
在其中一个实施例中,目标计算单元基于配置更改数据对目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算,包括:目标计算单元接收权重调整指令,并根据权重调整指令从缓存中读取目标权重参数,并利用目标权重参数代替目标计算单元中预置的权重参数进行神经网络运算。
在其中一个实施例中,配置更改指令包括第二配置更改指令,目标计算单元根据配置更改指令读取配置更改数据,包括:目标计算单元从第二配置更改指令中获取精度参数,精度参数用于指示神经网络运算的运算精度。
在其中一个实施例中,目标计算单元基于配置更改数据对目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算,包括:目标计算单元基于精度参数对目标计算单元中预置的神经网络计算函数进行分段处理,得到多个子函数,并基于多个子函数进行神经网络运算。
在其中一个实施例中,多个子函数的数量与精度参数所指示的运算精度呈正相关。
第二方面,本申请还提供了一种数据处理装置。应用于芯片中的智能引擎的目标计算单元中,智能引擎包括阵列排布的多个计算单元,目标计算单元为多个计算单元中的任一个,所述装置包括:接收模块,用于接收配置更改指令;读取模块,用于根据所述配置更改指令读取配置更改数据;运算模块,用于基于所述配置更改数据对所述目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算。
在其中一个实施例中,配置更改指令包括第一配置更改指令,读取模块,具体用于根据第一配置更改指令从智能引擎的目标寄存器读取目标权重参数,并将读取到的目标权重参数存储至目标计算单元对应的缓存中;其中,目标寄存器用于存储智能引擎中各计算单元的待更新的权重参数。
在其中一个实施例中,运算模块,具体用于接收权重调整指令,并根据权重调整指令从缓存中读取目标权重参数,并利用目标权重参数代替目标计算单元中预置的权重参数进行神经网络运算。
在其中一个实施例中,配置更改指令包括第二配置更改指令,读取模块,还用于从第二配置更改指令中获取精度参数,精度参数用于指示神经网络运算的运算精度。
在其中一个实施例中,运算模块,还用于基于精度参数对目标计算单元中预置的神经网络计算函数进行分段处理,得到多个子函数,并基于多个子函数进行神经网络运算。
在其中一个实施例中,多个子函数的数量与精度参数所指示的运算精度呈正相关。
第三方面,本申请还提供了一种芯片。芯片包括智能引擎,该智能引擎用于实现上述第一方面任一项所述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。
上述数据处理方法、装置、计算机设备、存储介质和计算机程序产品,数据处理方法应用于芯片中的智能引擎,智能引擎包括阵列排布的多个计算单元,目标计算单元为多个计算单元中的任一个,目标计算单元通过接收配置更改指令,然后根据配置更改指令读取配置更改数据,再基于配置更改数据对目标计算单元中预置的神经网络计算参数进行调整处理,最后基于调整处理后的神经网络计算参数进行神经网络运算,这样,本申请中的芯片,也即是人工智能芯片,就实现了在进行神经网络运算时,调整目标计算单元中预置的神经网络计算参数,即就是单一参数的调整,从而实现了灵活调整参数的目的。
附图说明
图1为一个实施例中一种数据处理方法的流程示意图;
图2为一个实施例中一种智能引擎的架构;
图3为一个实施例中另一种数据处理方法的流程示意图;
图4为一个实施例中一种数据处理装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
人工智能芯片通常是指具有深度学习算法的芯片,其已经应用于神经网络模型的计算处理中。目前对于人工智能芯片的优化主要从计算架构的创新、深度学习算法的硬件优化处理这些方面入手,来实现人工智能芯片的算力、功耗和成本等各方面的优化。
具体的,为提高人工智能芯片性能,国内外团队采用多种设计方案,典型的有如下几种:
(1)深度学习处理器Eyeriss,强调能效优先的规则,是基于一种数据流架构思想的处理器,对于计算单元设计了自主的RS(Row stationary,行固定)计算规则。在此基础上的第二代版本Eyeriss V2,具有稀疏化和更灵活的网络结构。
(2)ENVISION,采用卷积重用、图像重用、卷积核重用在内的多种数据重用方式以提升芯片能效。
(3)DNPU,主要依靠异构架构、混合负载划分方法、动态自适应的定点计算、基于量化表的乘法器来实现芯片的可配置性和低功耗性。
(4)UNPU,是一款完全可变权重比特精度的DNN(Deep Neural Networks,深度神经网络)加速器,可以根据不同的精度/性能要求而变化最佳比特精度。
(5)LNPU,利用直接反馈对准进行快速在线学习,并具有内置基于伪随机数发生器的直接误差传播机制。
(6)GANPU,针对生成对抗网络处理单元提出了一种自适应时空工作负载复用方式,以在单个GAN(Generative Adversarial Networks,生成对抗网络)模型中加速多个DNN时保持高利用率,同时利用双稀疏性架构以跳过由于输入和输出特征零点引起的冗余计算,并提出一种仅指数的ReLU推测算法及其轻量级处理元素架构。
(7)APU(Acceleration Processing Unit,加速处理单元),是一种异构计算结构,在一颗芯片上同时集成了传统的CPU(Central Processing Unit,中央处理器)和GPU(Graphics Processing Unit,图形处理器),将任务根据计算的性质灵活地在CPU和GPU之间分配,将人工智能方面的运算分配给GPU进行处理,从而提高数据并行运算的效率。
(8)DPU(Deep-Learning Processing Unit,深度学习处理单元),基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现可配置计算引擎,用于加速卷积神经网络等深度学习算法。
(9)TPU(Tensor Processing Units,张量处理器),也是加速神经网络运算能力的专用芯片,已经推出了4代,其与同期的CPU和GPU相比,能够获得15-40倍的性能提升和40-80倍的能效比提升。
(10)多模态人工智能芯片Thinker,可以平衡CNN(Convolutional NeuralNetworks,卷积神经网络)和RNN(Recurrent Neural Network,循环神经网络)在计算和带宽之间的资源冲突。
(11)可演化人工智能芯片Evolver,支持片上训练和强化学习。
(12)ReDCIM,可以面向通用云端人工智能场景,基于存算一体的自注意力神经网络Transformer加速的TranCIM和另一款基于近似计算和渐进稀疏的Transformer加速芯片。
(13)STICKER-T,提出了块循环算法与统一频域加速的实现路径。
(14)DianNao系列神经网络加速器,支持大规模CNN等深度神经网络的加速处理,是世界上最早的面向人工智能领域专用计算的神经网络加速器。
(15)面向CNN数据运算“亚里士多德”架构以及面向DNN和RNN数据运算“笛卡尔”架构,这两款均为DPU架构,且均为基于FPGA的半定制化处理器。
(16)BPU(Brain Processing Unit,分支处理单元),最早的两款为征程1.0芯片和旭日1.0芯片,应用领域包括智能驾驶、智慧生活和智慧城市等数据密集型运算场景。
对于用于计算机设备上的一些传统的人工智能芯片,也称之为处理器,它们的功能介绍如下:
(1)中央处理器(Central Processing unit,CPU)
CPU作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作,其功能主要是解释计算机指令以及处理计算机软件中的数据。冯诺依曼体系结构是现代计算机的基础,其三大核心部件就是CPU、内部存储器、输入/输出设备,CPU主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。在该体系结构下,程序和数据统一存储,指令和数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。根据冯诺依曼体系,CPU的工作分为以下5个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。CPU的功效主要为处理指令、执行操作、控制时间、处理数据。
(2)图像处理器(Graphics Processing Unit,GPU)
GPU又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在4D图形处理时GPU所采用的核心技术有硬件T&L(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件T&L技术可以说是GPU的标志。
(3)神经网络处理器
神经网络处理器也被称为神经网络加速器或计算卡,即深度学习处理器,是指专门用于处理智能应用中的大量计算任务的模块(其他非计算任务仍由CPU负责)。神经网络的许多数据处理涉及矩阵乘法和加法。大量并行工作的GPU提供了一种廉价的方法,但缺点是更高的功率。具有内置DSP(Digital Singnal Processor,数字信号处理器)模块和本地存储器的FPGA更节能,但它们通常更昂贵。深度学习是指多层的神经网络和训练它的方法。神经网络处理器,通俗讲就是指通过深度神经网络,模拟人脑的机制来学习、判断、决策。
(4)多核处理器
多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核),此时处理器能支持系统总线上的多个处理器,由总线控制器提供所有总线控制信号和命令信号。多核技术的开发源于工程师们认识到,仅仅提高单核芯片的速度会产生过多热量且无法带来相应的性能改善,先前的处理器产品就是如此。他们认识到,在先前产品中以那种速率,处理器产生的热量会过高。即便是没有热量问题,其性价比也令人难以接受,速度稍快的处理器价格要高很多。多核心技术在应用上的优势有两个方面:为用户带来更强大的计算性能;更重要的,则是可满足用户同时进行多任务处理和多任务计算环境的要求。
(5)异构处理器
所谓异构,是将实现使用不同类型指令集和体系架构的计算单元之间的“协同计算、彼此加速”,从而突破单一处理器架构的发展瓶颈,有效解决能耗、可扩展性等问题。常用的处理器芯片有CPU,DSP,GPU,FPGA,ASIC(Application Specific IntegratedCircuit,应用型专用集成电路)等,CPU&GPU需要软件支持,而FPGA&ASIC则是软硬件一体的架构,软件就是硬件。能耗比方面:ASIC>FPGA>GPU>CPU,产生这样结果的根本原因:对于计算密集型算法,数据的搬移和运算效率越高的能耗比就越高。ASIC和FPGA都是更接近底层IO,所以计算效率高和数据搬移高,但是FPGA有冗余晶体管和连线,运行频率低,所以没有ASIC能耗比高。GPU和CPU都是属于通用处理器,都需要进行取指令、指令译码、指令执行的过程,通过这种方式屏蔽了底层IO的处理,使得软硬件解耦,但带来数据的搬移和运算无法达到更高效率,所以没有ASIC、FPGA能耗比高。GPU和CPU之间的能耗比的差距,主要在于CPU中晶体管有大部分用在cache和控制逻辑单元,所以CPU相比GPU来说,对于计算密集同时计算复杂度低的算法,有冗余的晶体管无法发挥作用,能耗比上CPU低于GPU。
处理器芯片各自长期发展的过程中,形成了一些使用和市场上鲜明的特点。CPU&GPU领域存在大量的开源软件和应用软件,任何新的技术首先会用CPU实现算法,因此CPU编程的资源丰富而且容易获得,开发成本低而开发周期。FPGA的实现采用Verilog/VHDL等底层硬件描述语言实现,需要开发者对FPGA的芯片特征有较为深入的了解,但其高并行性的特征往往可以使业务性能得到量级的提升;同时FPGA是动态可重配的,当在数据中心部署之后,可以根据业务形态来配置不同的逻辑实现不同的硬件加速功能;举例来讲,当前服务器上的FPGA板卡部署的是图片压缩逻辑,服务于即时通信业务;而此时广告实时预估需要扩容获得更多的FPGA计算资源,通过简单的FPGA重配流程,FPGA板卡即可以变身成“新”硬件来服务广告实时预估,非常适合批量部署。ASIC芯片可以获得最优的性能,即面积利用率高、速度快、功耗低;但是神经网络SC开发风险极大,需要有足够大的市场来保证成本价格,而且从研发到市场的时间周期很长,不适合例如深度学习CNN等算法正在快速迭代的领域。
传统的人工智能芯片在进行神经网络运算时,所用到的所有权重参数是提前配置好的,一旦配置完成,很难在进行神经网络运算的过程中灵活改变单一参数,若需要更改,需要进行大范围重配,造成同一神经网络中参数的改变和不同神经网络之间参数的改变,均面临冗余的重配操作,而且神经网络数据结构与底层硬件存储结构之间存在巨大差异和数据通路延时问题。因此,有必要提出有效的技术手段来解决上述问题。
在一个实施例中,如图1所示,提供了一种数据处理方法的流程示意图,本实施例以该数据处理方法应用于芯片进行说明,该芯片可以是SOC(System On Chip,系统芯片)。芯片包括智能引擎(AI Processing-element Array,APA),如图2所示,提供了一种智能引擎的架构,该智能引擎包括阵列排布的多个计算单元(Processing Element,PE),整个智能引擎的架构采用数据流控制,即所有PE形成处理链关系,数据直接在PE之间传递。PE阵列中,输出点的计算固定在各自的PE上,重用权重以及在垂直和水平方向的输入特征点,且PE支持多种不同类型的神经网络算子,如CNN和RNN算子。本申请实施例中,该数据方法包括以下步骤:
步骤S101,智能引擎中的目标计算单元接收配置更改指令,其中,目标计算单元为多个计算单元中的任一个。
其中,智能引擎由多个计算单元构成,用于进行神经网络运算。目标计算单元是指需要改变其中预置的神经网络计算参数的计算单元。配置更改指令是由二进制数0、1组成的一串代码,用于指示目标计算单元改变预置的神经网络计算参数。
可选的,当需要改变智能引擎中的目标计算单元中预置的神经网络计算参数时,向芯片发送初始配置更改指令,芯片中的标量引擎对初始配置更改指令进行编译、逻辑判断等操作后,得到配置更改指令,并根据初始配置更改指令中携带的目标计算单元标识,将得到的配置更改指令发送给智能引擎中的目标计算单元,从而使目标计算单元接收到配置更改指令。
步骤S102,目标计算单元根据配置更改指令读取配置更改数据。
其中,配置更改数据包括卷积核尺寸、卷积核填充值的大小、步长和通道数等。
可选的,目标计算单元对接收到的配置更改指令进行解码操作,得到配置更改向导,然后根据配置更改向导读取配置更改数据。
步骤S103,目标计算单元基于配置更改数据对目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算。
其中,预置的神经网络计算参数包括卷积核尺寸、卷积核填充值的大小、步长和通道数等参数,这些参数均是提前预置在计算单元中的。
可选的,目标计算单元读取到配置更改数据之后,根据读取到的配置更改数据对预置的神经网络计算参数进行修改,然后目标计算单元基于修改后的神经网络计算参数和未修改的神经网络计算参数进行神经网络运算。
综上所述,目标计算单元通过接收配置更改指令,然后根据配置更改指令读取配置更改数据,再基于配置更改数据对目标计算单元中预置的神经网络计算参数进行调整处理,最后基于调整处理后的神经网络计算参数进行神经网络运算,这样,本申请中的芯片,也即是人工智能芯片,就实现了在进行神经网络运算时,调整目标计算单元中预置的神经网络计算参数,即就是单一参数的调整,从而实现了灵活调整参数的目的。
在其中一个实施例中,配置更改指令包括第一配置更改指令,目标计算单元根据配置更改指令读取配置更改数据,包括:目标计算单元根据第一配置更改指令从智能引擎的目标寄存器读取目标权重参数,并将读取到的目标权重参数存储至目标计算单元对应的缓存中;其中,目标寄存器用于存储智能引擎中各计算单元的待更新的权重参数。
其中,权重参数包括卷积核尺寸、卷积核填充值的大小、步长和通道数等中的至少一种,也即是计算单元进行神经网络运算时需要的乘数因子和加数因子。
目标寄存器用于灵活读写权重参数,其位于智能引擎中,目标寄存器的数量可以是一个,也可以是多个,若目标寄存器的数量为一个,则智能引擎中的任一目标计算单元均根据第一配置指令从目标寄存器读取目标权重参数;若目标寄存器的数量为多个,各目标寄存器与各计算单元一一对应,则目标计算单元根据第一配置更改指令从目标计算单元对应的目标寄存器读取目标权重参数。另外,需要说明的是,各计算单元的待更新的权重参数,需在目标计算单元根据第一配置更改指令从智能引擎的目标寄存器读取目标权重参数之前,配置在目标寄存器中。
可选的,目标计算单元对接收到的第一配置更改指令进行解码操作,得到标识信息以及数据地址,然后目标计算单元根据标识信息确定目标寄存器,再根据数据地址从目标寄存器中相应的位置读取目标权重参数,并将读取到的目标权重参数存储至目标计算单元中的缓存的固定位置处。
在其中一个实施例中,目标计算单元基于配置更改数据对目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算,包括:目标计算单元接收权重调整指令,并根据权重调整指令从缓存中读取目标权重参数,并利用目标权重参数代替目标计算单元中预置的权重参数进行神经网络运算。
其中,权重调整指令是由二进制数0、1组成的一串代码,用于指示目标计算单元从缓存中读取目标权重参数。
可选的,当需要改变智能引擎中的目标计算单元中预置的神经网络计算参数时,向芯片发送初始配置更改指令后,还向芯片发送初始权重调整指令,芯片中的标量引擎对初始权重调整指令进行编译、逻辑判断等操作后,得到权重调整指令,并根据权重调整指令中携带的目标计算单元标识,将得到的权重调整指令发送给智能引擎中的目标计算单元。当目标计算单元接收到权重调整指令后,从缓存中的固定位置处读取目标权重参数,并利用目标权重参数代替目标计算单元中预置的权重参数进行神经网络运算,其中,若目标权重参数对应于预置的权重参数中的一部分,则利用目标权重参数代替目标计算单元中预置的目标权重参数对应的权重参数,然后利用代替后的权重参数,以及预置的权重参数中剩余未被代替的权重参数,进行神经网络运算。
例如,预置的权重参数包括卷积核尺寸、卷积核填充值的大小、步长和通道数等,目标权重参数包括卷积核填充值的大小,则利用目标权重参数代替预置的权重参数中的卷积核填充值的大小,然后利用代替后的卷积核填充值的大小,以及预置的权重参数中未被代替的卷积核尺寸、步长和通道数等,进行神经网络运算。
本实施例中,目标计算单元将读取到的目标权重参数存储至缓存中,待接收权重调整指令后,从缓存中读取目标权重参数,保障了目标计算单元读取到目标权重参数的稳定性,从而保障了目标计算单元利用目标权重参数进行神经网络运算,也即是利用调整处理后的权重参数进行神经网络运算,避免产生无效输出结果,以影响计算性能,也确保了数据的流水操作不中断。
另外,通过上述方法,实现了对目标单元中预置的权重参数的改变,即实现了单一参数的改变,进一步的,基于上述方法,也可以实现多个参数的改变,以及整个神经网络全体参数的改变,而实现整个神经网络全体参数的改变,也即是实现新的神经网络映射。此外,由于智能引擎运算神经网络需要在预留的时间内完成,然后芯片中的矢量引擎从智能引擎中获取的神经网络运算结果,并进行并行处理后输出至芯片的外部,因此,若是实现整个神经网络全体参数的改变时,需要增加预留的智能引擎进行神经网络运算时的处理时长,确保矢量引擎能够从智能引擎中获取到神经网络运算结果,即就是保证了芯片在进行神经网络运算过程中不中断。
在其中一个实施例中,配置更改指令包括第二配置更改指令,目标计算单元根据配置更改指令读取配置更改数据,包括:目标计算单元从第二配置更改指令中获取精度参数,精度参数用于指示神经网络运算的运算精度。
在其中一个实施例中,多个子函数的数量与精度参数所指示的运算精度呈正相关。
可选的,目标计算单元接收到第二配置更改指令之后,对第二配置更改指令进行解析,得到精度参数,其中精度参数如4,5这样的数值,当精度参数的数值越大,神经网络运算的运算复杂度越高,神经网络运算所耗费的时长越长,神经网络运算的运算精度越高。
在其中一个实施例中,目标计算单元基于配置更改数据对目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算,包括:目标计算单元基于精度参数对目标计算单元中预置的神经网络计算函数进行分段处理,得到多个子函数,并基于多个子函数进行神经网络运算。
可选的,目标计算单元进行神经网络运算,实质上是对神经网络计算函数的运算,而直接对神经网络计算函数进行运算涉及的计算量比较大,因此,根据精度参数,将神经网络计算函数拆分为多个一阶泰勒的分段近似,也即是一阶乘加这样的子函数,然后给多个子函数配置功能参数,从而计算多个子函数就可得到神经网络运算结果。另外,每个目标计算单元对应的多个子函数配置不同的功能参数,可以使各目标计算单元实现不同的计算功能。
可选的,精度参数包括乘因子和加因子,当目标单元接收到第二配置更改指令后,对预置的计算函数进行分段处理,得到多个子函数,然后将精度参数中的乘因子和加因子配置给多个子函数,然后利用配置后的子函数进行神经网络运算,其中乘因子和加因子的数量越多,神经网络运算的运算复杂度越高,神经网络运算所耗费的时长越长,神经网络运算的运算精度越高。
另外,在智能引擎进行神经网络运算的过程中,可以根据当前计算需求,实时向目标计算单元发送第二配置更改指令,以调整目标计算单元进行神经网络运算的运算精度,而且调整目标计算单元进行神经网络运算的运算精度的最佳时间是目标计算单元完成上一状态的神经网络运算之后所生成的数据在进行下一状态的神经网络运算之前。
综上所述,如图3所示,提供了另一种数据处理方法的流程示意图,该方法包括如下步骤:
步骤S301,智能引擎中的目标计算单元接收第一配置更改指令和第二配置更改指令。
步骤S302,目标计算单元根据第一配置更改指令从智能引擎的目标寄存器读取目标权重参数,并将读取到的目标权重参数存储至目标计算单元对应的缓存中。
步骤S303,目标计算单元接收权重调整指令,并根据权重调整指令从缓存中读取目标权重参数,并利用目标权重参数代替目标计算单元中预置的权重参数。
步骤S304,目标计算单元从第二配置更改指令中获取精度参数。
步骤S305,目标计算单元基于精度参数对目标计算单元中预置的神经网络计算函数进行分段处理,得到多个子函数。
步骤S306,目标计算单元基于代替后的权重参数和多个子函数进行神经网络网络运算。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据处理方法的数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据处理装置实施例中的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种数据处理装置的结构框图,应用于芯片中的智能引擎的目标计算单元中,智能引擎包括阵列排布的多个计算单元,目标计算单元为多个计算单元中的任一个,该数据处理装置400包括:接收模块401、读取模块402和运算模块403,其中:
接收模块401,用于接收配置更改指令。
读取模块402,用于根据所述配置更改指令读取配置更改数据。
运算模块403,用于基于所述配置更改数据对所述目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算。
在其中一个实施例中,配置更改指令包括第一配置更改指令,读取模块402,具体用于根据第一配置更改指令从智能引擎的目标寄存器读取目标权重参数,并将读取到的目标权重参数存储至目标计算单元对应的缓存中;其中,目标寄存器用于存储智能引擎中各计算单元的待更新的权重参数。
在其中一个实施例中,运算模块403,具体用于接收权重调整指令,并根据权重调整指令从缓存中读取目标权重参数,并利用目标权重参数代替目标计算单元中预置的权重参数进行神经网络运算。
在其中一个实施例中,配置更改指令包括第二配置更改指令,读取模块402,还用于从第二配置更改指令中获取精度参数,精度参数用于指示神经网络运算的运算精度。
在其中一个实施例中,运算模块403,还用于基于精度参数对目标计算单元中预置的神经网络计算函数进行分段处理,得到多个子函数,并基于多个子函数进行神经网络运算。
在其中一个实施例中,多个子函数的数量与精度参数所指示的运算精度呈正相关。
上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,还提供了一种芯片,该芯片包括智能引擎,该智能引擎用于实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据处理方法,其特征在于,应用于芯片中的智能引擎,所述智能引擎包括阵列排布的多个计算单元,所述方法包括:
所述智能引擎中的目标计算单元接收配置更改指令,其中,所述目标计算单元为所述多个计算单元中的任一个;
所述目标计算单元根据所述配置更改指令读取配置更改数据;
所述目标计算单元基于所述配置更改数据对所述目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算。
2.根据权利要求1所述的方法,其特征在于,所述配置更改指令包括第一配置更改指令,所述目标计算单元根据所述配置更改指令读取配置更改数据,包括:
所述目标计算单元根据所述第一配置更改指令从所述智能引擎的目标寄存器读取目标权重参数,并将读取到的所述目标权重参数存储至所述目标计算单元对应的缓存中;
其中,所述目标寄存器用于存储所述智能引擎中各计算单元的待更新的权重参数。
3.根据权利要求2所述的方法,其特征在于,所述目标计算单元基于所述配置更改数据对所述目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算,包括:
所述目标计算单元接收权重调整指令,并根据所述权重调整指令从所述缓存中读取所述目标权重参数,并利用所述目标权重参数代替所述目标计算单元中预置的权重参数进行神经网络运算。
4.根据权利要求1至3任一所述的方法,其特征在于,所述配置更改指令包括第二配置更改指令,所述目标计算单元根据所述配置更改指令读取配置更改数据,包括:
所述目标计算单元从所述第二配置更改指令中获取精度参数,所述精度参数用于指示神经网络运算的运算精度。
5.根据权利要求4所述的方法,其特征在于,所述目标计算单元基于所述配置更改数据对所述目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算,包括:
所述目标计算单元基于所述精度参数对所述目标计算单元中预置的神经网络计算函数进行分段处理,得到多个子函数,并基于所述多个子函数进行神经网络运算。
6.根据权利要求5所述的方法,其特征在于,所述多个子函数的数量与所述精度参数所指示的运算精度呈正相关。
7.一种数据处理装置,其特征在于,应用于芯片中的智能引擎的目标计算单元中,所述智能引擎包括阵列排布的多个计算单元,所述目标计算单元为所述多个计算单元中的任一个,所述装置包括:
接收模块,用于接收配置更改指令;
读取模块,用于根据所述配置更改指令读取配置更改数据;
运算模块,用于基于所述配置更改数据对所述目标计算单元中预置的神经网络计算参数进行调整处理,并基于调整处理后的神经网络计算参数进行神经网络运算。
8.一种芯片,其特征在于,所述芯片包括智能引擎,所述智能引擎用于实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202310323951.1A 2023-03-29 2023-03-29 面向人工智能芯片的智能引擎处理方法和装置 Pending CN116468078A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310323951.1A CN116468078A (zh) 2023-03-29 2023-03-29 面向人工智能芯片的智能引擎处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310323951.1A CN116468078A (zh) 2023-03-29 2023-03-29 面向人工智能芯片的智能引擎处理方法和装置

Publications (1)

Publication Number Publication Date
CN116468078A true CN116468078A (zh) 2023-07-21

Family

ID=87178136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310323951.1A Pending CN116468078A (zh) 2023-03-29 2023-03-29 面向人工智能芯片的智能引擎处理方法和装置

Country Status (1)

Country Link
CN (1) CN116468078A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991792A (zh) * 2023-09-20 2023-11-03 北京星宇天航科技有限公司 应用于人工智能芯片的计算处理方法、装置及芯片

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991792A (zh) * 2023-09-20 2023-11-03 北京星宇天航科技有限公司 应用于人工智能芯片的计算处理方法、装置及芯片
CN116991792B (zh) * 2023-09-20 2024-04-16 北京星宇天航科技有限公司 应用于人工智能芯片的计算处理方法、装置及芯片

Similar Documents

Publication Publication Date Title
KR102258414B1 (ko) 처리 장치 및 처리 방법
Gong et al. MALOC: A fully pipelined FPGA accelerator for convolutional neural networks with all layers mapped on chip
CN109117948B (zh) 画风转换方法及相关产品
US10169084B2 (en) Deep learning via dynamic root solvers
WO2018171717A1 (zh) 面向神经网络处理器的自动化设计方法和系统
US20200042856A1 (en) Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit
CN114365185A (zh) 使用一个或更多个神经网络生成图像
US20210216318A1 (en) Vector Processor Architectures
US20190138373A1 (en) Multithreaded data flow processing within a reconfigurable fabric
WO2020119268A1 (zh) 一种基于模型进行预测的方法和装置
CN112446815A (zh) 稀疏矩阵乘法加速机制
US20210166156A1 (en) Data processing system and data processing method
CN112070202B (zh) 一种融合图的生成方法、生成装置和计算机可读存储介质
CN116468078A (zh) 面向人工智能芯片的智能引擎处理方法和装置
Lou et al. RV-CNN: Flexible and efficient instruction set for CNNs based on RISC-V processors
US20220172044A1 (en) Method, electronic device, and computer program product for deploying machine learning model
JP2022510805A (ja) レイトレーシングにおけるトライアングル及びボックスの交差テストのための統合されたデータパス
CN114595813A (zh) 异构加速处理器及数据计算方法
CN116402091A (zh) 面向人工智能芯片的混合引擎智能计算方法和装置
BR102020019666A2 (pt) aparelho e método para facilitar operações de multiplicação de matriz; acelerador de hardware
CN116400926A (zh) 面向人工智能芯片的标量引擎处理方法和装置
Chiu et al. Design and implementation of the CNN accelator based on multi-streaming SIMD mechanisms
CN113469328B (zh) 执行转数穿过的装置、板卡、方法及可读存储介质
CN114692847B (zh) 数据处理电路、数据处理方法及相关产品
Gupta et al. Trends in Hardware-Based AL and ML

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