英特尔发布了一个开源工具,通过一个名为 SYCLomatic 的项目将代码迁移到 SYCL1,该项目帮助开发人员将 CUDA 代码移植到 SYCL 和 C++,以加速异构架构的跨架构编程。
开源项目使社区协作能够推动 SYCL 标准的采用,这是将开发人员从单一供应商专有生态系统中解放出来的一步。
“使用 SYCL 迁移到 C++ 为代码提供了更强的 ISO C++ 一致性、多供应商支持以减轻供应商锁定,并支持多架构以提供利用新硬件创新的全部力量的灵活性。SYCLomatic 提供了一个有价值的工具来自动化大部分工作,使开发人员可以更多地关注自定义调优而不是移植。” ——James Reinders,英特尔 oneAPI 传播者
SYCL 是一种基于 C++ 的 Khronos Group 标准,它扩展了 C++ 功能以支持多架构和不相交的内存配置。为启动该项目,英特尔开源了其 DPC++ 兼容性工具背后的技术,以进一步提升迁移能力,以生成更多基于 SYCL 的应用程序。跨架构重用代码简化了开发,减少了持续代码维护的时间和成本。
利用 Apache 2.0 许可证(LLVM 例外),托管在 GitHub 上的SYCLomatic项目为开发人员提供了一个社区来贡献和提供反馈,以进一步开放跨 CPU、GPU 和 FPGA 的异构开发。
SYCLomatic 协助开发人员将 CUDA 代码移植到 SYCL,通常会将 90-95% 的 CUDA 代码自动迁移到 SYCL 代码2。为了完成这个过程,开发人员手动完成其余的编码,然后自定义调整到架构所需的性能水平。
研究机构和英特尔客户已成功使用英特尔 DPC++ 兼容性工具(其技术与 SYCLomatic 相同)将 CUDA 代码迁移到多个供应商架构上的 SYCL(或 Data Parallel C++,oneAPI 的 SYCL 实现)。示例包括使用GROMACS 2022 3 的斯德哥尔摩大学、 使用 easyWave、 Samsung Medison和 Bittware的柏林 Zuse Institute (ZIB) (查看 oneAPI DevSummit 内容 以获取更多示例)。多个客户还在当前和即将推出的基于英特尔 Xe 架构的 GPU 上测试代码,包括 阿贡国家实验室 Aurora 超级计算机、 莱布尼茨超级计算中心 (LRZ)、 GE 医疗保健等。
SYCLomatic 是一个 GitHub 项目。GitHub 门户包含一个“contributing.md”指南,描述了为项目做出技术贡献的步骤,以确保最大程度地简化。鼓励开发人员使用该工具并提供反馈和贡献以推动该工具的发展。
“CRK-HACC 是一个正在积极开发的 N 体宇宙学模拟代码。为了为 Aurora 做准备,英特尔 DPC++ 兼容性工具使我们能够将 20 多个内核快速迁移到 SYCL。由于当前版本的代码迁移工具不支持迁移到函子,我们编写了一个简单的 clang 工具来重构生成的 SYCL 源代码以满足我们的需求。通过开源 SYCLomatic 项目,我们计划整合我们以前的工作以获得更强大的解决方案,并有助于使函子成为可用迁移选项的一部分,”HACC(硬件/混合加速宇宙学代码)的 Steve (Esteban) Rangel 说,Cosmological物理与高级计算 (anl.gov)。
审核编辑:郭婷
-
英特尔
+关注
关注
61文章
9953浏览量
171699 -
C++
+关注
关注
22文章
2108浏览量
73623
发布评论请先 登录
相关推荐
评论