  Memory-centric computing aims to enable computation capability in and near
all places where data is generated and stored. As such, it can greatly reduce
the large negative performance and energy impact of data access and data
movement, by fundamentally avoiding data movement and reducing data access
latency & energy. Many recent studies show that memory-centric computing can
greatly improve system performance and energy efficiency. Major industrial
vendors and startup companies have also recently introduced memory chips that
have sophisticated computation capabilities.
  This talk describes promising ongoing research and development efforts in
memory-centric computing. We classify such efforts into two major fundamental
categories: 1) processing using memory, which exploits analog operational
properties of memory structures to perform massively-parallel operations in
memory, and 2) processing near memory, which integrates processing capability
in memory controllers, the logic layer of 3D-stacked memory technologies, or
memory chips to enable high-bandwidth and low-latency memory access to
near-memory logic. We show both types of architectures (and their combination)
can enable orders of magnitude improvements in performance and energy
consumption of many important workloads, such as graph analytics, databases,
machine learning, video processing, climate modeling, genome analysis. We
discuss adoption challenges for the memory-centric computing paradigm and
conclude with some research & development opportunities.
