US 12,456,049 B2
Compiler with an artificial neural network to optimize instructions generated for execution on a deep learning accelerator of artificial neural networks
Andre Xian Ming Chang, Seattle, WA (US); Aliasger Tayeb Zaidy, Seattle, WA (US); Marko Vitez, Trieste (IT); Michael Cody Glapa, Washington, DC (US); Abhishek Chaurasia, Seattle, WA (US); and Eugenio Culurciello, West Lafayette, IN (US)
Assigned to Micron Technology, Inc., Boise, ID (US)
Filed by Micron Technology, Inc., Boise, ID (US)
Filed on Nov. 6, 2020, as Appl. No. 17/092,040.
Prior Publication US 2022/0147812 A1, May 12, 2022
Int. Cl. G06N 3/08 (2023.01); G06F 8/41 (2018.01); G06N 3/04 (2023.01)
CPC G06N 3/08 (2013.01) [G06F 8/443 (2013.01); G06N 3/04 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A method, comprising:
receiving, in a computing apparatus, data representative of a description of a first artificial neural network;
selecting, by the computing apparatus using a second artificial neural network, a compilation option based on the first artificial neural network and based on adjustable hardware options of a device;
generating, by the computing apparatus from the data representative of the description of the first artificial neural network, a compiler output programmed to be executable on the device, wherein when executed on the device, the compiler output causes the device to generate an output of the first artificial neural network responsive to an input to the first artificial neural network; and
writing the compiler output to a memory of the device to adjust the hardware options of the device for implementing computations of the first artificial neural network to generate the output from the input;
wherein the device comprises an integrated circuit die of a field-programmable gate array or application specific integrated circuit implementing a deep learning accelerator, the deep learning accelerator comprising at least one processing unit configured to perform matrix operations and a control unit configured to load instructions from random access memory for execution.