  The emerging memristive Memory Processing Unit (mMPU) overcomes the memory
wall through memristive devices that unite storage and logic for real
processing-in-memory (PIM) systems. At the core of the mMPU is stateful logic,
which is accelerated with memristive partitions to enable logic with massive
inherent parallelism within crossbar arrays. This paper vastly accelerates the
fundamental operations of matrix-vector multiplication and convolution in the
mMPU, with either full-precision or binary elements. These proposed algorithms
establish an efficient foundation for large-scale mMPU applications such as
neural-networks, image processing, and numerical methods. We overcome the
inherent asymmetry limitation in the previous in-memory full-precision
matrix-vector multiplication solutions by utilizing techniques from block
matrix multiplication and reduction. We present the first fast in-memory binary
matrix-vector multiplication algorithm by utilizing memristive partitions with
a tree-based popcount reduction (39x faster than previous work). For
convolution, we present a novel in-memory input-parallel concept which we
utilize for a full-precision algorithm that overcomes the asymmetry limitation
in convolution, while also improving latency (2x faster than previous work),
and the first fast binary algorithm (12x faster than previous work).
