CN111240743A - 人工智能集成电路 - Google Patents

人工智能集成电路 Download PDF

Info

Publication number
CN111240743A
CN111240743A CN202010004385.4A CN202010004385A CN111240743A CN 111240743 A CN111240743 A CN 111240743A CN 202010004385 A CN202010004385 A CN 202010004385A CN 111240743 A CN111240743 A CN 111240743A
Authority
CN
China
Prior art keywords
data
cache
circuit
artificial intelligence
matrix
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.)
Granted
Application number
CN202010004385.4A
Other languages
English (en)
Other versions
CN111240743B (zh
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.)
Granfei Intelligent Technology Co ltd
Original Assignee
VIA Alliance Semiconductor 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 VIA Alliance Semiconductor Co Ltd filed Critical VIA Alliance Semiconductor Co Ltd
Priority to CN202010004385.4A priority Critical patent/CN111240743B/zh
Priority to US16/745,675 priority patent/US11625587B2/en
Publication of CN111240743A publication Critical patent/CN111240743A/zh
Application granted granted Critical
Publication of CN111240743B publication Critical patent/CN111240743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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
    • 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/045Combinations of networks
    • 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/048Activation functions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Memory System (AREA)
  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种人工智能集成电路,包括:一命令处理器,用以解析一命令队列以产生一或多个任务;多个处理组件,其中各处理组件为平行设置;一任务生成器,用以接收来自命令处理器的任务以产生多个线程(thread)以控制处理组件;第一级(L1)高速缓存;以及第二级(L2)高速缓存。各处理单元包括:多个算术逻辑单元,用以执行算术及逻辑运算;多个深度学习加速器,用以执行矩阵乘加运算、激励函数及池化;一通用缓存器组,用以储存所述多个算术逻辑单元及该深度学习加速器在运算时所需的数据及中间结果;以及一存取控制器,用以控制该L1高速缓存及L2高速缓存的数据读写操作。

Description

人工智能集成电路
技术领域
本发明涉及集成电路,特别涉及一种人工智能集成电路。
背景技术
随着人工智能的技术的发展,人工智能技术的运算量也愈来愈大。因此,市面上开始出现各种深度学习加速器(deep learning accelerator),例如可使用中央处理器(central processing unit,CPU)、张量处理器(tensor processing unit,TPU)、现场可程序化逻辑门阵列(field-programmable gate array,FPGA)、应用导向集成电路(application-specific integrated circuit,ASIC),其中图形处理器(graphicsprocessing unit,GPU)可做为其中一种重要的深度学习加速器。
相较于CPU、TPU及FPGA,GPU有较佳的可编程性、虚拟化特性及良好的软件环境。然而,GPU本身的图形处理管线对于人工智能运算而言带有大量的冗余功能,例如用于图形渲染的任务管理、储存缓冲区、光栅化、渲染输出单元等等,且上述组件占据了GPU超过1/3的面积,故GPU相较于ASIC在性能/功耗比上有不小的劣势。
人工智能运算可分为训练(training)阶段及推理(inference)阶段。在训练阶段,主要是根据样本以找到人工智能网络的参数。在推理阶段,则是利用所得到参数,将输入转换为分类结果。目前市面上的深度学习加速器可分为两大类,第一类是以ASIC/FPGA为基础,第二类则是以CPU/GPU为基础。
第一类加速器的加速计算的部分以卷积(convolution)和矩阵运算为主,其优点是对于上述运算的效率很高,但缺点是需要客制化的软件开发包、编译程序,以重新支持所有的深度学习框架。因此,第一类加速器的软件生态的适应周期很长,且新算法的适应性极弱,此类的加速器的设计均仅适合推理阶段。
第二类加速器以不同指令集架构为主要加速模块,例如单指令多线程(singleinstruction multi thread,SIMT)、SSE、Matrix等等。此类加速器的优点是极佳的软件生态环境、完善的开发工具、可虚拟化,且对算法的适应性极强。因此,CPU及GPU可以用于训练阶段也可以用于推理阶段,且GPU本身具有平行的绘图单元,故相较于CPU可以提供较大的加速比。然而,GPU并非专门用于进行AI运算,且存在大量的绘图处理组件(processingelement),使得GPU相较于ASIC的加速器在性能/功耗比上有不小的劣势。此外,虽然GPU例如可使用Matrix或SIMT等等的加速方案,但具有太多3D绘图运算的组件,也缺少AI芯片所需的缓存预取(buffer cache)以及数据压缩及储存方式。
因此,需要一种人工智能集成电路以解决上述问题。
发明内容
本发明提供一种人工智能集成电路,包括:一命令处理器,用以解析一命令队列以产生一或多个任务;多个处理组件,其中各处理组件为平行设置;一任务生成器,用以接收来自该命令处理器的该任务以产生多个线程(thread)以控制所述多个处理组件;一第一级(L1)高速缓存;以及一第二级(L2)高速缓存。各处理单元包括:多个算术逻辑单元,用以执行算术及逻辑运算;多个深度学习加速器,用以执行矩阵乘加运算、激励函数及池化;一通用缓存器组,用以储存所述多个算术逻辑单元及该深度学习加速器在运算时所需的数据及中间结果;以及一存取控制器,用以控制该L1高速缓存及L2高速缓存的数据读写操作。
在一些实施例中,该存取控制器用以控制该L1高速缓存及L2高速缓存动态预取储存于该人工智能集成电路外部的一存储器单元的数据以供所述多个深度学习加速器的矩阵乘加运算使用。该存储器单元为一动态随机存取存储器或与该人工智能集成电路电性连接的一主机中的主机缓存存储器。
在一些实施例中,该L1高速缓存包括一第一预取电路且该L2高速缓存包括一第二预取电路,且该第一预取电路及该第二预取电路分别由该L2高速缓存及该存储器单元预取数据。
在一些实施例中,当该存取控制器写入第一数据至该L1高速缓存时,该第一预取电路将该第一数据经由一第一数据压缩器进行第一数据压缩处理以产生第二数据,再将该第二数据写入该L2高速缓存,其中,该第二预取电路经由一第二数据压缩器进行第二数据压缩处理以产生第三数据,再将该第三数据写入该存储器单元。
在一些实施例中,该第一数据压缩处理使用用于展开矩阵数据的压缩算法,对该第一数据进行压缩以产生该第二数据,且该第二数据压缩处理使用基于残差的图像压缩算法及稀疏矩阵压缩算法,对来自该L2高速缓存的该第二数据进行压缩以产生该第三数据。
在一些实施例中,当该存取控制器欲读取储存于该存储器单元的该第三数据时,该第二预取电路经由一第二解压缩电路对该第三数据进行第二数据解压缩处理以得到该第二数据,并将该第二数据储存于该L2高速缓存,且该第一预取电路将储存于该L2高速缓存的该第二数据直接传送至各处理组件中的一第一解压缩电路以对该第二数据进行第一数据解压缩处理以得到该第一数据,并且将该第一数据储存于各处理组件的该通用缓存器组。
在一些实施例中,该深度学习加速器包括:一矩阵乘加器,用以对该第一数据进行矩阵乘加运算以产生一第一矩阵运算结果;一激励函数电路,用以对该第一矩阵运算结果进行激励以产生一第二矩阵运算结果;以及一池化电路,用以对该第二矩阵运算结果进行池化以产生一最终结果,并将该最终结果储存于该通用缓存器组。
在一些实施例中,响应于储存于该通用缓存器组中用于矩阵卷积运算的该第一数据就绪时,该深度学习加速器将该第一数据读取至该深度学习加速器内部的一缓存器组,并从该缓存器组将该第一数据读取至该矩阵乘加器以进行矩阵乘加运算。
在一些实施例中,该第一预取电路及该第二预取电路可被设定为一硬件模式或一软件模式,其中,当该第一预取电路及该第二预取电路被设定为该硬件模式时,该第一预取电路及该第二预取电路依据先前所抓取的数据进行地址预测,并依据预测的地址以分别从该L2高速缓存及该存储器单元预先抓取数据,其中,当该第一预取电路及该第二预取电路被设定为该软件模式时,该第一预取电路及该第二预取电路依据软件所提供的提示信息以分别从该L2高速缓存及该存储器单元预先抓取数据。
在一些实施例中,该矩阵乘加器支持任意规格的矩阵乘法以及稀疏矩阵的加速乘法,并且可根据矩阵规模及稀疏性以决定循环(loop)计算的方式。该激励函数电路支持整流线性单元(rectified linear unit,ReLU)、sigmod及tanh函数。该池化电路对该第二矩阵运算结果进行平均池化或最大池化以产生该最终结果。
在一些实施例中,该人工智能集成电路支持OpenCL、CUDA、及DirectCompute的应用程序编程接口,并且不包括3D绘图功能模块。
附图说明
图1为依据本发明一实施例的人工智能集成电路的方块图。
图2为依据本发明一实施例的数据处理流程的示意图。
图3为依据本发明一实施例的L1高速缓存及L2高速缓存的示意图。
具体实施方式
以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的"包含"、"包括"等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
于权利要求中使用如"第一"、"第二"、"第三"等词用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
第1图显示依据本发明一实施例的人工智能集成电路的方块图。如第1图所示,人工智能集成电路100主要包括命令缓存器(command buffer)110、命令处理器(commandprocessor)120、任务生成器(task construct)130、多个处理组件(processing element,PE)140、第一级高速缓存(L1 cache)150、第二级高速缓存(L2 cache)160及混合转换单元170。
命令缓存器110用以接收来自一主机端的运算指令,并且以命令队列的方式依序储存上述运算指令。在一些实施例中,命令缓存器110例如可为一先进先出缓存器(first-in-first-out buffer),但本发明并不限于此。
命令处理器120用以检测在命令缓存器110的命令队列中的待处理命令,并且依据基于权重的调度算法以解析命令队列(例如包含项目1101~110N)中的命令,并且分发命令至任务生成器130以控制不同的处理组件140。任务生成器130依据来自命令处理器120的命令以生成各个处理组件140需执行的任务(task)或是线程(thread)。举例来说,命令处理器120可解析OpenCL、CUDA、或DirectCompute等等的通用GPU应用程序编程接口(applicationprogramming interface,API)的命令,并分发命令至任务生成器130。
各处理组件140包括多个计算单元141、多个数据解压缩器142、存储器控制器143、及存取控制器144,其中各计算单元141对应至各数据解压缩器142。此外,人工智能集成电路100支持虚拟化,且允许数十个不同的任务平行运行,例如各处理组件140可依据个别的线程进行平行运算。
各计算单元141包括算术逻辑单元(arithmetic logic unit,ALU)1411、深度学习加速器(deep learning accelerator,DLA)1412、通用缓存器组(common register file,CRF)1413。算术逻辑单元1411依据来自任务生成器130的线程以进行通用的算术及逻辑运算。深度学习加速器1412用以进行人工智能/深度学习的相关运算,例如任意规模的矩阵乘加运算(matrix multiplication-addition calculation,MAC)、稀疏矩阵加速乘法、激励函数(activation function)、及池化(pooling)。通用缓存器组1413用以储存算术逻辑单元1411及深度学习加速器1412的输入矩阵、运算结果或中间数值。
数据解压缩器142例如为一矩阵解压缩器,其用以对从L1高速缓存150所读取的压缩矩阵数据进行解压缩,并将解压缩后的矩阵数据储存于各计算单元141中的通用缓存器组1413或是深度学习加速器1412中的通用缓存器组(第1图未绘示)。各数据解压缩器142通过总线145而互相耦接。
存储器控制器143用以控制静态随机存取存储器(SRAM)148,且静态随机存取存储器148例如可储存各处理组件140进行计算时所需的暂存数值或数据。存取控制器144用以写入数据至存储器阶层或从存储器阶层读取数据,其中上述存储器阶层包括L1高速缓存150、L2高速缓存160、及动态随机存取存储器180。
L1高速缓存150电性连接至总线145。各数据解压缩器142可视运算的需求及一预定高速缓存机制而将数据储存至L1高速缓存150、L2高速缓存160、及/或动态随机存取存储器180(或是主机缓存存储器(host buffer memory,HBM)),其中上述预定高速缓存机制例如可由各处理组件140中的存储器控制器所控制。L1高速缓存150及L2高速缓存160可分别做为存储器阶层(memory hierarchy)中的第一级高速缓存及第二级高速缓存,且L1高速缓存150的储存容量小于L2高速缓存160。在一些实施例中,L1高速缓存150的储存容量例如为8K位(bits),且L2高速缓存160的储存容量例如为2K位(bits),但本发明并不限定于上述储存容量。
当各处理组件140进行数据储存时,会将在通用缓存器组1413中的第一数据(例如为影像数据或矩阵数据)写入至L1高速缓存150。当L1高速缓存150欲将第一数据储存至L2高速缓存160时,数据压缩器155(例如为一矩阵数据压缩器)执行第一数据压缩处理以压缩第一数据150以产生第二数据,再将第二数据写入L2高速缓存160。若L2高速缓存160欲再将第二数据写入至动态随机存取存储器180时,压缩器163使用第二数据压缩处理以压缩第二数据以产生第三数据,再将第三数据写入动态随机存取存储器180,其中第三数据即为经过二次压缩的数据。
在一些实施例中,因为人工智能/深度学习的矩阵运算需要使用大量展开的矩阵数据,故上述第一数据压缩处理可利用本发明领域中习知的矩阵压缩算法以压缩展开的矩阵数据。此外,上述矩阵数据亦常为稀疏矩阵(sparse matrix)及图像数据,故上述第二数据压缩处理可利用本发明领域习知的基于残差(residue)的图像压缩算法及稀疏矩阵压缩算法所实现。需注意的是,第一数据压缩处理及第二数据压缩处理均属于无损(lossless)压缩算法,藉以保证数据的正确性。
如第3图所示,L1高速缓存150所储存的数据(例如为未压缩过的数据)可分为4个区段(segment)301~304,且L1高速缓存150的总容量为8K位,每个区段301~304的大小例如为2K位。当L1高速缓存150各区段的数据经过数据压缩器155使用第一数据压缩处理进行第一次压缩后可得到区段311~314的压缩数据,其中每个区段311~314的大小例如为0.5K位,且L2高速缓存160的总容量为2K位。需注意的是,本发明并不限定于上述容量的L1高速缓存150及L2高速缓存160,且数据压缩比例亦可视实际情况而进行调整。
请再参考第1图,在一实施例中,L1高速缓存150包括一预取电路(pre-loadcircuit)151,用以控制L1高速缓存150的数据写入L2高速缓存160以及读取L2高速缓存160的数据(例如为压缩数据),且预取电路151可设定为软件模式或硬件模式。类似地,L2高速缓存160包括一预取电路(pre-load circuit)161,用以控制L2高速缓存160的数据写入动态随机存取存储器180以及读取动态随机存取存储器180的数据,且预取电路151可设定为软件模式或硬件模式。
举例来说,当预取电路151被设定为软件模式时,预取电路151可依据软件所提供的提示信息(hint information)提供抓取数据(例如为矩阵卷积运算所需的矩阵数据及参数)至L1高速缓存150中。当预取电路151被设定为硬件模式时,预取电路151则根据之前所抓取的数据进行地址预测(address prediction),并依据预测的地址预先抓取数据(例如为矩阵卷积运算所需的矩阵数据及参数)。
如果在L1高速缓存150的高速缓存行(cache lane)还有剩余空间,则预取电路151会自动发出读取要求(read request)以从L2高速缓存160预先抓取数据,且这些预先抓取的数据会在L1高速缓存150中被标示为预取数据(preload data),其中上述预取数据例如可为矩阵数据。因为L1高速缓存150的高速缓存替换机制的关系且上述预取数据并不会被处理组件140参考使用到,故上述预取数据的参考计数值(reference count)为0,其中参考计数值即表示当前数据需要被处理组件140所使用的次数,且每当当前数据被处理组件140使用一次,其相应的参考计数值会减1。若当前数据的参考计数值减至0时,表示当前数据已被使用完毕,且即可从L1高速缓存150释放(release)。由此可知,预取电路151仍然有机会在上述预取数据被使用之前就将部分的预取数据替换出去。
举例来说,上述高速缓存替换机制在替换L1高速缓存150中的数据的优先级由高而低分别为未被分配的高速缓存行、参考计数值为0的非预取高速缓存行、以及预取的高速缓存行。此外,预取电路151在硬件模式下的预取操作会依据预取矩阵数据的替换状态以加强或降低预取的力度(strength)。若预取矩阵数据被快速地替换出去,则预取电路151会以较高的频率或数据量预先抓取矩阵数据。相反地,若预取数据很少被替换出去,则预取电路151则会降低预先抓取数据的频率或数据量。
L2高速缓存160中的预取电路161同样可被设置为软件模式或硬件模式,但预取电路161是从动态随机存取存储器180预先抓取数据,其行为类似于L1高速缓存150中的预取电路151,故其细节于此不再详述。需注意的是,当预取电路161欲将L2高速缓存160中的一次压缩矩阵数据写入动态随机存取存储器180或是主机缓存存储器时,一次压缩矩阵数据会再被压缩器163执行第二次压缩后才会写入动态随机存取存储器180或是主机缓存存储器。因此,人工智能集成电路100写入至在其外部的动态随机存取存储器180的是经过二次压缩后的数据,故可大幅降低传输时的数据量以节省带宽。
由上述实施例可知本发明中的L1高速缓存150及L2高速缓存160支持动态预取数据,故可降低在进行矩阵运算时的抓取数据的延迟(latency)。此外,本发明中的L1高速缓存150及L2高速缓存160更支持压缩储存,可大幅减少储存数据时的带宽需求,故可降低储存运算中间结果的压力。
上述实施例主要是介绍将数据的压缩/编码储存的流程。若是处理组件140中的存取控制器144欲从动态随机存取存储器180读取数据,则数据的解压缩/译码的流程与压缩/编码的流程相反。
混合转换单元170用以进行虚拟地址到物理地址的转换、安全检查、页表(pagetable)的管理、分发命令请求到不同的汇流排、全局同步等等。其中,点到点(Peer toPeer)的PCIE设备182可连接至混合转换单元。此外,混合转换单元170可通过高速总线184以连接至在系统内的其他芯片。
第2图为依据本发明一实施例的数据处理流程的示意图。
首先,命令处理器120分析在命令缓存器110中的命令队列中的命令,并提供任务给任务生成器130。任务生成器130依据命令处理器120提供的任务以产生提供至各处理组件140的多个线程(thread)20-1~20-N,其中每个线程管理32~64个平行的任务。各处理组件140中的算术逻辑单元1411依据上述任务以进行地址计算、同步、管理、及特殊计算的操作。当处理组件140要进行卷积运算(例如矩阵卷积运算)时,线程20-1~20-N会通过存取控制器144去动态随机存取存储器180抓取卷积运算所需的参数及数据(例如为矩阵数据)。举例来说,在执行卷积运算之前,线程20-1~20-N可控制存取控制器144以通过路径251将尚未使用到的矩阵数据进行二次压缩并写入至动态随机存取存储器180或主机缓存存储器,其中路径251的细节可参考第1图的实施例。
因为动态随机存取存储器180所储存的数据是经过二次压缩的数据(例如为第一数据压缩数据),所以与要抓取的上述参数及数据有关的第一数据压缩数据会先经过混合转换单元170进入解压缩器164以进行第一级解压缩,其中第一级解压缩例如包括稀疏矩阵的展开及对已经过色彩压缩的数据进行无损解压缩以产生第二压缩数据。
为了充分利用L1高速缓存150至各处理组件140中的通用缓存器组1413的带宽,数据解压缩器142置于L1高速缓存150及各处理组件140的通用缓存器组1413之间。举例来说,L1高速缓存150至各处理组件140的带宽有限,若是将数据解压缩器142设置于各处理组件140之外,则数据解压缩器142对上述第二压缩数据进行矩阵解压缩后会形成展开的矩阵数据,故其数据量相较于第二压缩数据会膨胀4~8倍左右。因此,本发明的数据解压缩器142置于L1高速缓存150及各处理组件140的通用缓存器组1413之间,且可同时服务多个处理组件140。当需要进行运算的各处理组件140从L1高速缓存150接收到第二压缩数据后,各处理组件140中的数据解压缩器142对第二压缩数据进行解压缩以产生展开的矩阵数据,并将上述矩阵数据储存于通用缓存器组1413。
详细而言,在深度学习加速器1412中进行矩阵的卷积运算需要大量的矩阵数据,且上述矩阵数据事先储存于通用缓存器组1413。因此,上述从L1高速缓存150接收第二压缩数据并对第二压缩数据进行解压以产生矩阵数据的流程可能需要重复数次才能累积到深度学习加速器1412中进行卷积运算所需的矩阵数据的数量。当储存于通用缓存器组1413中的矩阵数据已就绪(ready)后,深度学习加速器1412即可将矩阵数据从通用缓存器组1413读取至深度学习加速器1412中的通用缓存器组211,并且从通用缓存器组211将矩阵数据212输入至矩阵乘加器216。矩阵乘加器216例如支持任意规格的矩阵乘法以及稀疏矩阵的加速乘法,并且可根据矩阵规模及稀疏性以决定循环(loop)计算的方式。
在一些实施例中,在每个时钟周期,矩阵乘加器216例如可执行256个乘加运算。若矩阵乘加器216所计算出的结果是最终结果,则矩阵乘加器216可将上述最终矩阵乘加结果输入至激励函数电路(activation-function circuit)217以执行激励以在深度学习的类神经网络中引入非线性关系。其中,激励函数电路217例如可支持整流线性单元(rectifiedlinear unit,ReLU)、sigmod、tanh等函数,但本发明并不限于此。此外,若深度学习加速器1412判断矩阵乘加器216的结果需要进行池化(pooling)或次取样(subsampling),则矩阵乘加器216可将上述最终结果输入至池化电路218或是激励函数电路217的处理结果输入至池化电路218,藉以进行平均池化(mean pooling)或最大池化(max pooling)等操作。经过激励函数电路217及/或池化电路218处理后的矩阵乘加结果例如为类神经网络的其中一个运算层的最终结果,且最终结果会被写回至通用缓存器组1413以供下一运算层使用。
综上所述,本发明提供一种人工智能集成电路,其保留了GPU架构中的通用计算部分(例如ALU)及包含了深度学习加速器以特别针对人工智能/深度学习中的矩阵卷积运算进行硬件加速(包含任意规格的矩阵加速乘法及稀疏矩阵加速乘法),且人工智能集成电路并不具备3D绘图的功能模块。因此,相较于传统的GPU,本发明的人工智能集成电路除了可支持GPU的通用API(例如OpenCL、CUDA、DirectCompute)之外,在进行人工智能/深度学习的相关运算时的速度更快且功耗更低,意即可兼顾软件的弹性与生态环境、硬件加速的性能/功耗比,并且可同时适用于人工智能/深度学习的训练阶段及推理阶段。
此外,本发明的人工智能集成电路中的L1/L2高速缓存支持动态预取数据以降低人工智能运算时抓取矩阵数据的延迟,并且可支持压缩储存,例如包括基于特征的矩阵数据压缩、基于残差的影像压缩、及稀疏矩阵编码压缩,故可大幅降低数据带宽的需求。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视后附之权利要求所界定者为准。
【符号说明】
100~人工智能集成电路;
110~命令缓存器;
120~命令处理器;
130~任务生成器;
140~处理组件;
141~计算单元;
142~数据解压缩器;
143~存储器控制器;
144~存取控制器;
145~总线;
148~静态随机存取存储器;
1411~算术逻辑单元;
1412~深度学习加速器;
1413~通用缓存器组;
150~L1高速缓存;
151~预取电路;
155~数据压缩器;
160~L2高速缓存;
161~预取电路;
163~压缩器;
164~解压缩器;
170~混合转换单元;
180~动态随机存取存储器;
182~PCIE装置;
184~总线;
1101-110N~项目;
251、251~路径;
20-1-20-N~线程;
212~矩阵数据;
214~静态随机存取存储器;
216~矩阵乘法器;
217~激励函数电路;
218~池化电路;
301-304、311-314~区段。

Claims (16)

1.一种人工智能集成电路,包括:
一命令处理器,用以解析一命令队列以产生一或多个任务;
多个处理组件,其中各处理组件为平行设置;
一任务生成器,用以接收来自该命令处理器的该任务以产生多个线程以控制所述多个处理组件;
一第一级(L1)高速缓存;以及
一第二级(L2)高速缓存;
其中,各处理组件包括:
多个算术逻辑单元,用以执行算术及逻辑运算;
多个深度学习加速器,用以执行矩阵乘加运算、激励函数及池化;
一通用缓存器组,用以储存所述多个算术逻辑单元及该深度学习加速器在运算时所需的数据及中间结果;以及
一存取控制器,用以控制该L1高速缓存及L2高速缓存的数据读写操作。
2.如权利要求1所述的人工智能集成电路,其中,该存取控制器用以控制该L1高速缓存及L2高速缓存动态预取储存于该人工智能集成电路外部的一存储器单元的数据,以供所述多个深度学习加速器的矩阵乘加运算使用。
3.如权利要求2所述的人工智能集成电路,其中,该存储器单元为一动态随机存取存储器。
4.如权利要求2所述的人工智能集成电路,其中,该存储器单元为与该人工智能集成电路电性连接的一主机中的主机缓存存储器。
5.如权利要求2所述的人工智能集成电路,其中,该L1高速缓存包括一第一预取电路,且该L2高速缓存包括一第二预取电路,且该第一预取电路及该第二预取电路分别由该L2高速缓存及该存储器单元预取数据。
6.如权利要求5所述的人工智能集成电路,其中,当该存取控制器写入第一数据至该L1高速缓存时,该第一预取电路将该第一数据经由一第一数据压缩器进行第一数据压缩处理以产生第二数据,再将该第二数据写入该L2高速缓存,
其中,该第二预取电路经由一第二数据压缩器进行第二数据压缩处理以产生第三数据,再将该第三数据写入该存储器单元。
7.如权利要求6所述的人工智能集成电路,其中,该第一数据压缩处理使用用于展开矩阵数据的压缩算法、对该第一数据进行压缩以产生该第二数据,且该第二数据压缩处理使用基于残差的图像压缩算法及稀疏矩阵压缩算法、对来自该L2高速缓存的该第二数据进行压缩以产生该第三数据。
8.如权利要求6所述的人工智能集成电路,其中,当该存取控制器欲读取储存于该存储器单元的该第三数据时,该第二预取电路经由一第二解压缩电路对该第三数据进行第二数据解压缩处理以得到该第二数据,并将该第二数据储存于该L2高速缓存,
且该第一预取电路将储存于该L2高速缓存的该第二数据直接传送至各处理组件中的一第一解压缩电路,以对该第二数据进行第一数据解压缩处理以得到该第一数据,并且将该第一数据储存于各处理组件的该通用缓存器组。
9.如权利要求7所述的人工智能集成电路,其中,该深度学习加速器包括:
一矩阵乘加器,用以对该第一数据进行矩阵乘加运算以产生一第一矩阵运算结果;
一激励函数电路,用以对该第一矩阵运算结果进行激励以产生一第二矩阵运算结果;以及
一池化电路,用以对该第二矩阵运算结果进行池化以产生一最终结果,并将该最终结果储存于该通用缓存器组。
10.如权利要求9所述的人工智能集成电路,其中,响应于储存于该通用缓存器组中用于矩阵卷积运算的该第一数据就绪,该深度学习加速器将该第一数据读取至该深度学习加速器内部的一缓存器组,并从该缓存器组将该第一数据读取至该矩阵乘加器以进行矩阵乘加运算。
11.如权利要求9所述的人工智能集成电路,其中该第一预取电路及该第二预取电路被设定为一硬件模式或一软件模式,
其中,当该第一预取电路及该第二预取电路被设定为该硬件模式时,该第一预取电路及该第二预取电路依据先前所抓取的数据进行地址预测,并依据预测的地址以分别从该L2高速缓存及该存储器单元预先抓取数据,
其中,当该第一预取电路及该第二预取电路被设定为该软件模式时,该第一预取电路及该第二预取电路依据软件所提供的提示信息以分别从该L2高速缓存及该存储器单元预先抓取数据。
12.如权利要求9所述的人工智能集成电路,其中该矩阵乘加器支持任意规格的矩阵乘法以及稀疏矩阵的加速乘法,并且可根据矩阵规模及稀疏性以决定循环计算的方式。
13.如权利要求9所述的人工智能集成电路,其中该激励函数电路支持整流线性单元ReLU、sigmod及tanh函数。
14.如权利要求9所述的人工智能集成电路,其中该池化电路对该第二矩阵运算结果进行平均池化或最大池化以产生该最终结果。
15.如权利要求1所述的人工智能集成电路,其中该人工智能集成电路支持OpenCL、CUDA、及DirectCompute的应用程序编程接口。
16.如权利要求1所述的人工智能集成电路,其中该人工智能集成电路不包括3D绘图功能模块。
CN202010004385.4A 2020-01-03 2020-01-03 人工智能集成电路 Active CN111240743B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010004385.4A CN111240743B (zh) 2020-01-03 2020-01-03 人工智能集成电路
US16/745,675 US11625587B2 (en) 2020-01-03 2020-01-17 Artificial intelligence integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010004385.4A CN111240743B (zh) 2020-01-03 2020-01-03 人工智能集成电路

Publications (2)

Publication Number Publication Date
CN111240743A true CN111240743A (zh) 2020-06-05
CN111240743B CN111240743B (zh) 2022-06-03

Family

ID=70874263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010004385.4A Active CN111240743B (zh) 2020-01-03 2020-01-03 人工智能集成电路

Country Status (2)

Country Link
US (1) US11625587B2 (zh)
CN (1) CN111240743B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416817A (zh) * 2020-12-02 2021-02-26 海光信息技术股份有限公司 预取方法、信息处理装置、设备以及存储介质
CN117421112A (zh) * 2023-10-18 2024-01-19 中科驭数(北京)科技有限公司 加速单元、网卡、主机和报文处理加速方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11874897B2 (en) 2020-04-09 2024-01-16 Micron Technology, Inc. Integrated circuit device with deep learning accelerator and random access memory
US11461651B2 (en) * 2020-04-09 2022-10-04 Micron Technology, Inc. System on a chip with deep learning accelerator and random access memory
US11726784B2 (en) 2020-04-09 2023-08-15 Micron Technology, Inc. Patient monitoring using edge servers having deep learning accelerator and random access memory
US11355175B2 (en) 2020-04-09 2022-06-07 Micron Technology, Inc. Deep learning accelerator and random access memory with a camera interface
US11887647B2 (en) 2020-04-09 2024-01-30 Micron Technology, Inc. Deep learning accelerator and random access memory with separate memory access connections
US20220067524A1 (en) * 2021-10-28 2022-03-03 Intel Corporation Sparsity-aware datastore for inference processing in deep neural network architectures
CN116520754B (zh) * 2023-06-27 2023-09-22 厦门芯泰达集成电路有限公司 基于预加载模式的dps模块控制方法、系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590533A (zh) * 2017-08-29 2018-01-16 中国科学院计算技术研究所 一种用于深度神经网络的压缩装置
CN108090560A (zh) * 2018-01-05 2018-05-29 中国科学技术大学苏州研究院 基于fpga的lstm递归神经网络硬件加速器的设计方法
CN108615074A (zh) * 2018-04-28 2018-10-02 中国科学院计算技术研究所 基于压缩感知的神经网络处理系统及方法
US20180300600A1 (en) * 2017-04-17 2018-10-18 Intel Corporation Convolutional neural network optimization mechanism
CN207993065U (zh) * 2017-01-04 2018-10-19 意法半导体股份有限公司 可配置的加速器框架设备和用于深度卷积神经网络的系统
US20180330239A1 (en) * 2016-01-20 2018-11-15 Cambricon Technologies Corporation Limited Apparatus and method for compression coding for artificial neural network
US20190042542A1 (en) * 2018-03-28 2019-02-07 Intel Corporation Accelerator for sparse-dense matrix multiplication
CN109993684A (zh) * 2017-12-30 2019-07-09 英特尔公司 机器学习和深度学习处理中的压缩
CN109993297A (zh) * 2019-04-02 2019-07-09 南京吉相传感成像技术研究院有限公司 一种负载均衡的稀疏卷积神经网络加速器及其加速方法
CN109993683A (zh) * 2017-12-29 2019-07-09 英特尔公司 任意神经网络的机器学习稀疏计算机制、用于训练机制的算术计算微架构以及稀疏性
CN110135575A (zh) * 2017-12-29 2019-08-16 英特尔公司 用于分布式机器学习的通信优化
CN110326021A (zh) * 2017-04-01 2019-10-11 英特尔公司 用于图形处理器上的加速计算的执行单元共享混合技术
CN110389909A (zh) * 2018-04-16 2019-10-29 三星电子株式会社 使用深度神经网络优化固态驱动器的性能的系统和方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US7904951B1 (en) * 1999-03-16 2011-03-08 Novell, Inc. Techniques for securely accelerating external domains locally
US10303609B2 (en) * 2017-09-28 2019-05-28 Intel Corporation Independent tuning of multiple hardware prefetchers
US10769526B2 (en) * 2018-04-24 2020-09-08 Intel Corporation Machine learning accelerator architecture
US11748418B2 (en) * 2018-07-31 2023-09-05 Marvell Asia Pte, Ltd. Storage aggregator controller with metadata computation control
US20190362461A1 (en) * 2018-08-10 2019-11-28 Intel Corporation Multi-object, three-dimensional modeling and model selection
US10997475B2 (en) * 2019-02-14 2021-05-04 Siemens Healthcare Gmbh COPD classification with machine-trained abnormality detection
US11263122B2 (en) * 2019-04-09 2022-03-01 Vmware, Inc. Implementing fine grain data coherency of a shared memory region

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180330239A1 (en) * 2016-01-20 2018-11-15 Cambricon Technologies Corporation Limited Apparatus and method for compression coding for artificial neural network
CN207993065U (zh) * 2017-01-04 2018-10-19 意法半导体股份有限公司 可配置的加速器框架设备和用于深度卷积神经网络的系统
CN110326021A (zh) * 2017-04-01 2019-10-11 英特尔公司 用于图形处理器上的加速计算的执行单元共享混合技术
US20180300600A1 (en) * 2017-04-17 2018-10-18 Intel Corporation Convolutional neural network optimization mechanism
CN107590533A (zh) * 2017-08-29 2018-01-16 中国科学院计算技术研究所 一种用于深度神经网络的压缩装置
CN109993683A (zh) * 2017-12-29 2019-07-09 英特尔公司 任意神经网络的机器学习稀疏计算机制、用于训练机制的算术计算微架构以及稀疏性
CN110135575A (zh) * 2017-12-29 2019-08-16 英特尔公司 用于分布式机器学习的通信优化
CN109993684A (zh) * 2017-12-30 2019-07-09 英特尔公司 机器学习和深度学习处理中的压缩
CN108090560A (zh) * 2018-01-05 2018-05-29 中国科学技术大学苏州研究院 基于fpga的lstm递归神经网络硬件加速器的设计方法
US20190042542A1 (en) * 2018-03-28 2019-02-07 Intel Corporation Accelerator for sparse-dense matrix multiplication
CN110389909A (zh) * 2018-04-16 2019-10-29 三星电子株式会社 使用深度神经网络优化固态驱动器的性能的系统和方法
CN108615074A (zh) * 2018-04-28 2018-10-02 中国科学院计算技术研究所 基于压缩感知的神经网络处理系统及方法
CN109993297A (zh) * 2019-04-02 2019-07-09 南京吉相传感成像技术研究院有限公司 一种负载均衡的稀疏卷积神经网络加速器及其加速方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MUJAHED ELEYAT: ""cache-aware matrix multiplication on multicore systems for IPM-based LP solvers"", 《IEEE》 *
尹首一等: ""Thinker:可重构混合神经网络计算芯片"", 《人工智能》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416817A (zh) * 2020-12-02 2021-02-26 海光信息技术股份有限公司 预取方法、信息处理装置、设备以及存储介质
CN112416817B (zh) * 2020-12-02 2023-02-17 海光信息技术股份有限公司 预取方法、信息处理装置、设备以及存储介质
CN117421112A (zh) * 2023-10-18 2024-01-19 中科驭数(北京)科技有限公司 加速单元、网卡、主机和报文处理加速方法

Also Published As

Publication number Publication date
CN111240743B (zh) 2022-06-03
US20210209451A1 (en) 2021-07-08
US11625587B2 (en) 2023-04-11

Similar Documents

Publication Publication Date Title
CN111240743B (zh) 人工智能集成电路
EP1157470B1 (en) System and method for parallel data compression and decompression
US9304898B2 (en) Hardware-based array compression
CN113344171A (zh) 用于神经网络参数实时动态解压缩的矢量量化解码硬件单元
US11487342B2 (en) Reducing power consumption in a neural network environment using data management
US20140047199A1 (en) Memory-Link Compression for Graphic Processor Unit
US10782918B2 (en) Near-memory data-dependent gather and packing
US20210303992A1 (en) Executing neural networks on electronic devices
WO2022047802A1 (en) Processing-in-memory device and data processing method thereof
CN115828044A (zh) 基于神经网络双重稀疏性矩阵乘法运算电路、方法和装置
KR100463205B1 (ko) 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
US5799138A (en) Apparatus for instruction-word-linK compression
US20210157485A1 (en) Pattern-based cache block compression
CN114492777A (zh) 一种算力可扩展的多核神经网络张量处理器
US20200192671A1 (en) Device and method for cache utilization aware data compression
US20220414014A1 (en) Technology for early abort of compression acceleration
Zhang et al. A fine-grained mixed precision DNN accelerator using a two-stage big–little core RISC-V MCU
US11048413B2 (en) Method for reducing read ports and accelerating decompression in memory systems
US20240036932A1 (en) Graphics processors
EP4202692A1 (en) Apparatus and method for constant detection during compress operations
EP4016848A1 (en) Flexible compression header and code generation
CN114840470A (zh) 对片上缓存友好的维度变换装置及神经网络处理器
Loloeyan et al. A novel approximate cache block compressor for error-resilient image data
CN117973448A (zh) 一种基于fpga的cnn加速系统
Lahiry Exploring Compression in the GPU Memory Hierarchy for Graphics and Compute

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210311

Address after: 201203 3rd floor, building 2, No. 200, zhangheng Road, Pudong New Area pilot Free Trade Zone, Shanghai

Applicant after: Gryfield Intelligent Technology Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Applicant before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 201203, 11th Floor, Building 3, No. 889 Bibo Road, China (Shanghai) Pilot Free Trade Zone

Patentee after: Granfei Intelligent Technology Co.,Ltd.

Country or region after: China

Address before: 201203 3rd floor, building 2, No. 200, zhangheng Road, Pudong New Area pilot Free Trade Zone, Shanghai

Patentee before: Gryfield Intelligent Technology Co.,Ltd.

Country or region before: China