  Systems integrating heterogeneous processors with unified memory provide
seamless integration among these processors with minimal development
complexity. These systems integrate accelerators such as GPUs on the same die
with CPU cores to accommodate running parallel applications with varying levels
of parallelism. Such integration is becoming very common on modern chip
architectures, and it places a burden (or opportunity) on application and
system programmers to utilize the full potential of such integrated chips. In
this paper we evaluate whether we can obtain any performance benefits from
running garbage collection on integrated GPU systems, and discuss how difficult
it would be to realize these gains for the programmer.
  Proliferation of garbage-collected languages running on a variety of
platforms from handheld mobile devices to data centers makes garbage collection
an interesting target to examine on such platforms and can offer valuable
lessons for other applications. We present our analysis of running garbage
collection on integrated systems and find that the current state of these
systems does not provide an advantage for accelerating such a task. We build a
framework that allows us to offload garbage collection tasks on integrated GPU
systems from within the JVM. We identify dominant phases of garbage collection
and study the viability of offloading them to the integrated GPU. We show that
performance advantages are limited, partly because an integrated GPU has
limited advantage in memory bandwidth over the CPU, and partly because of
costly atomic operations.
