| CPC G06N 3/08 (2013.01) [G06F 8/443 (2013.01); G06N 3/04 (2013.01)] | 19 Claims | 

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