英特尔开源SYCLomatic迁移工具,助力开发者创建异构代码
SYCLomatic开放开发,使开发者自由创建可迁移的异构代码。
英特尔发布了一项开源工具,该工具可通过名为SYCLomatic的项目,将代码迁移至SYCL①,这有助于开发者更轻松地将CUDA代码迁移到SYCL和C++,从而加速面向异构架构的跨架构编程。这个开源项目能让开发社区共同协作,以推动SYCL标准的采用,这是将开发者从单个厂商的封闭生态系统中解放出来的关键一步。
使用SYCL将代码迁移至C++,为代码提供了更强的ISO C++一致性,支持多家供应商以缓解供应商锁定问题,并且支持多种架构,为充分运用新的硬件创新提供灵活性。SYCLomatic是一个可实现大部分工作自动化的宝藏工具,让开发者能更多地关注定制化调优,而不是迁移代码。
——James Reinders
英特尔oneAPI专家
在硬件创新为计算带来多样化异构架构的同时,软件开发也已经变得越来越复杂,很难充分释放CPU和加速器的价值。如今的开发者及其团队普遍缺乏时间、金钱和资源,以适应代码的重写和测试,为这些不同的架构提升应用的性能。开发者正在寻求开放替代方案,以提升时间价值。英特尔正在提供一种更简单、更快捷的方式,让开发者进行硬件选择。
SYCL是一种基于C++的Khronos Group标准,它扩展了C++功能以支持多种架构和非共享内存的配置。为启动该项目,英特尔开源了其DPC++兼容性工具背后的技术,以进一步提升迁移能力,生成更多基于SYCL的应用。跨架构重复利用代码简化了开发工作,减少了持续维护代码所需的时间和成本。
利用带有LLVM差异化的Apache 2.0许可证,托管在GitHub上的SYCLomatic项目为开发者提供了一个社区,让他们能做出贡献并提供反馈,以进一步开放跨CPU、GPU和FPGA的异构开发。
SYCLomatic协助开发者将CUDA代码迁移到SYCL,通常可以将90-95%的CUDA代码自动迁移到SYCL代码②。开发人员仅需手动编程剩余的工作,然后对特定架构进行定制化调优,达到所需的性能级别,便可完成这一过程。
研究机构及英特尔客户已成功地使用英特尔®DPC++兼容性工具,该工具采用与SYCLomatic相同的技术,能将CUDA代码迁移到多个厂商架构上的SYCL(或Data Parallel C++,oneAPI的SYCL实现)。这些案例包括斯德哥尔摩大学的GROMACS 2022③、柏林祖思研究所(ZIB)的easyWave、三星Medison和Bittware(更多案例请访问oneAPI DevSummit)。许多客户也正在测试当前和即将推出的基于英特尔®Xe架构GPU的代码,包括阿贡国家实验室的极光(Aurora)超级计算机、莱布尼茨超级计算中心(LRZ)、GE医疗等。
SYCLomatic是一个GitHub项目。GitHub门户网站拥有一个“contributing.md”指南,描述了向项目提供技术贡献的步骤,以确保最大程度的便捷。鼓励开发人员使用该工具,提供反馈并做出贡献,以推动该工具的发展。
CRK-HACC是一个正在开发的N体宇宙学模拟代码。为了给极光(Aurora)超级计算机做好准备,英特尔DPC++兼容性工具能让我们将20多个核心快速迁移到SYCL。由于当前版本的代码迁移工具不支持迁移到仿函数,我们编写了一个简单的clang工具来重构生成的SYCL源代码,以满足我们的需求。通过开源SYCLomatic项目,我们计划整合此前的工作,以获得更强大的解决方案,并助力让仿函数成为可用迁移选项的一部分。
——Steve(Esteban)Rangel
HACC(硬件/混合加速宇宙学代码)
宇宙物理学和先进计算(anl.gov)
提供给开发者的资源:
●GitHub上SYCLomatic项目 | Contributing.md指南
●开发入门:书籍:使用C++和SYCL掌握异构系统编程 | SYCL培训的要点
●代码项目:使用oneAPI将CUDA代码转换到SYCL
●Intel®DevCloud:一个免费的开发环境,可获取英特尔®oneAPI工具,并在各种英特尔®架构如CPU、GPU、FPGA上,开发和测试代码。
向上滑动阅览
注意事项与免责声明
①SYCL是Khronos Group公司的商标。
②英特尔预估,截止至2021年9月。基于对一组70个HPC基准测试和样本的测量值,例如Rodinia、SHOC、PENNANT。结果可能会有所不同。
③GROMACS开发团队将其CUDA代码迁移到Data Parallel C++(DPC++),这是oneAPI的SYCL实现,旨在创建新的跨架构代码。参见向GROMACS添加SYCL支持的经验,以及英特尔oneAPI助力GROMACS 2022,推动开源药物的研发。
性能因使用、配置和其他因素而异。如需了解更多信息,请前往www.Intel.com/PerformanceIndex。结果可能会有所不同。
性能结果基于配置中显示的日期进行测试,且可能并未反映所有公开可用的安全更新。
没有任何产品或组件是绝对安全的。
实际成本与测试结果可能有所差异。
英特尔技术可能需要启用硬件、软件或服务来激活。
英特尔公司不控制或审核第三方公司的数据。您应该咨询其他来源以评估准确性。
©英特尔公司,英特尔、英特尔logo及其它英特尔标识,是英特尔公司或其分支机构的商标。文中涉及的其它名称及品牌属于各自所有者资产。
相关资讯
/转载请注明出处/
点赞还是在看?