Javascript must be enabled to continue!
Performance Implications of Pipelining the Data Transfer in CPU-GPU Heterogeneous Systems
View through CrossRef
Driven by the increasing demands of machine learning, heterogeneous systems combining CPUs and GPUs have emerged as the dominant architecture for parallel computing in recent years. To optimize memory management and data transfer between CPUs and GPUs, Nvidia GPUs have introduced unified virtual memory (
UVM
) and pinned memory (
PM
) over the last decade.
UVM
can avoid explicit memory copies and potentially overlap GPU kernel computations with CPU-GPU data transfer.
PM
ensures that data with high locality remains in the main memory, preventing it from being paged out. In addition to these two techniques, asynchronous memory copy (
Async Memcpy
) was introduced recently in Nvidia GPUs to improve the CPU-GPU pipeline further. By utilizing
Async Memcpy
, the data transfer from GPU global memory to shared memory can be overlapped with GPU computations, adding an additional stage to the CPU-GPU data transfer pipeline. A thorough performance analysis of how
Async Memcpy
affects the current
UVM
and
PM
CPU-GPU data transfer scheme is desired.
In this article, we provide performance implications of the combined effect of
UVM
,
PM
, and
Async Memcpy
, exploring which applications benefit from which combination of these features. We implement all these features on a suite of 25 workloads, including microbenchmarks and realworld applications. We observe an average performance gain of 24% when utilizing
UVM
and a 34% gain when employing
PM
on realworld applications, compared to not applying any data transfer optimization techniques. The performance benefits of
Async Memcpy
vary across different workloads. For workloads featuring extensive shared memory usage and high compute density (e.g.,
kmeans
and
lud
),
Async Memcpy
delivers around a 20% performance improvement over using
UVM
or
PM
alone. In other workloads like
knn
, we note a 20% performance degradation when using
Async Memcpy
. Furthermore, we conduct an in-depth investigation of the GPU kernel using performance counters to uncover the root causes of performance differences among various data transfer models. We also perform sensitivity analyses to examine how the number of blocks and threads, as well as the L1-cache/shared memory partitioning, impact performance. We explore future research directions aimed at enhancing the data transfer pipeline by overlapping memory allocation with data transfer and computation across GPU kernels.
Association for Computing Machinery (ACM)
Title: Performance Implications of Pipelining the Data Transfer in CPU-GPU Heterogeneous Systems
Description:
Driven by the increasing demands of machine learning, heterogeneous systems combining CPUs and GPUs have emerged as the dominant architecture for parallel computing in recent years.
To optimize memory management and data transfer between CPUs and GPUs, Nvidia GPUs have introduced unified virtual memory (
UVM
) and pinned memory (
PM
) over the last decade.
UVM
can avoid explicit memory copies and potentially overlap GPU kernel computations with CPU-GPU data transfer.
PM
ensures that data with high locality remains in the main memory, preventing it from being paged out.
In addition to these two techniques, asynchronous memory copy (
Async Memcpy
) was introduced recently in Nvidia GPUs to improve the CPU-GPU pipeline further.
By utilizing
Async Memcpy
, the data transfer from GPU global memory to shared memory can be overlapped with GPU computations, adding an additional stage to the CPU-GPU data transfer pipeline.
A thorough performance analysis of how
Async Memcpy
affects the current
UVM
and
PM
CPU-GPU data transfer scheme is desired.
In this article, we provide performance implications of the combined effect of
UVM
,
PM
, and
Async Memcpy
, exploring which applications benefit from which combination of these features.
We implement all these features on a suite of 25 workloads, including microbenchmarks and realworld applications.
We observe an average performance gain of 24% when utilizing
UVM
and a 34% gain when employing
PM
on realworld applications, compared to not applying any data transfer optimization techniques.
The performance benefits of
Async Memcpy
vary across different workloads.
For workloads featuring extensive shared memory usage and high compute density (e.
g.
,
kmeans
and
lud
),
Async Memcpy
delivers around a 20% performance improvement over using
UVM
or
PM
alone.
In other workloads like
knn
, we note a 20% performance degradation when using
Async Memcpy
.
Furthermore, we conduct an in-depth investigation of the GPU kernel using performance counters to uncover the root causes of performance differences among various data transfer models.
We also perform sensitivity analyses to examine how the number of blocks and threads, as well as the L1-cache/shared memory partitioning, impact performance.
We explore future research directions aimed at enhancing the data transfer pipeline by overlapping memory allocation with data transfer and computation across GPU kernels.
Related Results
On the programmability of multi-GPU computing systems
On the programmability of multi-GPU computing systems
Multi-GPU systems are widely used in High Performance Computing environments to accelerate scientific computations.
This trend is expected to continue as integrated GPUs will be i...
New approaches for resource management and job scheduling for HEP grid computing
New approaches for resource management and job scheduling for HEP grid computing
(English) The Large Hadron Collider (LHC) ALICE (A Large Ion Collider Experiment) experiment uses grid computing for its extensive data processing and analysis. The ALICE Grid is c...
Poster 155: The Prevalence of “Pipelining” at the Top Orthopaedic Sports Medicine Fellowship Programs
Poster 155: The Prevalence of “Pipelining” at the Top Orthopaedic Sports Medicine Fellowship Programs
Objectives:
The term “pipelining” refers to the phenomenon that applicants from certain residency programs frequently match at the same fellowship programs. How...
CPU AND GPU (CUDA) TEMPLATE MATCHING COMPARISON / CPU IR GPU (CUDA) PALYGINIMAS VYKDANT ŠABLONŲ ATITIKTIES ALGORITMĄ
CPU AND GPU (CUDA) TEMPLATE MATCHING COMPARISON / CPU IR GPU (CUDA) PALYGINIMAS VYKDANT ŠABLONŲ ATITIKTIES ALGORITMĄ
Image processing, computer vision or other complicated opticalinformation processing algorithms require large resources. It isoften desired to execute algorithms in real time. It i...
Porting NEMO diagnostics to GPU accelerators
Porting NEMO diagnostics to GPU accelerators
<p>This work makes part of an effort to make NEMO capable of taking advantage of modern accelerators. To achieve this objective we focus on port routines in NEMO that...
Low-power architectures for automatic speech recognition
Low-power architectures for automatic speech recognition
Automatic Speech Recognition (ASR) is one of the most important applications in the area of cognitive computing. Fast and accurate ASR is emerging as a key application for mobile a...
Efficient data movement in large-scale heterogeneous systems
Efficient data movement in large-scale heterogeneous systems
(English) Modern computer systems have become universally heterogeneous. Computer architects have addressed the slowdown of Moore’s Law and the end of Dennard scaling by incorporat...

