  Data movement between main memory and the processor is a significant
contributor to the execution time and energy consumption of memory-intensive
applications. This data movement bottleneck can be alleviated using
Processing-in-Memory (PiM), which enables computation inside the memory chip.
However, existing PiM architectures often lack support for complex operations,
since supporting these operations increases design complexity, chip area, and
power consumption.
  We introduce pLUTo (processing-in-memory with lookup table [LUT] operations),
a new DRAM substrate that leverages the high area density of DRAM to enable the
massively parallel storing and querying of lookup tables (LUTs). The use of
LUTs enables the efficient execution of complex operations in-memory, which has
been a long-standing challenge in the domain of PiM. When running a
state-of-the-art binary neural network in a single DRAM subarray, pLUTo
outperforms the baseline CPU and GPU implementations by $33\times$ and
$8\times$, respectively, while simultaneously achieving energy savings of
$110\times$ and $80\times$.
