Acoherent Shared Memory
Speaker: Derek Hower
Abstract:
Given the current trends in computing, it may be a good time to
rethink coherent memory in multicores. The extremes of computing where
we find multicores, like mobile devices and datacenters, have
drastically different characteristics than the discrete
multiprocessors where coherence emerged. Also, as architects pursue
deeper integration of accelerators like GPUs on die, full on-chip
coherence may no longer be optimal.
In addition to rethinking coherence because of ecosystem changes, we
show that coherence prevents a key opportunity for software to exploit
on-chip caches. Software runtimes that require isolation (e.g.,
transactional memory, database logs) usually make copies of data that
they modify -- copies which, ironically, may already exist in cache.
Because coherence hides caches from software, applications are forced
to make expensive and redundant copies, and consequently often require
hardware acceleration for good performance.
In this talk, we propose Acoherent Shared Memory (ASM), a new
abstraction that gives software control over how hardware manages
memory. ASM introduces the concept of acoherent memory that is neither
coherent (it allows multiple versions of the same address) nor
incoherent (hardware resolves differences when it matters). Acoherence
exposes private memory to threads, and uses a checkout/checkin
abstract to manage data movement between private and shared memory. We
show that ASM performs comparably to coherent systems for existing
workloads and can accelerate software data isolation up to 49%, paving
the way for fast software-only runtimes such as transactional memory.
