CLOUD-BASED NEURAL NETWORKS
A multi-processor system for data processing may utilize a plurality of different types of neural network processors to perform, e.g., learning and pattern recognition. The system may also include a scheduler, which may select from the available units for executing the neural network computations, which units may include standard multi-processors, graphic processor units (GPUs), virtual machines, or neural network processing architectures with fixed or reconfigurable interconnects.
1 . A cloud-based neural network system for performing pattern recognition tasks, the system comprising:
a heterogeneous combination of neural network processors, wherein the heterogeneous combination of neural network processors includes at least two neural network processors selected from the group consisting of:
a reconfigurable interconnect neural network processor;
a fixed-architecture neural network processor;
a graphic processor unit;
a multi-processor unit; and
a virtual machine;
wherein each neural network processor includes a plurality of processing units.
2 . The system as in claim 1 , wherein a respective pattern recognition task is assigned to execute on one of the neural network processors.
3 . The system as in claim 2 , wherein assignment of pattern recognition tasks is balanced to minimize the cost of processing.
4 . The system as in claim 1 , further comprising:
a user application programming interface (API);
an engineering API; and
an administration API.
5 . The system as in claim 1 , wherein a respective pattern recognition task is executed using a neural network comprising multiple layers of nodes.
6 . The system as in claim 5 , wherein a respective layer of the multiple layers of nodes is executed on a different neural network processor from at least one other respective layer of the multiple layers of nodes.
7 . The system as in claim 6 , wherein one or more results from a respective neural network processor are pipelined to a successive neural network processor.
8 . The system as in claim 7 , wherein a respective neural network processor synchronously executes its respective layer of the multiple layers of nodes.
9 . The system as in claim 5 , wherein a respective neural network processor includes a plurality of inner product units (IPUs); and wherein at least one node is executed on more than one IPU.
10 . The system as in claim 5 , wherein a respective neural network processor contains a plurality of IPUs; and wherein at least one IPU executes more than one node.
11 . A neural network processor, comprising:
a plurality of inner product units (IPUs), wherein a respective IPU performs at least one of:
successive fixed-point multiply and add operations;
successive floating-point multiply and add operations;
successive sum operations; or
successive compare operations;
12 . The neural network processor as in claim 11 , wherein a respective IPU is configured to output, after all input values to the neural network processor have been processed, a result selected from the group consisting of:
a fixed-point result;
a floating-point result;
an average;
a maximum; and
a minimum.
13 . The neural network processor as in claim 11 , further comprising:
an input bus; and
an output bus,
wherein at least one word is simultaneously placed each of the input bus and the output bus.
14 . A method of testing a neural network using a neural network test case comprising input data, intermediate outputs for respective levels of the neural network, final outputs, and a multi-word checksum, the method comprising:
condensing the input data, intermediate outputs and final outputs into an output checksum; and
comparing the output checksum with the multi-word checksum.
15 . The method as in claim 14 , wherein the condensing is performed using an exclusive-or function.
16 . The method as in claim 14 , wherein the output checksum and the multi-word checksum comprise a same number of words, and wherein the comparing comprises comparing a respective output checksum word with a corresponding multi-word checksum word.
17 . A hierarchical processing network, comprising:
a plurality of neural network configurations in a hierarchical organization,
wherein the neural network configurations are configured to perform successive levels of pattern recognition, wherein each successive level is a more specific pattern recognition than a previous level.