NeuFlow is a new concept in computer architecture that is particularly
well-suited for tasks in which the same set of operations is applied
to a large number of data items, particularly to a stream of data.
Our instatiation of NeuFlow is geared towards the kind of operations
that occur in computer vision and image procesing systems.
In particular, our implementations of the NeuFlow concept can
run Convolutional Network algorithms at very high speed.

A NeuFlow architecture can be seen as a grid of processing elements
(tiles) that are connected to their neighbors through FIFOs and can be
configured to perform a number of operations (e.g. multiplication,
addition, scalar function through an interpolated lookup table, etc).
Once the grid is configured, a stream of data can be pumped through it
a maximum speed, without any instruction control. It is reminiscent of
some dataflow architecture concepts from the 70's and 80's.

For example, a NeuFlow grid can be configured to perform a 2D
convolution followed by a non-linear function, and a pooling
subsampling, as is required for feature extraction methods such as
SIFT, HOG, HMAX, and Convolutional Networks.

Clément Farabet, Berin Martini, Polina Akselrod, Selçuk Talay, Yann LeCun and Eugenio Culurciello: Hardware Accelerated Convolutional Neural Networks for Synthetic Vision Systems, Proc. International Symposium on Circuits and Systems (ISCAS'10), IEEE, 2010, \cite{farabet-iscas-10}.

Yann LeCun, Koray Kavukvuoglu and Clément Farabet: Convolutional Networks and Applications in Vision, Proc. International Symposium on Circuits and Systems (ISCAS'10), IEEE, 2010, \cite{lecun-iscas-10}.

Clément Farabet, Cyril poulet, Jefferson Y. Han and Yann LeCun: CNP: An FPGA-based Processor for Convolutional Networks, International Conference on Field Programmable Logic and Applications, IEEE, Prague, September 2009, \cite{farabet-fpl-09}.