[论文解读] Open SYCL on heterogeneous GPU systems: A case of study
本文以有限时间李雅普诺夫指数计算为案例研究,评估了 Open SYCL 在异构 GPU 系统中的表现,表明 SYCL 在性能上可与 CUDA 和 HIP 相媲美,同时显著降低了主机代码的开发成本,并实现了对 NVIDIA 和 AMD 设备的无缝多厂商 GPU 利用。
Computational platforms for high-performance scientific applications are becoming more heterogenous, including hardware accelerators such as multiple GPUs. Applications in a wide variety of scientific fields require an efficient and careful management of the computational resources of this type of hardware to obtain the best possible performance. However, there are currently different GPU vendors, architectures and families that can be found in heterogeneous clusters or machines. Programming with the vendor provided languages or frameworks, and optimizing for specific devices, may become cumbersome and compromise portability to other systems. To overcome this problem, several proposals for high-level heterogeneous programming have appeared, trying to reduce the development effort and increase functional and performance portability, specifically when using GPU hardware accelerators. This paper evaluates the SYCL programming model, using the Open SYCL compiler, from two different perspectives: The performance it offers when dealing with single or multiple GPU devices from the same or different vendors, and the development effort required to implement the code. We use as case of study the Finite Time Lyapunov Exponent calculation over two real-world scenarios and compare the performance and the development effort of its Open SYCL-based version against the equivalent versions that use CUDA or HIP. Based on the experimental results, we observe that the use of SYCL does not lead to a remarkable overhead in terms of the GPU kernels execution time. In general terms, the Open SYCL development effort for the host code is lower than that observed with CUDA or HIP. Moreover, the SYCL version can take advantage of both CUDA and AMD GPU devices simultaneously much easier than directly using the vendor-specific programming solutions.
研究动机与目标
- 应对日益增长的异构 GPU 集群中不同厂商和架构带来的编程挑战。
- 降低 CUDA 和 HIP 等厂商特定编程模型固有的复杂性与可移植性问题。
- 评估 Open SYCL 作为一种高层级、可移植的替代方案,支持单厂商与多厂商 GPU 部署。
- 评估在真实世界科学 HPC 工作负载中,性能与开发成本之间的权衡。
- 证明在混合 GPU 环境中使用 SYCL 开发生产级科学应用的可行性。
提出的方法
- 使用 Open SYCL、CUDA 和 HIP 实现有限时间李雅普诺夫指数(FTLE)计算,以进行直接对比。
- 使用 Open SYCL 编译器从同一代码库生成针对 NVIDIA 和 AMD GPU 设备的内核。
- 对所有三种实现的内核执行时间及主机代码复杂度进行性能分析。
- 在包含不同 GPU 厂商(NVIDIA 和 AMD)的异构系统上测量性能,以评估可移植性与负载均衡能力。
- 分析主机代码结构与代码行数,量化开发成本的差异。
- 确保各实现的功能一致性,以隔离性能与生产效率的差异。
实验结果
研究问题
- RQ1与厂商优化的 CUDA 和 HIP 实现相比,Open SYCL 是否引入了显著的性能开销?
- RQ2Open SYCL 中主机代码的开发成本与 CUDA 和 HIP 相比如何?
- RQ3SYCL 在单个应用程序中多大程度上能高效利用来自不同厂商的多个 GPU 设备?
- RQ4SYCL 是否能在不牺牲效率的前提下,实现跨多样化 GPU 架构的性能可移植性?
- RQ5在异构环境中,使用 Open SYCL 进行高性能科学计算的实际可行性如何?
主要发现
- Open SYCL 实现的 GPU 内核执行时间与 CUDA 和 HIP 相当,未观察到显著的性能开销。
- 由于采用了更高阶的抽象和更少的样板代码,Open SYCL 的主机代码开发成本显著低于 CUDA 或 HIP。
- SYCL 原生支持异构 GPU 系统,可在同一应用程序中高效使用 NVIDIA 和 AMD GPU,且代码修改极少。
- 与厂商特定解决方案相比,SYCL 实现的可移植性更强,适用于不同 GPU 厂商的环境。
- SYCL 实现的性能在单 GPU 和多 GPU 配置下均保持竞争力。
- 本研究证实,SYCL 可作为需要多厂商 GPU 支持和可维护代码库的科学 HPC 应用的可行替代方案。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。