Preamble for PIM chapter
This commit is contained in:
@@ -1,9 +1,15 @@
|
||||
\section{Processing-in-Memory}
|
||||
\label{sec:pim}
|
||||
|
||||
% Allgemeiner overview hier...
|
||||
% wird seit 70ern diskutiert...
|
||||
% durch DNNs neuer Aufwind...
|
||||
In the conventional von Neumann architecture, compute is completely separated from memory.
|
||||
Memory-intensive workloads operate on a large data set, have poor spatial and temporal locality, and low operational density.
|
||||
As a consequence, the data movement between the memory and compute forms the so-called von Neumann bottleneck \cite{zou2021}.
|
||||
In the past, this bottleneck was hidden using latency hiding techniques such as out-of-order execution, branch prediction, and multiple layers of cache \cite{radojkovic2021}.
|
||||
However, new memory-intensive applications, including \acp{dnn}, have led researchers to reconsider \ac{pim} as a new approach to meet future processing demands.
|
||||
First proposals for \ac{pim} date back to the 1970s, were hindered by the limitations of existing memory systems, but are now experiencing a renaissance \cite{radojkovic2021,ghose2019a}.
|
||||
|
||||
In the following, the workloads suitable for \ac{pim} will be discussed in more detail, followed by an overview of the different types of \ac{pim} implementations.
|
||||
Finally, a number of concrete examples are presented.
|
||||
|
||||
\subsection{Applicable Workloads}
|
||||
\label{sec:pim_workloads}
|
||||
|
||||
Reference in New Issue
Block a user