首页> 外文会议>2012 Symposium on Application Accelerators in High Performance Computing. >On Improving the Performance of Multi-threaded CUDA Applications with Concurrent Kernel Execution by Kernel Reordering
【24h】

On Improving the Performance of Multi-threaded CUDA Applications with Concurrent Kernel Execution by Kernel Reordering

机译:关于通过内核重排序提高并发内核执行能力的多线程CUDA应用程序的性能

获取原文
获取原文并翻译 | 示例

摘要

General-purpose graphics processing units (GPUs) have been found to be viable solutions for large-scale numerical computations with an inherent potential for massive parallelism. In contrast, only few is known about using GPUs for small-scale computations. To have the GPU not be under-utilized for small problem sizes, a meaningful approach is to perform as many small-scale computations as possible in a concurrent manner. On NVIDIA Fermi GPUs, the concept of Concurrent Kernel Execution (CKE) allows for the execution of up to 16 GPU kernels on a single device. While using CKE in single-threaded CUDA programs is straightforward, for multi-threaded programs it might become a challenge to manage multiple host threads interacting with the GPU device, and in addition to have the CKE concept work properly. It can be observed that CKE performance breaks down when multiple host threads each invoke multiple GPU kernels in succession without synchronizing their actions. Since in real-world applications it is common that multiple host threads process their data independently, a mechanism is needed that helps avoiding CKE breakdown. We propose a producer-consumer principle approach to manage GPU kernel invocations from within parallel host regions by reordering the respective GPU kernels before actually invoking them. We are able to demonstrate significant performance improvements with this technique in a strong scaling simulation of a small molecule solvated within a nanodroplet.
机译:通用图形处理单元(GPU)已被发现是大规模数值计算的可行解决方案,具有大规模并行性的内在潜力。相反,对于使用GPU进行小规模计算的了解很少。为了使GPU不会因小问题大小而未得到充分利用,一种有意义的方法是以并发方式执行尽可能多的小规模计算。在NVIDIA Fermi GPU上,并发内核执行(CKE)的概念允许在单个设备上最多执行16个GPU内核。尽管在单线程CUDA程序中使用CKE很简单,但对于多线程程序,管理与GPU设备交互的多个主机线程可能成为挑战,并且要使CKE概念正常工作。可以观察到,当多个主机线程各自连续调用多个GPU内核而不同步其动作时,CKE性能就会下降。由于在实际应用中,多个主机线程独立地处理它们的数据是很常见的,因此需要一种有助于避免CKE故障的机制。我们提出了一种生产者-消费者原则方法,通过在实际调用它们之前对各个GPU内核进行重新排序来从并行主机区域内管理GPU内核调用。我们能够在纳米液滴中溶剂化的小分子的强比例缩放仿真中证明使用此技术可显着改善性能。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号