arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2303.08058cs.DC
收藏

恒星合并与HPX-Kokkos和SYCL:使用异步多任务运行时系统与SYCL的方法

Stellar Mergers with HPX-Kokkos and SYCL: Methods of using an Asynchronous Many-Task Runtime System with SYCL

Gregor Daiß, Patrick Diehl, Hartmut Kaiser, Dirk Pflüger

AI总结:

本研究通过开发HPX-SYCL集成层,将SYCL事件作为HPX任务处理,扩展HPX-Kokkos对SYCL执行空间的支持,使Octo-Tiger在异构GPU上实现可移植性,并在A100和MI100上验证了适度加速。

摘要:

从NVIDIA GPU到AMD GPU和Intel GPU:鉴于当前超级计算机中可用加速卡板的异构性,可移植性是现代HPC应用的关键方面。在Octo-Tiger中,我们依赖Kokkos及其各种执行空间来实现可移植的计算内核。反过来,我们使用HPX来协调内核启动、CPU任务和通信。这种组合使我们能够在可移植的CPU/GPU计算和通信之间进行精细交错,从而在各种超级计算机上实现可扩展性。然而,为了使HPX和Kokkos能够最佳地协同工作,我们需要能够将Kokkos内核视为HPX任务。否则,与其将异步Kokkos内核启动集成到HPX的任务图中,我们不得不使用栅栏命令主动等待它们,这会浪费CPU时间,而这些时间本可以更好地用于其他任务。使用名为HPX-Kokkos的集成层,将Kokkos内核视为任务已经适用于某些Kokkos执行空间(如CUDA),但不适用于其他空间(如SYCL)。在这项工作中,我们开始使Octo-Tiger和HPX本身与SYCL兼容。为此,我们引入了众多软件更改,最显著的是HPX-SYCL集成。这种集成使我们能够将SYCL事件视为HPX任务,进而通过扩展HPX-Kokkos的支持以完全支持Kokkos的SYCL执行空间,从而更好地集成Kokkos。我们展示了实现这种HPX-SYCL集成的两种方式,并使用Octo-Tiger及其Kokkos内核在NVIDIA A100和AMD MI100上进行了测试。我们发现,启用这种集成带来了适度但显著的速度提升,即使在仅运行简单的单节点场景时,通信和CPU利用率尚未成为问题的情况下也是如此。

英文摘要:

Ranging from NVIDIA GPUs to AMD GPUs and Intel GPUs: Given the heterogeneity of available accelerator cards within current supercomputers, portability is a key aspect for modern HPC applications. In Octo-Tiger, we rely on Kokkos and its various execution spaces for portable compute kernels. In turn, we use HPX to coordinate kernel launches, CPU tasks, and communication. This combination allows us to have a fine interleaving between portable CPU/GPU computations and communication, enabling scalability on various supercomputers. However, for HPX and Kokkos to work together optimally, we need to be able to treat Kokkos kernels as HPX tasks. Otherwise, instead of integrating asynchronous Kokkos kernel launches into HPX's task graph, we would have to actively wait for them with fence commands, which wastes CPU time better spent otherwise. Using an integration layer called HPX-Kokkos, treating Kokkos kernels as tasks already works for some Kokkos execution spaces (like the CUDA one), but not for others (like the SYCL one). In this work, we started making Octo-Tiger and HPX itself compatible with SYCL. To do so, we introduce numerous software changes, most notably an HPX-SYCL integration. This integration allows us to treat SYCL events as HPX tasks, which in turn allows us to better integrate Kokkos by extending the support of HPX-Kokkos to also fully support Kokkos' SYCL execution space. We show two ways to implement this HPX-SYCL integration and test them using Octo-Tiger and its Kokkos kernels, on both an NVIDIA A100 and an AMD MI100. We find modest, yet noticeable, speedups by enabling this integration, even when just running simple single-node scenarios with Octo-Tiger where communication and CPU utilization are not yet an issue.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑