What is an OPU?ΒΆ

An Optical Processing Unit is an analog computation device that performs operations using light.

The light beam is generated by a source and shaped by the input device. Then, it follows a complex optical path. It finally reaches the output device, which acquires the incident light intensity.

Using optics, we are accelerating a multiplication by a dense random matrix followed by an element-wise non-linearity:

\[\mathbf{Y} = \lvert \mathbf{x} \mathbf{R} \rvert^2 \mbox{ with } \mathbf{R} \mbox{ with complex i.i.d. gaussian entries.}\]

In our notation:

  • \(\mathbf{x}\) is the input, a row vector of size \((n)\), containing the binary pattern sent to the input device

  • \(\mathbf{y}\) is the output, a row vector of size \((m)\), containing uint8 data

  • \(\mathbf{R}\) is the random matrix of size \((n \times m)\), containing i.i.d. Gaussian complex values

This operation can scale to very large dimensions, determined by the input and output device capabilities.

When we build OPUs, we carry out a series of tests to make sure that the coefficients are i.i.d.: independent and identically distributed.