Accelerated convolution of neural networks

    公开(公告)号:US12205013B1

    公开(公告)日:2025-01-21

    申请号:US17009483

    申请日:2020-09-01

    Abstract: Accelerated convolution of neural networks can be performed by executing N computing engines (CEs) of a neural network processor in parallel. An input dataset can be divided spatially into N chunks such that a respective last portion of each chunk overlaps with a respective first portion of a subsequent chunk. Portions of each chunk can be processed by a respective CE to generate a respective portion of an output dataset. The overlapping intermediate states computed by each CE from processing the overlapping portion can be stored locally for sharing with a subsequent CE using an on-chip bus.

    Matrix transpose hardware acceleration

    公开(公告)号:US12141468B1

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

    申请号:US17875805

    申请日:2022-07-28

    Abstract: In one example, an apparatus comprises: a memory array having an array of memory elements arranged in rows and columns, each memory element being configured to store a data element; and a memory access circuit configured to: perform a row write operation to store a first group of data elements at a first row of the array of memory elements; perform a column read operation at a first column of the array of memory elements to obtain a second group of data elements; and perform a column write operation to store a third group of data elements at the first column of the array of memory elements to replace the second group of data elements.

    Memory operation for systolic array

    公开(公告)号:US12026607B1

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

    申请号:US17964291

    申请日:2022-10-12

    CPC classification number: G06N3/063 G06F15/8046 G06N3/02

    Abstract: A neural network accelerator executes instructions to: load a first weight data element of an array of weight data elements from a memory into a systolic array; extract, from the instructions, information indicating a first number of input data elements to be obtained from a first address of the memory and a second number of input data elements to be skipped between adjacent input data elements to be obtained, the first address being based on first coordinates of the first weight data element, and the first and second numbers being based on a stride of a convolution operation; based on the information, obtain first input data elements from the first address of the memory; and control the systolic array to perform first computations based on the first weight data element and the first input data elements to generate first output data elements of an output data array.

    Circuit architecture with biased randomization

    公开(公告)号:US11960997B1

    公开(公告)日:2024-04-16

    申请号:US17570673

    申请日:2022-01-07

    CPC classification number: G06N3/08 G06N7/01

    Abstract: Disclosed herein are techniques for classifying data with a data processing circuit. In one embodiment, the data processing circuit includes a probabilistic circuit configurable to generate a decision at a pre-determined probability, and an output generation circuit including an output node and configured to receive input data and a weight, and generate output data at the output node for approximating a product of the input data and the weight. The generation of the output data includes propagating the weight to the output node according a first decision of the probabilistic circuit. The probabilistic circuit is configured to generate the first decision at a probability determined based on the input data.

    Dynamic processing element array expansion

    公开(公告)号:US11868895B2

    公开(公告)日:2024-01-09

    申请号:US18154576

    申请日:2023-01-13

    CPC classification number: G06N3/08 G06N3/04

    Abstract: A computer-implemented method includes receiving a neural network model that includes a tensor operation, dividing the tensor operation into a set of sub-operations, and generating instructions for performing a plurality of sub-operations of the set of sub-operations on respective computing engines of a plurality of computing engines on a same integrated circuit device or on different integrated circuit devices. Each sub-operation of the set of sub-operations generates a portion of a final output of the tensor operation. An inference is made based on a result of a sub-operation of the plurality of sub-operations, or based on results of the plurality of sub-operations.

    Color selection schemes for storage allocation

    公开(公告)号:US11775268B1

    公开(公告)日:2023-10-03

    申请号:US17341762

    申请日:2021-06-08

    Abstract: A compiler-implemented technique for performing a storage allocation is described. Computer code to be converted into machine instructions for execution on an integrated circuit device is received. The integrated circuit device includes a memory having a set of memory locations. Based on the computer code, a set of values that are to be stored on the integrated circuit device are determined. An interference graph that includes the set of values and a set of interferences is constructed. While traversing the interference graph, a set of memory location assignments are generated by assigning the set of values to the set of memory locations in accordance with one or more color selection schemes.

Patent Agency Ranking