当前位置: 首页 > 专利查询>辉达公司专利>正文

间接访问样本数据以在并行处理系统中执行多卷积操作技术方案

技术编号:14980653 阅读:43 留言:0更新日期:2017-04-03 12:23
本发明专利技术公开了间接访问样本数据以在并行处理系统中执行多卷积操作。在本发明专利技术的实施例中,卷积引擎配置并行处理管道,以执行多卷积操作。更具体地,卷积引擎配置并行处理管道以独立地生成和处理单个的图像拼贴。在操作中,针对每个图像拼贴,管道基于一个或多个开始地址以及一个或多个偏移来计算输入图像批中所包括的源地址。结果,管道将数据从源位置复制到图像拼贴。管道随后在图像拼贴和滤波器拼贴之间执行矩阵乘操作,以生成图像拼贴对输出矩阵的贡献。为了优化所使用的存储器的量,管道按需地在共享存储器中创建每个图像拼贴。另外,为了优化矩阵乘操作的吞吐量,偏移值由卷积预处理器预计算。

【技术实现步骤摘要】
相关申请的交叉引用本申请要求具有序列号62/087,681(律师存档号14-SC-0391-USL)并且于2014年12月4日递交的美国临时专利申请的权益。该相关申请的主题内容通过引用被结合于此。
本专利技术的实施例一般涉及计算机处理,并且更具体地,涉及间接访问样本数据以在并行处理系统中执行多卷积操作
技术介绍
卷积神经网络(CNN)通常被用于高效且可靠地解决大量推理问题。例如,CNN被包括在许多图像识别、笔迹识别,以及语音翻译算法中。在操作中,与许多更简单的机器学习技术相比,CNN可大幅度地降低错误率。但是,执行CNN所要求的时间通常超过了执行更简单的机器学习技术所要求的时间。因此,以产生差的结果为代价,对时间敏感的应用可被结构化为实现更简单的机器学习技术。一般而言,执行CNN所要求的时间主要由CNN执行“多卷积”操作所要求的时间占据。多卷积操作是样本数据(诸如,图像)和滤波器之间的多维卷积操作的一种广义形式。多卷积操作通常利用基于模板(stencil-based)的技术或利用快速傅里叶变换(FFT)来实现。虽然基于模板的技术和基于FFT的技术可以使得某些卷积操作更加有效地实现,但是,这种技术一般不能允许多卷积操作在全维度以及通常与标准CNN相关联的额外参数的范围上高效地执行。在这方面,CNN通常包括多个“卷积层”,其中每个卷积层跨越样本数据批的多个维度以及滤波器堆栈的多个维度来执行卷积操作。例如,针对涉及图像样本的四维CNN,样本数据批是批量的图像,并且图像批(imagebatch)的四个维度包括图像宽度、图像高度、每个图像的颜色平面数量,以及图像批中的图像数量。滤波器堆栈的四个维度包括滤波器宽度、滤波器高度、每个滤波器的特征平面数量,以及滤波器堆栈中的滤波器数量。额外的参数可进一步定制多卷积操作。例如,水平滤波器步幅和垂直滤波器步幅可通过减小卷积操作中所涉及的像素的子集合的大小来降低整个计算负荷。显著地,图像批和滤波器堆栈的维度以及额外参数通常在卷积层之间变化。基于模板的技术通常被调谐以优化跨越相对较小的维度和参数的子集的多卷积操作。但是,跨越其他维度和参数的基于模板的技术的性能通常超过了执行更简单的机器学习技术所要求的时间。结果,如以上所提及的,利用基于模板的技术来执行许多CNN所要求的时间通常难以接受的长。也如以上所提及的,基于参数值,利用基于FFT的方式来执行许多CNN所要求的时间也戏剧性地变化。一种减少跨越大范围的参数值来执行CNN所要求的时间的方式结合了如下观察---卷积是线性操作符,并且因此可被降至矩阵乘。这种方式要求将样本数据扩展成所要求的矩阵形式。更具体地,在这种实现中,卷积引擎将图像批转换成以列为主的图像矩阵,并且将滤波器堆栈表述成滤波器矩阵。结果,卷积引擎在图像矩阵和滤波器矩阵之间执行矩阵乘操作。显著地,图像矩阵和滤波器矩阵的维度对应于CNN的独立参数的子集的乘积,而非单个参数。结果,跨越不同的数据维度和参数,基于矩阵的技术展示了相对均一的性能特征。另外,由于针对许多类型的处理单元中的每一个所写入的代码库包括经优化的矩阵乘例程,因此,经由上述方式执行CNN所要求的时间可以显著地少于利用基于模板或基于FFT技术来执行CNN所要求的时间。在卷积引擎中实现这种基于矩阵的操作的一个缺点是,作为将图像批进行扩展以适当地建立矩阵乘操作的一部分,卷积引擎不得不将图像数据复制到图像矩阵的多个位置。结果,图像矩阵的大小可增加至可用存储器被完全消耗的程度。例如,假设图像宽度是W,图像高度是H,每个图像的颜色平面的数量是C,以及图像批中的图像数量是N。另外,假设每个输出图像的维度是(P×Q)。在这种情境中,图像矩阵的维度将是(N×P×Q)×(C×R×S)。在许多系统中,存储这样大小的图像矩阵所需要的空间可能超过存储器中的可用空间。为了降低存储器使用同时经由经优化的矩阵乘例程来执行多卷积,可实现基于拼贴(tile)的卷积引擎,其将并行处理管道配置为独立扩展并处理图像矩阵的单个拼贴。在这种方式中,并行处理管道按需地执行地址计算,以在共享的存储器中扩展图像矩阵的每个拼贴。并行处理管道随后在图像拼贴和滤波器堆栈之间执行矩阵乘操作。由于经扩展的图像矩阵以每次一个拼贴地被直接扩展至共享的存储器,因此,矩阵从不被整体存储,并且与典型的基于矩阵的卷积引擎相比,所使用的并行处理存储器的量可被戏剧性地减少。但是,基于拼贴的卷积引擎的一个缺点是,计算以正确的次序来载入图像数据所需的地址序列以扩展经扩展的图像矩阵的拼贴涉及执行一序列的依赖型整数操作。该整数操作的序列通常要求执行相对大量的时钟周期。通常,执行整数操作所要求的时钟周期的数量可能超过执行矩阵乘操作所要求的时钟周期的数量。结果,没有完全实现经优化的矩阵乘例程的效果,并且用来执行CNN的整体时间可能难以接受的长。更具体地,矩阵乘中的每个循环迭代针对浮点数学操作的数量设定大小,以覆盖负载的存储器延迟。例如,一个实现针对10个存储器负载可具有100个数学操作。通常,这10个存储器负载执行得相对较快,并且随着100个数学操作完成,将返回。但是,如果每个这种存储器操作采用额外10个整数操作,每一个依赖于之前的操作,其带有10个时钟延迟,则生成10个地址的花销是100个周期---这与计算用以服务那些存储器负载的存储器延迟之前的数学操作数量相匹配。如果那些存储器负载自身采用平均10个周期,则我们现在采用200个周期来载入存储器,相比于采用100个周期来计算浮点数学操作,这导致100个周期其中没有有用的数学来覆盖存储器延迟,这伤害了整体效率。如之前所阐释的,现有技术中所需的是更加有效的方式来执行多卷积操作。
技术实现思路
本专利技术的一个实施例给出了一种用于执行多卷积操作的计算机实现的方法。所述方法包括:基于第一存储器中所存储的第一图像拼贴中所包括的第一目的地地址,选择第一开始地址;基于所述第一目的地地址,标识第一偏移;基于所述第一开始地址和所述第一偏移,计算第二存储器中所存储的图像批中所包括的第一源地址;将数据从所述第一源地址复制到所述第一目的地地址;以及在复制所述数据之后,在所述第一图像拼贴和第一滤波器拼贴之间执行一个或多个矩阵乘操作。另外,其他的实施例提供非暂时性计算机可读介质和系统,其被配置为实现以上给出的方法。所公开的技术的本文档来自技高网
...

【技术保护点】
一种用于执行多卷积操作的计算机实现的方法,所述方法包括:基于第一存储器中所存储的第一图像拼贴中所包括的第一目的地地址,选择第一开始地址;基于所述第一目的地地址,标识第一偏移;基于所述第一开始地址和所述第一偏移,计算第二存储器中所存储的图像批中所包括的第一源地址;将数据从所述第一源地址复制到所述第一目的地地址;以及在复制所述数据之后,在所述第一图像拼贴和第一滤波器拼贴之间执行一个或多个矩阵乘操作。

【技术特征摘要】
2014.12.04 US 62/087,6811.一种用于执行多卷积操作的计算机实现的方法,所述方法包括:
基于第一存储器中所存储的第一图像拼贴中所包括的第一目的地地
址,选择第一开始地址;
基于所述第一目的地地址,标识第一偏移;
基于所述第一开始地址和所述第一偏移,计算第二存储器中所存储的
图像批中所包括的第一源地址;
将数据从所述第一源地址复制到所述第一目的地地址;以及
在复制所述数据之后,在所述第一图像拼贴和第一滤波器拼贴之间执
行一个或多个矩阵乘操作。
2.根据权利要求1所述的计算机实现的方法,其中所述第一存储器包
括共享存储器,并且所述第二存储器包括并行处理存储器。
3.根据权利要求1所述的计算机实现的方法,其中所述第一滤波器拼
贴被存储在所述第一存储器中,并且还包括:
基于所述第一目的地地址,计算滤波器源地址;以及
将所述滤波器源地址处的滤波器堆栈中所存储的数据复制到所述第
一滤波器拼贴中所包括的滤波器目的地地址。
4.根据权利要求1所述的计算机实现的方法,其中选择所述第一开始
地址包括:
将所述第一目的地地址与虚拟图像矩阵的列相关联;以及
执行一个或多个操作,所述一个或多个操作将所述列映射到所述图像
批中所包括的地址。
5.根据权利要求1所述的计算机实现的方法,其中标识所述第一偏移
包括:
将第一目的地位置与虚拟图像矩阵的行相关联;...

【专利技术属性】
技术研发人员:小约翰·克利夫顿·伍利约翰·德兰
申请(专利权)人:辉达公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1