Patents by Inventor Vignesh Vivekraja
Vignesh Vivekraja has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 12205013Abstract: 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.Type: GrantFiled: September 1, 2020Date of Patent: January 21, 2025Assignee: Amazon Technologies, Inc.Inventors: Thiam Khean Hah, Randy Renfu Huang, Richard John Heaton, Ron Diamant, Vignesh Vivekraja
-
Patent number: 12182695Abstract: A systolic array can implement an architecture tailored to perform matrix multiplications on sparse matrices. Each processing element in the systolic array may include a register configured to store a value, and a multiplexor configured to select an input element from multiple input data buses based on metadata associated with the value. Each processing element may also include a multiplier configured to multiply the selected input element with the value to generate a multiplication result, and an adder configured to add the multiplication result to a partial sum input to generate a partial sum output.Type: GrantFiled: September 25, 2023Date of Patent: December 31, 2024Assignee: Amazon Technologies, Inc.Inventors: Paul Gilbert Meyer, Thiam Khean Hah, Randy Renfu Huang, Ron Diamant, Vignesh Vivekraja
-
Publication number: 20240403646Abstract: Methods and systems for training a neural network are provided. In one example, an apparatus comprises a memory that stores instructions; and a hardware processor configured to execute the instructions to: control a neural network processor to perform a loss gradient operation to generate data gradients; after the loss gradient operation completes, control the neural network processor to perform a forward propagation operation to generate intermediate outputs; control the neural network processor to perform a backward propagation operation based on the data gradients and the intermediate outputs to generate weight gradients; receive the weight gradients from the neural network processor; and update weights of a neural network based on the weight gradients.Type: ApplicationFiled: August 8, 2024Publication date: December 5, 2024Inventors: Sudipta Sengupta, Randy Renfu Renfu, Ron Diamant, Vignesh Vivekraja
-
Patent number: 12159218Abstract: A single instruction multiple data (SIMD) processor is used to implement a dropout layer between a first layer and a second layer of a neural network. The SIMD processor can implement the dropout layer by setting one or more elements in an output tensor of the first layer to zero before providing it as an input tensor to the second layer. Setting of the one or more elements to zero is based on a dropout rate, and pseudo-random numbers generated by a random number generator in the SIMD processor.Type: GrantFiled: July 27, 2020Date of Patent: December 3, 2024Assignee: Amazon Technologies, Inc.Inventors: Jiading Gai, Hongbin Zheng, Animesh Jain, Randy Renfu Huang, Vignesh Vivekraja
-
Patent number: 12130885Abstract: To take advantage of the architecture of a systolic array tailored to perform sparse matrix multiplications, a weight matrix can be converted into a set of constrained fine-grained sparse weight matrices. The conversion process may include receiving a request to perform a matrix multiplication operation with a weight matrix, and determining that the weight matrix satisfies a sparsity condition to convert the weight matrix into a set of constrained fine-grained sparse weight matrices. The weight matrix can then be converted into a set of constrained fine-grained sparse weight matrices. Computer instructions can then be generated for an integrated circuit device to perform the requested matrix multiplication operation as a set of sparse matrix multiplication operations using the set of constrained fine-grained sparse weight matrices.Type: GrantFiled: November 3, 2022Date of Patent: October 29, 2024Assignee: Amazon Technologies, Inc.Inventors: Paul Gilbert Meyer, Thiam Khean Hah, Randy Renfu Huang, Ron Diamant, Vignesh Vivekraja
-
Patent number: 12106222Abstract: Methods and systems for training a neural network are provided. In one example, an apparatus comprises a memory that stores instructions; and a hardware processor configured to execute the instructions to: control a neural network processor to perform a loss gradient operation to generate data gradients; after the loss gradient operation completes, control the neural network processor to perform a forward propagation operation to generate intermediate outputs; control the neural network processor to perform a backward propagation operation based on the data gradients and the intermediate outputs to generate weight gradients; receive the weight gradients from the neural network processor; and update weights of a neural network based on the weight gradients.Type: GrantFiled: February 21, 2023Date of Patent: October 1, 2024Assignee: Amazon Technologies, Inc.Inventors: Sudipta Sengupta, Randy Renfu Huang, Ron Diamant, Vignesh Vivekraja
-
Patent number: 12073199Abstract: In various implementations, provided are systems and methods for reducing neural network processing. A compiler may generate instructions from source code for a neural network having a repeatable set of operations. The instructions may include a plurality of blocks. The compiler may add an overwrite instruction to the plurality of blocks that, when executed by one or more execution engines, triggers an overwrite action. The overwrite action causes the instructions of subsequent blocks to be overwritten with NOP instructions. The overwrite action is triggered only when a condition is satisfied.Type: GrantFiled: June 6, 2019Date of Patent: August 27, 2024Assignee: Amazon Technologies, Inc.Inventors: Vignesh Vivekraja, Randy Renfu Huang, Yu Zhou, Ron Diamant, Richard John Heaton
-
Publication number: 20240232630Abstract: Methods and systems for performing a training operation of a neural network are provided. In one example, a method comprises: performing backward propagation computations for a second layer of a neural network to generate second weight gradients; splitting the second weight gradients into portions; causing a hardware interface to exchange a first portion of the second weight gradients with the second computer system; performing backward propagation computations for a first layer of the neural network to generate first weight gradients when the exchange of the first portion of the second weight gradients is underway, the first layer being a lower layer than the second layer in the neural network; causing the hardware interface to transmit the first weight gradients to the second computer system; and causing the hardware interface to transmit the remaining portions of the second weight gradients to the second computer system.Type: ApplicationFiled: July 13, 2023Publication date: July 11, 2024Inventors: Vignesh Vivekraja, Thiam Khean Hah, Randy Renfu Huang, Ron Diamant, Richard John Heaton
-
Publication number: 20240220281Abstract: In one embodiment, a method includes accessing a computational graph representing computations to be executed on a computing system comprising a plurality of Execution Units (EUs), identifying a set of candidate mapped-graphs for the computational graph, where each node in a candidate mapped-graph is mapped to an EU capable of calculating the node, ensuring that each edge from a first node to a second node in each candidate mapped-graph satisfies memory constraints, determining an expected cost for executing each candidate mapped-graph using mapped-EUs in the candidate mapped-graph for calculating respective nodes, and selecting a candidate mapped-graph with a least expected cost from the set of candidate mapped-graphs.Type: ApplicationFiled: November 30, 2023Publication date: July 4, 2024Inventors: Vignesh Vivekraja, Tomonari Tohara, Reza Tusi, Abuduwaili Tuoheti, Weiping Liu, Javid Jaffari
-
Publication number: 20240220256Abstract: In one embodiment, a computing system may load data from a memory unit into a number of registers according to a first order by which the data is arranged. The registers may be configured to be accessed during a single operation cycle. The system may determine a second order for the data based on one or more subsequent operations to process the data. The system may read the data from the registers according to the second order during one or more operation cycles. The data read from the registers may be arranged in the second order. The system may transmit the data arranged in the second order to an execution unit configured to execute the one or more subsequent operations to process the data arranged in the second order.Type: ApplicationFiled: November 30, 2023Publication date: July 4, 2024Inventors: Reza Tusi, Tomonari Tohara, Vignesh Vivekraja, Javid Jaffari
-
Publication number: 20240220259Abstract: In one embodiment, a computing system may set data to a first group of registers. The first group of registers may be configured to be accessed during a single operation cycle. The system may set a number of patterns to a second group of registers. Each pattern of the number of patterns may include an array of index for the data stored in the first group of registers. The system may select, for a first vector register associated with a vector engine, a first pattern from the patterns stored in the second group of registers. The system may load a first portion of the data from the first group of registers to the first vector register based on the first pattern selected for the first vector register from the patterns stored in the second group of registers.Type: ApplicationFiled: November 30, 2023Publication date: July 4, 2024Inventors: Tomonari Tohara, Vignesh Vivekraja, Alagappan Valliappan, Andrey Bushev, Javid Jaffari
-
Publication number: 20240220779Abstract: In one embodiment, a system comprising a processor and a non-transitory memory coupled to the processor comprising instructions executable by the processor. The processor, comprising an internal memory; a Multiply-Accumulate (MAC) array; a first vector register array; a second vector register array; and a third vector register array, is operable when executing instructions to transfer weights for M filters and an input activation tensor from an external memory to the internal memory, insert paddings to the input activation tensor in the internal memory based on first configuration parameters, configure the MAC array to a required shape based on second configuration parameters for convolution operations between the input activation tensor and the M filters, and calculate a row of the output activation tensor by performing the convolution operations on corresponding R rows of the input activation tensor with the M filters, wherein R is a filter height.Type: ApplicationFiled: December 1, 2023Publication date: July 4, 2024Inventors: Vignesh Vivekraja, Tomonari Tohara, Reza Tusi, Abuduwaili Tuoheti, Javid Jaffari, Vlad Fruchter, David Vakrat, Ohad Meitav
-
Publication number: 20240220273Abstract: In one embodiment, a system comprising a processor and a non-transitory memory coupled to the processor comprising instructions executable by the processor. The processor, comprising an internal memory; a Multiply-Accumulate (MAC) array; a first vector register array; a second vector register array; and a third vector register array, is operable when executing a first instruction among the instructions to feed a weight vector array from the second vector register array to the MAC array, broadcast an input activation vector to the MAC array, multiply an input activation value broadcast to the MAC unit from the input activation vector and a weight value fed to the MAC unit from the weight vector array at each MAC unit in the MAC array, and store a partial output activation vector to the third vector register array, wherein the partial output activation vector is the output of the MAC array.Type: ApplicationFiled: December 1, 2023Publication date: July 4, 2024Inventors: Vignesh Vivekraja, Tomonari Tohara, Reza Tusi, Abuduwaili Tuoheti, Javid Jaffari, Vlad Fruchter, David Vakrat, Ohad Meitav
-
Patent number: 12008469Abstract: A single neural network model can be used by each computing engine (CE) in a neural network processor to perform convolution operations in parallel for one or more stacks of convolutional layers. An input feature map can be divided into N chunks to be processed by N CEs, respectively. Each CE can process a last portion of a respective chunk to generate respective shared states to be used by a subsequent CE. A first CE uses pre-computed states to generate a first portion of an output feature map, while other CEs use shared states computed by a preceding CE to generate respective portions of the output feature map.Type: GrantFiled: September 1, 2020Date of Patent: June 11, 2024Assignee: Amazon Technologies, Inc.Inventors: Thiam Khean Hah, Randy Renfu Huang, Richard John Heaton, Ron Diamant, Vignesh Vivekraja
-
Patent number: 11954583Abstract: In one example, a neural network accelerator can execute a set of instructions to: load a first weight data element from a memory into a systolic array, the first weight data element having first coordinates; extract, from the instructions, information indicating a first subset of input data elements to be obtained from the memory, the first subset being based on a stride of a transposed convolution operation and second coordinates of first weight data element in a rotated array of weight data elements; based on the information, obtain the first subset of input data elements from the memory; load the first subset of input data elements into the systolic array; and control the systolic array to perform first computations based on the first weight data element and the first subset of input data elements to generate output data elements of an array of output data elements.Type: GrantFiled: April 14, 2023Date of Patent: April 9, 2024Assignee: Amazon Technologies, Inc.Inventors: Jeffrey T Huynh, Vignesh Vivekraja
-
Patent number: 11941528Abstract: Methods and systems for performing a training operation of a neural network are provided. In one example, a method comprises: performing backward propagation computations for a second layer of a neural network to generate second weight gradients; splitting the second weight gradients into portions; causing a hardware interface to exchange a first portion of the second weight gradients with the second computer system; performing backward propagation computations for a first layer of the neural network to generate first weight gradients when the exchange of the first portion of the second weight gradients is underway, the first layer being a lower layer than the second layer in the neural network; causing the hardware interface to transmit the first weight gradients to the second computer system; and causing the hardware interface to transmit the remaining portions of the second weight gradients to the second computer system.Type: GrantFiled: September 30, 2019Date of Patent: March 26, 2024Assignee: Amazon Technologies, Inc.Inventors: Vignesh Vivekraja, Thiam Khean Hah, Randy Renfu Huang, Ron Diamant, Richard John Heaton
-
Patent number: 11803736Abstract: A systolic array can implement an architecture tailored to perform matrix multiplications on constrained fine-grained sparse weight matrices. Each processing element in the systolic array may include a weight register configured to store a weight value, and a multiplexor configured to select a feature map (FMAP) input element from multiple FMAP input data buses based on metadata associated with the weight value. Each processing element may also include a multiplier configured to multiply the selected feature map input element with the weight value to generate a multiplication result, and an adder configured to add the multiplication result to a partial sum input to generate a partial sum output.Type: GrantFiled: June 30, 2020Date of Patent: October 31, 2023Assignee: Amazon Technologies, Inc.Inventors: Paul Gilbert Meyer, Thiam Khean Hah, Randy Renfu Huang, Ron Diamant, Vignesh Vivekraja
-
Publication number: 20230306249Abstract: In one example, a neural network accelerator can execute a set of instructions to: load a first weight data element from a memory into a systolic array, the first weight data element having first coordinates; extract, from the instructions, information indicating a first subset of input data elements to be obtained from the memory, the first subset being based on a stride of a transposed convolution operation and second coordinates of first weight data element in a rotated array of weight data elements; based on the information, obtain the first subset of input data elements from the memory; load the first subset of input data elements into the systolic array; and control the systolic array to perform first computations based on the first weight data element and the first subset of input data elements to generate output data elements of an array of output data elements.Type: ApplicationFiled: April 14, 2023Publication date: September 28, 2023Inventors: Jeffrey T Huynh, Vignesh Vivekraja
-
Patent number: 11681902Abstract: In one example, a neural network accelerator can execute a set of instructions to: load a first weight data element from a memory into a systolic array, the first weight data element having first coordinates; extract, from the instructions, information indicating a first subset of input data elements to be obtained from the memory, the first subset being based on a stride of a transposed convolution operation and second coordinates of first weight data element in a rotated array of weight data elements; based on the information, obtain the first subset of input data elements from the memory; load the first subset of input data elements into the systolic array; and control the systolic array to perform first computations based on the first weight data element and the first subset of input data elements to generate output data elements of an array of output data elements.Type: GrantFiled: September 27, 2019Date of Patent: June 20, 2023Assignee: Amazon Technologies, Inc.Inventors: Jeffrey T Huynh, Vignesh Vivekraja
-
Patent number: 11610128Abstract: Methods and systems for training a neural network are provided. In one example, an apparatus comprises a memory that stores instructions; and a hardware processor configured to execute the instructions to: control a neural network processor to perform a loss gradient operation to generate data gradients; after the loss gradient operation completes, control the neural network processor to perform a forward propagation operation to generate intermediate outputs; control the neural network processor to perform a backward propagation operation based on the data gradients and the intermediate outputs to generate weight gradients; receive the weight gradients from the neural network processor; and update weights of a neural network based on the weight gradients.Type: GrantFiled: March 31, 2020Date of Patent: March 21, 2023Assignee: Amazon Technologies, Inc.Inventors: Sudipta Sengupta, Randy Renfu Huang, Ron Diamant, Vignesh Vivekraja