Rotating data for neural network computations
AssigneeGoogle Inc.
InventorsJonathan Ross, Gregory Michael Thorson
Life of this patent
Estimating the term…
Loading patent…
AssigneeGoogle Inc.
InventorsJonathan Ross, Gregory Michael Thorson
Estimating the term…
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for computing a layer output for a convolutional neural network layer, the method comprising: receiving a plurality of activation inputs; forming a plurality of vector inputs from the plurality of activation inputs, each vector input comprising values from a distinct region within the multi-dimensional matrix; sending the plurality of vector inputs to one or more cells along a first dimension of the systolic array; generating a plurality of rotated kernel structures from each of the plurality of kernel; sending each kernel structure and each rotated kernel structure to one or more cells along a second dimension of the systolic array; causing the systolic array to generate an accumulated output based on the plurality of value inputs and the plurality of kernels; and generating the layer output from the accumulated output.
A method of computing a layer output for a convolutional neural network layer from a layer input to the convolutional neural network layer using a hardware matrix computation unit comprising a hardware two-dimensional systolic array, wherein the convolutional neural network layer has a plurality of kernels, each kernel comprising a kernel structure having a respective matrix structure of weights, wherein the convolutional neural network layer generates the layer output based at least in part on performing a respective convolution between each kernel and an activation input to the convolutional neural network layer, and wherein the method comprises:
A system for computing a layer output for a convolutional neural network layer from a layer input for the convolutional neural network layer, the convolutional neural network layer having a plurality of kernels, each kernel comprising a kernel structure having a respective matrix structure of weights, wherein the convolutional neural network layer generates the layer output based at least in part on performing a respective convolution between each kernel and an activation input to the convolutional neural network layer, and wherein the system comprises:
A computer-readable medium having instructions stored thereon, which, when executed by a hardware matrix computation unit comprising a hardware two-dimensional systolic array, cause the hardware matrix computation unit to perform operations for computing a layer output for a convolutional neural network layer from a layer input to the convolutional neural network layer using the hardware matrix computation unit, wherein the convolutional neural network layer has a plurality of kernels, each kernel comprising a kernel structure having a respective matrix structure of weights, wherein the convolutional neural network layer generates the layer output based at least in part on performing a respective convolution between each kernel and an activation input to the convolutional neural network layer, the operations comprising:
Dependencies are inferred from the claim text.