一种硬件加速器,其包括:一第一存储器;一来源地址产生单元,耦接至该第一存储器;一数据收集单元,耦接至该第一存储器;一第一数据队列,耦接至该数据收集单元;一数据分散单元,耦接至该第一数据队列;一目标地址产生单元,耦接至该数据分散单元;一地址队列,耦接至该目标位址产生单元;一第二数据队列,耦接至该数据分散单元;以及一第二存储器,耦接至该第二数据队列。该硬件加速器可进行张量移动、张量重塑形状与张量对换顺序的其中之一或者任意组合,以达到张量深度到空间排列或张量空间到深度排列。到深度排列。到深度排列。
【技术实现步骤摘要】
一种硬件加速器
[0001]本专利技术是有关于一种张量(tensor)的空间及深度转换硬件加速器。
技术介绍
[0002]云端大数据(big data)处理和图像分析等,人工智能(AI)应用的爆炸式成长促使专家们前仆后继地开发最佳架构。AI硬件加速器的目标是找到最快速、最节能的方法来执行所需的运算任务。
[0003]AI硬件加速应用有几大类应用场景:(1)云端加速涉及压缩解压缩、区块链和安全等,需要很高的运算能力和功耗成本比;(2)储存,有些应用需要高效率,因而要求在存储器中进行数据处理;(3)自动驾驶,涉及人工智能、数据运算和传感器融合等,需要具有可程序设计性。
[0004]AI硬件加速器的出现,因应不同AI神经网络运算需求,如何让硬件能够更有效率的执行,乃是业界努力方向之一。
[0005]此外,如何能够减少AI硬件加速器跟CPU之间频繁切换问题,减少CPU负载,亦可兼顾整体AI运算执行效率。
技术实现思路
[0006]根据本专利技术的一实施例,提出一种硬件加速器,其包括:一第一存储器接收数据;一第一存储器,接收数据;一来源地址产生单元,耦接至该第一存储器,用以根据一来源形状参数与一来源移动参数而产生多个来源地址给该第一存储器,以使得该第一存储器依据该些来源地址而送出数据;一数据收集单元,耦接至该第一存储器,接收从该第一存储器所传来的数据;一第一数据队列,耦接至该数据收集单元,用以暂存从该数据收集单元所传来的数据;一数据分散单元,耦接至该第一数据队列,将从该第一数据队列所传来的数据分散;一目标地址产生单元,耦接至该数据分散单元,用以根据一目标形状参数与一目标移动参数而产生多个目标地址;一地址队列,耦接至该目标地址产生单元,用以暂存该目标地址产生单元所产生的该些目标地址;一第二数据队列,耦接至该数据分散单元,用以暂存由该数据分散单元所传来的数据;以及一第二存储器,耦接至该第二数据队列,根据该目标地址产生单元所产生的该些目标地址来写入从该第二数据队列所传来的数据。该硬件加速器进行张量移动、张量重塑形状与张量对换顺序的任意组合,以达到张量深度到空间排列或张量空间到深度排列。
[0007]以下结合附图和具体实施例对本专利技术进行详细描述,但不作为对本专利技术的限定。
附图说明
[0008]图1A绘示4维张量数据储存于存储器内的示意图。
[0009]图1B显示4维张量数据储存于存储器内的另一示范例。
[0010]图2显示根据本专利技术一实施例的硬件加速器之功能方块图。
[0011]图3显示「张量深度到空间排列」与「张量空间到深度排列」的一例。
[0012]图4显示根据本专利技术一实施例的来源地址产生流程图。
[0013]图5显示根据本专利技术一实施例的目标地址产生流程图。
[0014]图6A与图6B显示根据本专利技术一实施例的两种张量移动示范例。
[0015]图7显示根据本专利技术一实施例的张量重塑形状示范例。
[0016]图8显示根据本专利技术一实施例的张量对换顺序示范例。
[0017]图9A至图9C显示根据本专利技术一实施例的张量深度到空间排列算法。
具体实施方式
[0018]下面结合附图对本专利技术的结构原理和工作原理作具体的描述:
[0019]在深度学习里,张量(tensor)实际上是一个多维阵列(multidimensional array)。依其维度(dimension),张量可分为1维张量,2维张量,3维张量,4维张量
…
等。在本专利技术中,以数据是4维张量做说明,但当知本专利技术并不受限于此。在本专利技术其他可能实施例中,数据可以是3维张量或者是更多维张量(如5维张量)等,其皆在本专利技术精神范围内。
[0020]图1A绘示4维张量数据储存于存储器100内的示意图。在本专利技术中,将4维张量数据的形状(shape)参数定义为:(n,c,h,w),其代表四维度形状点数;而4维张量数据的移动(stride)参数定义为:(nStride,cStride,hStride,wStride),其代表点到点距离。亦即,nStride(亦可缩写为ns)代表n点到n点的距离,cStride(亦可缩写为cs)代表c点到c点的距离,hStride(亦可缩写为hs)代表h点到h点的距离,wStride(亦可缩写为ws)代表w点到w点的距离。BA代表基底地址(Base Address),所以,Base Address亦可缩写为BA。
[0021]为更方便了解,图1B显示4维张量数据储存于存储器100内的另一示范例。此4维张量数据的形状参数(n,c,h,w)=(2,3,4,4),而4维张量数据的移动参数定义(ns,cs,hs,ws)=(48,16,4,1)。其中,图像(n,c,h,w)=(2,3,4,4)代表有2个图框(frame),每一个图框有3个通道(R,G,B),每个R平面(plane)、G平面与B平面各自是4*4的h*w点所组成,一共有4*4*3*2=96个点,每一个点是1个字节(byte)。
[0022]图2显示根据本专利技术一实施例的硬件加速器的功能方块图。硬件加速器200包括:第一存储器210、数据收集单元215、来源地址产生单元220、第一数据队列225、数据分散单元230、目标地址产生单元235、地址队列240、第二数据队列245与第二存储器250。在本专利技术可能实施例中,第一存储器210与第二存储器250可以是:(1)由同一个存储器单元所实现,分别占用该存储器单元的不同地址;或者是,(2)由同一个存储器单元所实现,采用原地(in-place)算法,分别占用该存储器单元的相同地址;或者是,(3)由不同存储器单元所实现。
[0023]本实施例的硬件加速器200可进行张量移动(tensor stride)、张量重塑形状(tensorreshape)、张量对换顺序(tensortranspose)。更甚之,本实施例的硬件加速器200可进行张量移动、张量重塑形状、张量对换顺序的任意组合,以达到张量深度到空间排列(tensorflow depth-to-space permutation),及/或张量空间到深度排列(tensorflow space-to-depthpermutation)。张量(tensorflow)是某一种AI框架所定义的操作名词,至于在其他AI框架(如pytorch等),则可以有不同名称,此皆在本专利技术精神范围内。
[0024]第一存储器210接收从数据来源(图中未示出)所传来的数据。
[0025]数据收集单元215耦接至第一存储器210,接收从第一存储器210所传来的数据。
[0026]来源地址产生单元220耦接至数据收集单元215,用以根据来源形状参数(n,c,h,w)与来源移动参数(ns,cs,hs,ws)而产生多个来源地址SAD(source address)。来源形状参数(n,c,h,w)与来源移动参数(ns,cs,hs,ws)乃是使用者定义。
[0027]来源地址本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种硬件加速器,其特征在于,包括:一第一存储器,用以接收数据;一来源地址产生单元,耦接至该第一存储器,用以根据一来源形状参数与一来源移动参数而产生多个来源地址给该第一存储器,以使得该第一存储器依据该些来源地址而送出数据;一数据收集单元,耦接至该第一存储器,用以接收从该第一存储器所传来的数据;一第一数据队列,耦接至该数据收集单元,用以暂存从该数据收集单元所传来的数据;一数据分散单元,耦接至该第一数据队列,用以将从该第一数据队列所传来的数据分散;一目标地址产生单元,耦接至该数据分散单元,用以根据一目标形状参数与一目标移动参数而产生多个目标地址;一地址队列,耦接至该目标地址产生单元,用以暂存该目标地址产生单元所产生的该些目标地址;一第二数据队列,耦接至该数据分散单元,用以暂存由该数据分散单元所传来的数据;以及一第二存储器,耦接至该第二数据队列,用以根据该目标地址产生单元所产生的该些目标地址来写入从该第二数据队列所传来的数据,其中,该硬件加速器可进行张量移动、张量重塑形状与张量对换顺序的其中之一或者任意组合,以达到张量深度到空间排列及/或张量空间到深度排列。2.如权利要求1所述的硬件加速器,其特征在于,其中,该来源形状参数与...
【专利技术属性】
技术研发人员:张玮君,郭垣翔,吕佳霖,
申请(专利权)人:北京晶视智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。