Methods, systems, and devices, including devices for accessing n-dimensional tensors, for each dimension of n-dimensional tensors, the device includes a partial address offset value element, which stores a partial address offset value of the dimension based on at least the initial value of the dimension, the step value of the dimension, and the number of iterations of the cycle of the dimension. The device includes a hardware adder and a processor. The processor gets instructions to access specific elements of the n-dimensional tensor. An n-dimensional tensor has multiple elements arranged across each of N dimensions, where n is an integer equal to or greater than one. The processor uses a partial address offset value element and a hardware adder to determine the address of a specific element, and outputs data indicating the determined address used to access the specific element.
【技术实现步骤摘要】
【国外来华专利技术】使用加法器访问多维张量中的数据
本说明书一般涉及使用具有硬件加法器的专用计算单元来进行机器学习计算。
技术介绍
神经网络是机器学习模型,其采用一个或多个模型层来为所接收的输入生成输出,例如分类。除了外层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作对网络中下一个层(即网络的下一个隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从所接收的输入生成输出。一些神经网络包括一个或多个卷积神经网络层。每个卷积神经网络层都有相关联的一组内核。内核可以表示为权重输入的矩阵结构。每个卷积层使用内核来处理对层的输入。对层的一组输入也可以表示为矩阵结构。
技术实现思路
本说明书描述与使用用于确定张量元素的存储器地址的一个或多个硬件加法器来访问N维张量有关的技术。通常,本说明书所述主题的一个创新性方面可以体现在用于访问N维张量的设备中。对于N维张量的每个维度,设备可包括:部分地址偏移值元素,其至少基于以下来存储所述维度的部分地址偏移值:所述维度的初始值、所述维度的步长值、以及所述维度的循环的迭代次数。设备还可包括一个或多个硬件加法器以及一个或多个处理器。一个或多个处理器可以被配置为获得访问所述N维张量的特定元素的指令。所述N维张量可具有跨N个维度中的每个维度布置的多个元素。N可以是等于或大于1的整数。处理器可以使用所述部分地址偏移值元素中的一个或多个部分地址偏移值元素和所述一个或多个硬件加法器来确定所述特定元素的地址,以及输出指示用于访问所述N维张量的所述特定元素的所确定的地址 ...
【技术保护点】
1.一种用于处理访问N维张量的指令的设备,所述设备包括:/n针对所述N维张量的每个维度的部分地址偏移值元素,所述部分地址偏移值元素至少基于所述维度的初始值、所述维度的步长值、以及所述维度的循环的迭代次数来存储所述维度的部分地址偏移值;/n一个或多个硬件加法器;以及/n一个或多个处理器,所述一个或多个处理器被配置为:/n获得用于访问所述N维张量的特定元素的指令,其中,所述N维张量具有跨N个维度中的每个维度布置的多个元素,并且其中,N是等于或大于一的整数;/n使用所述部分地址偏移值元素中的一个或多个部分地址偏移值元素和所述一个或多个硬件加法器来确定所述特定元素的地址;以及/n输出指示所确定的用于访问所述N维张量的所述特定元素的地址的数据。/n
【技术特征摘要】
【国外来华专利技术】20170523 US 15/603,061;20180223 US 15/903,9911.一种用于处理访问N维张量的指令的设备,所述设备包括:
针对所述N维张量的每个维度的部分地址偏移值元素,所述部分地址偏移值元素至少基于所述维度的初始值、所述维度的步长值、以及所述维度的循环的迭代次数来存储所述维度的部分地址偏移值;
一个或多个硬件加法器;以及
一个或多个处理器,所述一个或多个处理器被配置为:
获得用于访问所述N维张量的特定元素的指令,其中,所述N维张量具有跨N个维度中的每个维度布置的多个元素,并且其中,N是等于或大于一的整数;
使用所述部分地址偏移值元素中的一个或多个部分地址偏移值元素和所述一个或多个硬件加法器来确定所述特定元素的地址;以及
输出指示所确定的用于访问所述N维张量的所述特定元素的地址的数据。
2.根据权利要求1所述的设备,对于每个维度还包括:
初始值元素,所述初始值元素存储所述维度的所述初始值;以及
步长值元素,所述步长值元素存储所述维度的所述步长值。
3.根据权利要求2所述的设备,其中,每个部分地址偏移值元素、每个初始值元素以及每个步长值元素包括寄存器。
4.根据权利要求1至3中的任一项所述的设备,其中,确定所述特定元素的地址包括:使用所述一个或多个硬件加法器来确定每个维度的部分地址偏移值的总和。
5.根据权利要求1至4中的任一项所述的设备,其中,所述一个或多个处理器还被配置为:
对于每个维度,通过将所述步长值与所述维度的先前地址偏移值相加来确定所述维度的嵌套循环的每次迭代之后所述维度的部分地址偏移值。
6.根据权利要求5所述的设备,对于每个维度还包括:存储所述维度的限制值的限制值元素,其中,所述一个或多个处理器还被配置为:
对于每个维度确定所述维度的所确定的部分地址偏移值是否等于所述维度的限制值;以及
响应于确定与第一嵌套循环相对应的第一维度的所确定的部分地址偏移值等于所述第一维度的限制值:
将所述第一维度的部分地址偏移值重置为所述第一维度的初始值;以及
对于与所述第一嵌套循环所嵌套于的第二嵌套循环相对应的第二维度,使用所述一个或多个硬件加法器将所述第二维度的部分地址偏移值更新为等于所述第二维度的步长值与所述第二维度的部分地址偏移值的总和。
7.根据权利要求1至6中的任一项所述的设备,其中,每个维度的所述步长值是基于一个或多个所述维度中的元素的数目的预定值。
8.一种系统,包括:
一个或多个处理器,所述一个或多个处理器被配置为对N维张量进行线性代数运算,其中,所述N维张量具有跨N个维度中的每个维度布置的多个元素,并且其中,N是等于或大于一的整数;
针对所述N个维度中的每个维度的部分地址偏移值元素,所述部分地址偏移值元素至少基于所述维度的初始值、所述维度的步长值以及所述维度的循环的迭代次数来存储所述维度的部分地址偏移值;
电路,所述电路包括一个或多个硬件加法器并且被配置为:
获得用于访问所述N维张量的特定元素的指令;
使用所述部分地址偏移值元素中的一个或多个部分地址偏移值元素和所述一个或多个硬件加法器来确定所述特定元素的地址;以及
输出指示所确定的用于访问所述N维张量的所述特定元素的地址的数据。
9.根据权利要求8所述的系统,对于每个维度还包括:
初始...
【专利技术属性】
技术研发人员:奥利维尔·泰马姆,哈西特·哈伊坦,拉维·纳拉亚纳斯瓦米,禹同爀,
申请(专利权)人:谷歌有限责任公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。