近日,英特尔发布了一项开源工具,该工具可通过名为 SYCLomatic 的项目,将代码迁移至 SYCL,这有助于开发者更轻松地将 CUDA 代码迁移到 SYCL 和 C++,从而加速面向异构架构的跨架构编程。这个开源项目能让开发社区共同协作,以推动 SYCL 标准的采用,这是将开发者从单个厂商的封闭生态系统中解放出来的关键一步。
SYCLomatic 项目地址:https://github.com/oneapi-src/SYCLomatic
SYCL 是一种基于 C++ 的 Khronos Group 标准,它扩展了 C++ 功能以支持多种架构和非共享内存的配置。为启动该项目,英特尔开源了其 DPC++ 兼容性工具背后的技术,以进一步提升迁移能力,生成更多基于 SYCL 的应用。跨架构重复利用代码简化了开发工作,减少了持续维护代码所需的时间和成本。
英特尔 oneAPI 专家 James Reinders 表示:“使用 SYCL 将代码迁移至 C++,为代码提供了更强的 ISO C++ 一致性,支持多家供应商以缓解供应商锁定问题,并且支持多种架构,为充分运用新的硬件创新提供灵活性。SYCLomatic 是一个可实现大部分工作自动化的宝藏工具,让开发者能更多地关注定制化调优,而不是迁移代码。”
在硬件创新为计算带来多样化异构架构的同时,软件开发也已经变得越来越复杂,很难充分释放 CPU 和加速器的价值。如今的开发者及其团队普遍缺乏时间、金钱和资源,以适应代码的重写和测试,为这些不同的架构提升应用的性能。开发者正在寻求开放替代方案,以提升时间价值。英特尔正在提供一种更简单、更快捷的方式,让开发者进行硬件选择。
值得一提的是,利用带有 LLVM 差异化的 Apache 2.0 许可证,托管在 GitHub 上的 SYCLomatic 项目为开发者提供了一个社区,让他们能做出贡献并提供反馈,以进一步开放跨 CPU、GPU 和 FPGA 的异构开发。
SYCLomatic 能够协助开发者将 CUDA 代码迁移到 SYCL,通常可以将 90-95% 的 CUDA 代码自动迁移到 SYCL 代码。开发人员仅需手动编程剩余的工作,然后对特定架构进行定制化调优,达到所需的性能级别,便可完成这一过程。
在将 SYCLomatic 项目开源后,众多开发者和机构表示已经从这项技术中受益。HACC(硬件 / 混合加速宇宙学代码)、宇宙物理学和先进计算(anl.gov)的 Steve(Esteban)Rangel 表示:“CRK-HACC 是一个正在开发的 N 体宇宙学模拟代码。为了给极光(Aurora)超级计算机做好准备,英特尔 DPC++ 兼容性工具能让我们将 20 多个核心快速迁移到 SYCL。由于当前版本的代码迁移工具不支持迁移到仿函数,我们编写了一个简单的 clang 工具来重构生成的 SYCL 源代码,以满足我们的需求。通过开源 SYCLomatic 项目,我们计划整合此前的工作,以获得更强大的解决方案,并助力让仿函数成为可用迁移选项的一部分。”
SYCLomatic 项目地址:https://github.com/oneapi-src/SYCLomatic