写点什么

英特尔开源项目推动 SYCL 标准采用,打破单个厂商封闭生态系统

作者:科技之家
  • 2022 年 5 月 24 日
  • 本文字数:1297 字

    阅读完需:约 4 分钟


英特尔发布了一项开源工具,该工具可通过名为 SYCLomatic 的项目,将代码迁移至 SYCL1,这有助于开发者更轻松地将 CUDA 代码迁移到 SYCL 和 C++,从而加速面向异构架构的跨架构编程。这个开源项目能让开发社区共同协作,以推动 SYCL 标准的采用,这是将开发者从单个厂商的封闭生态系统中解放出来的关键一步。

英特尔 oneAPI 专家 James Reinders 表示:“使用 SYCL 将代码迁移至 C++,为代码提供了更强的 ISO C++一致性,支持多家供应商以缓解供应商锁定问题,并且支持多种架构,为充分运用新的硬件创新提供灵活性。SYCLomatic 是一个可实现大部分工作自动化的宝藏工具,让开发者能更多地关注定制化调优,而不是迁移代码。”

在硬件创新为计算带来多样化异构架构的同时,软件开发也已经变得越来越复杂,很难充分释放 CPU 和加速器的价值。如今的开发者及其团队普遍缺乏时间、金钱和资源,以适应代码的重写和测试,为这些不同的架构提升应用的性能。开发者正在寻求开放替代方案,以提升时间价值。英特尔正在提供一种更简单、更快捷的方式,让开发者进行硬件选择。

SYCL 是一种基于 C++的 Khronos Group 标准,它扩展了 C++功能以支持多种架构和非共享内存的配置。为启动该项目,英特尔开源了其 DPC++兼容性工具背后的技术,以进一步提升迁移能力,生成更多基于 SYCL 的应用。跨架构重复利用代码简化了开发工作,减少了持续维护代码所需的时间和成本。

利用带有 LLVM 差异化的 Apache 2.0 许可证,托管在 GitHub 上的 SYCLomatic 项目为开发者提供了一个社区,让他们能做出贡献并提供反馈,以进一步开放跨 CPU、GPU 和 FPGA 的异构开发。

SYCLomatic 协助开发者将 CUDA 代码迁移到 SYCL,通常可以将 90-95%的 CUDA 代码自动迁移到 SYCL 代码2。开发人员仅需手动编程剩余的工作,然后对特定架构进行定制化调优,达到所需的性能级别,便可完成这一过程。

研究机构及英特尔客户已成功地使用英特尔® DPC++兼容性工具,该工具采用与 SYCLomatic 相同的技术,能将 CUDA 代码迁移到多个厂商架构上的 SYCL(或 Data Parallel C++,oneAPI 的 SYCL 实现)。这些案例包括斯德哥尔摩大学的 GROMACS 20223、柏林祖思研究所(ZIB)的 easyWave、三星 Medison 和 Bittware(更多案例请访问 oneAPI DevSummit)。许多客户也正在测试当前和即将推出的基于英特尔® Xe架构 GPU 的代码,包括阿贡国家实验室的极光(Aurora)超级计算机、莱布尼茨超级计算中心(LRZ)、GE 医疗等。

SYCLomatic 是一个 GitHub 项目。GitHub 门户网站拥有一个“contributing.md”指南,描述了向项目提供技术贡献的步骤,以确保最大程度的便捷。鼓励开发人员使用该工具,提供反馈并做出贡献,以推动该工具的发展。

HACC(硬件/混合加速宇宙学代码)、宇宙物理学和先进计算(anl.gov)的 Steve(Esteban)Rangel 表示:“CRK-HACC 是一个正在开发的 N 体宇宙学模拟代码。为了给极光(Aurora)超级计算机做好准备,英特尔 DPC++兼容性工具能让我们将 20 多个核心快速迁移到 SYCL。由于当前版本的代码迁移工具不支持迁移到仿函数,我们编写了一个简单的 clang 工具来重构生成的 SYCL 源代码,以满足我们的需求。通过开源 SYCLomatic 项目,我们计划整合此前的工作,以获得更强大的解决方案,并助力让仿函数成为可用迁移选项的一部分。”

用户头像

科技之家

关注

还未添加个人签名 2022.05.11 加入

还未添加个人简介

评论

发布
暂无评论
英特尔开源项目推动SYCL标准采用,打破单个厂商封闭生态系统_科技之家_InfoQ写作社区