Permuting in a matrix-vector processor

    公开(公告)号:US09959247B1

    公开(公告)日:2018-05-01

    申请号:US15496418

    申请日:2017-04-25

    Applicant: Google LLC

    CPC classification number: G06F17/16 G06F7/76 G06F9/30032 G06F9/30036

    Abstract: A circuit comprises an input register configured to receive an input vector of elements, a control register configured to receive a control vector of elements, wherein each element of the control vector corresponds to a respective element of the input vector, and wherein each element specifies a permutation of a corresponding element of the input vector, and a permute execution circuit configured to generate an output vector of elements corresponding to a permutation of the input vector. Generating each element of the output vector comprises accessing, at the input register, a particular element of the input vector, accessing, at the control register, a particular element of the control vector corresponding to the particular element of the input vector, and outputting the particular element of the input vector as an element at a particular position of the output vector that is selected based on the particular element of the control vector.

    Transposing in a matrix-vector processor

    公开(公告)号:US12182537B2

    公开(公告)日:2024-12-31

    申请号:US17175559

    申请日:2021-02-12

    Applicant: Google LLC

    Abstract: A circuit for transposing a matrix comprising reversal circuitry configured, for each of one or more diagonals of the matrix, to receive elements of the matrix in a first vector and generate a second vector that includes the elements of the matrix in an order that is a reverse of an order of the elements of the matrix in the first vector, and rotation circuitry configured, for each of the one or more diagonals of the matrix, to determine a number of positions by which to rotate the elements of the matrix in the second vector, receive the second vector of elements of the matrix, and generate a third vector that includes the elements of the matrix in the second vector in an order that is a rotation of the elements of the matrix in the second vector by the determined number of positions.

    Prefetching Weights For Use In A Neural Network Processor

    公开(公告)号:US20240062055A1

    公开(公告)日:2024-02-22

    申请号:US18386037

    申请日:2023-11-01

    Applicant: Google LLC

    Inventor: Jonathan Ross

    CPC classification number: G06N3/063 G06F15/8046

    Abstract: A circuit for performing neural network computations for a neural network, the circuit comprising: a systolic array comprising a plurality of cells; a weight fetcher unit configured to, for each of the plurality of neural network layers: send, for the neural network layer, a plurality of weight inputs to cells along a first dimension of the systolic array; and a plurality of weight sequencer units, each weight sequencer unit coupled to a distinct cell along the first dimension of the systolic array, the plurality of weight sequencer units configured to, for each of the plurality of neural network layers: shift, for the neural network layer, the plurality of weight inputs to cells along the second dimension of the systolic array over a plurality of clock cycles and where each cell is configured to compute a product of an activation input and a respective weight input using multiplication circuitry.

    Neural network processor
    24.
    发明授权

    公开(公告)号:US11049016B2

    公开(公告)日:2021-06-29

    申请号:US16824411

    申请日:2020-03-19

    Applicant: Google LLC

    Abstract: A circuit for performing neural network computations for a neural network comprising a plurality of neural network layers, the circuit comprising: a matrix computation unit configured to, for each of the plurality of neural network layers: receive a plurality of weight inputs and a plurality of activation inputs for the neural network layer, and generate a plurality of accumulated values based on the plurality of weight inputs and the plurality of activation inputs; and a vector computation unit communicatively coupled to the matrix computation unit and configured to, for each of the plurality of neural network layers: apply an activation function to each accumulated value generated by the matrix computation unit to generate a plurality of activated values for the neural network layer.

    PREFETCHING WEIGHTS FOR USE IN A NEURAL NETWORK PROCESSOR

    公开(公告)号:US20200218966A1

    公开(公告)日:2020-07-09

    申请号:US16826466

    申请日:2020-03-23

    Applicant: Google LLC

    Inventor: Jonathan Ross

    Abstract: A circuit for performing neural network computations for a neural network, the circuit comprising: a systolic array comprising a plurality of cells; a weight fetcher unit configured to, for each of the plurality of neural network layers: send, for the neural network layer, a plurality of weight inputs to cells along a first dimension of the systolic array; and a plurality of weight sequencer units, each weight sequencer unit coupled to a distinct cell along the first dimension of the systolic array, the plurality of weight sequencer units configured to, for each of the plurality of neural network layers: shift, for the neural network layer, the plurality of weight inputs to cells along the second dimension of the systolic array over a plurality of clock cycles and where each cell is configured to compute a product of an activation input and a respective weight input using multiplication circuitry.

    TRANSPOSING IN A MATRIX-VECTOR PROCESSOR
    26.
    发明申请

    公开(公告)号:US20200019380A1

    公开(公告)日:2020-01-16

    申请号:US16579604

    申请日:2019-09-23

    Applicant: Google LLC

    Abstract: A circuit for transposing a matrix comprising reversal circuitry configured, for each of one or more diagonals of the matrix, to receive elements of the matrix in a first vector and generate a second vector that includes the elements of the matrix in an order that is a reverse of an order of the elements of the matrix in the first vector, and rotation circuitry configured, for each of the one or more diagonals of the matrix, to determine a number of positions by which to rotate the elements of the matrix in the second vector, receive the second vector of elements of the matrix, and generate a third vector that includes the elements of the matrix in the second vector in an order that is a rotation of the elements of the matrix in the second vector by the determined number of positions.

    ROTATING DATA FOR NEURAL NETWORK COMPUTATIONS

    公开(公告)号:US20180107921A1

    公开(公告)日:2018-04-19

    申请号:US15792872

    申请日:2017-10-25

    Applicant: Google LLC

    CPC classification number: G06N3/063 G06F15/8046 G06N3/0454 G06N3/08 G06N5/04

    Abstract: 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.

    PERMUTING IN A MATRIX-VECTOR PROCESSOR
    28.
    发明公开

    公开(公告)号:US20240211534A1

    公开(公告)日:2024-06-27

    申请号:US18241805

    申请日:2023-09-01

    Applicant: Google LLC

    Abstract: A circuit comprises an input register configured to receive an input vector of elements, a control register configured to receive a control vector of elements, wherein each element of the control vector corresponds to a respective element of the input vector, and wherein each element specifies a permutation of a corresponding element of the input vector, and a permute execution circuit configured to generate an output vector of elements corresponding to a permutation of the input vector. Generating each element of the output vector comprises accessing, at the input register, a particular element of the input vector, accessing, at the control register, a particular element of the control vector corresponding to the particular element of the input vector, and outputting the particular element of the input vector as an element at a particular position of the output vector that is selected based on the particular element of the control vector.

    Prefetching weights for use in a neural network processor

    公开(公告)号:US11853865B2

    公开(公告)日:2023-12-26

    申请号:US17134936

    申请日:2020-12-28

    Applicant: Google LLC

    Inventor: Jonathan Ross

    CPC classification number: G06N3/063 G06F15/8046

    Abstract: A circuit for performing neural network computations for a neural network, the circuit comprising: a systolic array comprising a plurality of cells; a weight fetcher unit configured to, for each of the plurality of neural network layers: send, for the neural network layer, a plurality of weight inputs to cells along a first dimension of the systolic array; and a plurality of weight sequencer units, each weight sequencer unit coupled to a distinct cell along the first dimension of the systolic array, the plurality of weight sequencer units configured to, for each of the plurality of neural network layers: shift, for the neural network layer, the plurality of weight inputs to cells along the second dimension of the systolic array over a plurality of clock cycles and where each cell is configured to compute a product of an activation input and a respective weight input using multiplication circuitry.

    ROTATING DATA FOR NEURAL NETWORK COMPUTATIONS

    公开(公告)号:US20220172033A1

    公开(公告)日:2022-06-02

    申请号:US17520919

    申请日:2021-11-08

    Applicant: Google LLC

    Abstract: 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.

Patent Agency Ranking