Patents Assigned to Neuralmagic Inc.
  • Patent number: 10832133
    Abstract: A system and method of inferring a neural network (NN) on one or more target computing devices. The NN may include a plurality of layers, where at least one layer includes one or more kernels. Embodiments may include: receiving a data structure representing the NN; analyzing the data structure to produce one or more tasks, where each task may include computations pertaining to a kernel of the NN; selecting a sparse version of at least one kernel and replacing the at least one kernel with the sparse version; and compiling the one or more tasks to produce one or more respective tensor columns, The one or more tensor columns are adapted to fit in respective one or more cache memories of the one or more target computing devices, and include task instruction code that represents at least one computation of the kernel of the NN.
    Type: Grant
    Filed: January 24, 2020
    Date of Patent: November 10, 2020
    Assignee: NEURALMAGIC INC.
    Inventors: Alexander Matveev, Nir Shavit
  • Publication number: 20200218978
    Abstract: A system and method of executing a convolution layer of a neural network may include: (a) selecting an output spatial position (OSP) of an output matrix data element of the convolution layer; (b) selecting, based on the selected OSP, a non-zero input element of an input matrix data element; (c) producing, based on the selected OSP, a vector of kernel elements from a kernel matrix data element; (d) performing a vectoral multiplication operation of the selected non-zero input element and the vector of kernel elements, and accumulating a product of the vectoral multiplication in a vector register of a processor; (e) repeating (c) and (d) with subsequent non-zero input elements and corresponding vectors of kernel elements to obtain an outcome of the convolution of the selected OSP; and (f) repeating (a) through (e) with subsequent selection of OSPs, to obtain an outcome of the convolution layer.
    Type: Application
    Filed: January 8, 2020
    Publication date: July 9, 2020
    Applicant: Neuralmagic Inc.
    Inventor: Justin KOPINSKY
  • Publication number: 20200160181
    Abstract: A system and method may generate code to be used when executing neural networks (NNs), for example convolutional neural networks (CNNs) which may include one or more convolutional layers. For at least one convolutional layer, for each non-zero element in a kernel tensor or matrix associated with the convolutional layer, instructions may be generated or issued. For example, for each non-zero element, a vector broadcast instruction may be generated, and a fused multiply-add (FMA) instruction may be generated, having as parameters a register representing a portion of the output for the convolutional layer, a register storing input data for the convolutional layer, and a register or reference to memory storing the non-zero element. The software or code produced may be executed during convolutional operations, for example as part of a larger application such as a NN inference application.
    Type: Application
    Filed: January 24, 2020
    Publication date: May 21, 2020
    Applicant: Neuralmagic Inc.
    Inventors: Aleksandar ZLATESKI, Justin KOPINSKY
  • Publication number: 20200160182
    Abstract: A system and method of inferring a neural network (NN) on one or more target computing devices. The NN may include a plurality of layers, where at least one layer includes one or more kernels. Embodiments may include: receiving a data structure representing the NN; analyzing the data structure to produce one or more tasks, where each task may include computations pertaining to a kernel of the NN; selecting a sparse version of at least one kernel and replacing the at least one kernel with the sparse version; and compiling the one or more tasks to produce one or more respective tensor columns, The one or more tensor columns are adapted to fit in respective one or more cache memories of the one or more target computing devices, and include task instruction code that represents at least one computation of the kernel of the NN.
    Type: Application
    Filed: January 24, 2020
    Publication date: May 21, 2020
    Applicant: Neuralmagic Inc.
    Inventors: Alexander MATVEEV, Nir Shavit, Aleksandar Zlateski
  • Publication number: 20200104717
    Abstract: Training a neural network (NN) may include training a NN N, and for S, a version of N to be sparsified (e.g. a copy of N), removing NN elements from S to create a sparsified version of S, and training S using outputs from N (e.g. “distillation”). A boosting or reintroduction phase may follow sparsification: training a NN may include for a trained NN N and S, a sparsified version of N, re-introducing NN elements previously removed from S, and training S using outputs from N. The boosting phase need not use a NN sparsified by “distillation.” Training and sparsification, or training and reintroduction, may be performed iteratively or over repetitions.
    Type: Application
    Filed: September 26, 2019
    Publication date: April 2, 2020
    Applicant: Neuralmagic Inc.
    Inventor: Dan ALISTARH
  • Publication number: 20190370071
    Abstract: A method and system for computing one or more outputs of a neural network having a plurality of layers is provided. The method and system can include determining a plurality of sub-computations from total computations of the neural network to execute in parallel wherein the computations to execute in parallel involve computations from multiple layers. The method and system also can also include avoiding repeating overlapped computations and/or multiple memory reads and writes during execution.
    Type: Application
    Filed: May 30, 2019
    Publication date: December 5, 2019
    Applicant: Neuralmagic Inc.
    Inventors: Alexander Matveev, Nir Shavit
  • Publication number: 20190156215
    Abstract: Systems and methods may make exchanging data in a neural network (NN) during training more efficient. Exchanging weights among a number of processors training a NN across iterations may include sorting generated weights, compressing the sorted weights, and transmitting the compressed sorted weights. On each Kth iteration a sort order of the sorted weights may be created and transmitted. Exchanging weights among processors training a NN may include executing a forward pass to produce a set of loss values for processors, transmitting loss values to other processors, and at each of the processors, performing backpropagation on at least one layer of the NN using loss values received from other processors.
    Type: Application
    Filed: November 16, 2018
    Publication date: May 23, 2019
    Applicant: Neuralmagic Inc.
    Inventors: Alexander MATVEEV, Nir SHAVIT
  • Publication number: 20190138902
    Abstract: A system and method for an improved convolutional layer in convolutional neural networks is provided. The convolution is performed via a transformation that includes relocating input, relocating convolution filters and performing an aggregate matrix multiply.
    Type: Application
    Filed: November 6, 2018
    Publication date: May 9, 2019
    Applicant: Neuralmagic Inc.
    Inventors: Alexander Matveev, Nir Shavit