Graphics Processing Units (GPUs) are widely used as powerful hardware accelerators for data-intensive tasks. However, their efficacy can be hindered by constraints in device memory and data transfer speeds via the PCI-E link. This paper explores the use of GPUs for executing scalable sorting operations that exceeds the GPU’s global memory by a factor of at least two orders of magnitude. To address this challenge, we leverage the power of NVIDIA’s asynchronous CUDA streams. Our solution enhances GPU performance by implementing a pipeline model to offload sorting operations from the Solid-State Drive (SSD) to GPU memory via the host’s main memory. This strategy maximizes the multiway concurrency level to reduce the overhead associated with data transfer within the GPU memory hierarchy. We perform extensive performance evaluations by sorting 128 billion data elements initially stored on an external NVMe SSD. The results confirm the effectiveness of our approach, showcasing a speed-up of 4.3 \(\times \) compared to the results for CPU-based out-of-memory sorting of skewed data based on Intel’s Threading Building Blocks (TBB) sorting algorithm. Our results include the cost of transfer times to and from the main memory, a factor often overlooked in similar studies.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Out-of-Memory GPU Sorting Using Asynchronous CUDA Streams

  • MohammadReza HoseinyFarahabady,
  • Albert Y. Zomaya

摘要

Graphics Processing Units (GPUs) are widely used as powerful hardware accelerators for data-intensive tasks. However, their efficacy can be hindered by constraints in device memory and data transfer speeds via the PCI-E link. This paper explores the use of GPUs for executing scalable sorting operations that exceeds the GPU’s global memory by a factor of at least two orders of magnitude. To address this challenge, we leverage the power of NVIDIA’s asynchronous CUDA streams. Our solution enhances GPU performance by implementing a pipeline model to offload sorting operations from the Solid-State Drive (SSD) to GPU memory via the host’s main memory. This strategy maximizes the multiway concurrency level to reduce the overhead associated with data transfer within the GPU memory hierarchy. We perform extensive performance evaluations by sorting 128 billion data elements initially stored on an external NVMe SSD. The results confirm the effectiveness of our approach, showcasing a speed-up of 4.3 \(\times \) compared to the results for CPU-based out-of-memory sorting of skewed data based on Intel’s Threading Building Blocks (TBB) sorting algorithm. Our results include the cost of transfer times to and from the main memory, a factor often overlooked in similar studies.