Khronos 发布 SYCL 2020 规范

Khronos 发布 SYCL 2020 规范

主要的更新包括几十项新的特征以及与ISO C++更加紧密的关系: 在内嵌,桌面,高性能计算的市场里SYCL被大量采用

俄勒冈州彼佛顿市 – 202129 – 6:00 AM 太平洋时间今天, 科纳斯组织(Khronos® Group),作为一个由工业界主流公司组成的创建先进的互联标准的开放协会,宣布了SYCLTM 2020最终版规范 的批准和发布。这个规范是单源C++并行编程的开放标准。作为多年来规范开发的一个主要的里程碑,SYCL 2020是在SYCL 1.2.1的功能的基础之上建立的,用以进一步提供改善的可编程性,更小的代码尺寸,和增加的性能。基于C++17之上的SYCL 2020, 使得标准C++应用的加速更为容易, 而且推动使之与ISO C++的路线图变得更为一致。

SYCL第一次是在2014年引入,它是一种基于C++异构平行编程框架,用来加速高性能计算,机器学习,内嵌计算,以及在相当宽泛的处理器构架之上的计算量超大的桌面应用。这些处理器包括了CPU, GPU, FPGA, 和张量加速器。SYCL 2020 将会进一步加速在多平台上的采用和部署,包括使用除了OpenCLTM之外的多样的加速API 后端。

SYCL 2020集成了超过40项新的特征,包括了为简化代码所做的更新,和更小的代码尺寸。一些主要增加的内容包括:

  • 统一的共享存储(USM)使得带有指向器的代码,可以在不需要缓冲与存取器的情况下自然地工作
  • 并行的减量增加了一种内置的减量操作,来减少样板代码以达到具有内置的减量操作加速硬件上的最大性能
  • 工作组和子工作组算法,在工作项目中增加了有效率的并行操作
  • 类模板参数推导(CTAD)与模版减量指南,简化了类模板实例化
  • 通过内置的简化操作简化访问器的使用,减少了样板代码,并简化了C ++软件设计模式的使用
  • 扩展的互操作性通过各种后端加速API实现高效加速
  • SYCL原子操作现在与标准C ++原子更紧密地对齐,以增强并行编程的自由度

更多信息可以在今天发布在Khronos博客上的SYCL FAQ 中找到。“ SYCL 2020的主要目标是实现与ISO C++的更紧密融合,从而进一步推动我们的工作,以通过开放标准将并行异构编程引入现代C++。 SYCL可以利用各种处理器来加速许多应用领域的问题,包括HPC,汽车和机器学习。” ISO C++ Directions Group和SYCL工作组主席Codeplay杰出工程师Michael Wong说。 “SYCL拥有越来越多的实施者和研究人员,致力于从超级计算到嵌入式处理的市场中的实际应用。这项工作的见识以及我们从SYCL 2020临时规范中收集到的反馈,使SYCL工作组能够提供功能丰富的最终规范,从而在增强性能与向后兼容性之间取得平衡。我对SYCL 2020提供的简单性和更高的表现力感到兴奋,我们将继续发展SYCL以满足市场需求。”

在发布SYCL 2020规范的同时,随着编译器,运行时,库和工具的开发不断增加,SYCL生态系统也在不断发展。英特尔的oneAPI数据并行C++ (DPC++)已经整合了许多SYCL 2020功能。符合Codeplay的ComputeCpp SYCL 1.2.1的实现包括选定的SYCL 2020功能作为扩展,包括对DSP和RISC-V的支持,并且随着时间的推移会增加更多的功能。 Intel和Codeplay实现基于LLVM开源编译器框架。海德堡大学的hipSYCL还支持从版本0.9开始的SYCL 2020关键功能。开发人员可以下载许多此类实现,并立即试用SYCL 2020功能。 在Argonne国家实验室,SYCL使开发人员能够轻松扩展C++应用程序,以在百亿亿次超级计算机系统中使用加速器群集。在欧洲,Cineca 超级计算中心正在使用基于SYCL的Celerity分布式运行时系统来对新的Marconi100集群进行编程,该集群在Top500(2020年11月)中排名第11。

SYCL工作组鼓励用户和工具实施者下载并浏览新规范 。 始终欢迎您对SYCL标准提出反馈,包括对将来功能的要求。可以通过访问Khronos SYCL社区论坛SYCL技术站点Khronos Slack Channel 提供反馈。

由SYCL工作组主席Michael Wong主持,由Khronos赞助的IWOCL和SYCLcon 2021 将于4月27日至29日在网上举行。它将包括涵盖新SYCL 2020功能的在线SYCL教程,以及专门的SYCL小组讨论。 现在可以在www.iwocl.org/ 上注册。

对于SYCL 2020的工业界支持

“我们的用户将受益于SYCL 2020规范中的功能。新功能,例如对统一内存(USM)的支持和精简,是对高性能计算硬件进行编程的重要功能。此外,对C++ 17的支持还将 允许我们的用户编写更好的C++代码,同时具有语言功能(如演绎指南)和库功能(如std :: optional);其他新功能(如减轻对内核功能的要求以及在主机和设备之间共享数据) )是在Kokkos和RAJA性能可移植性生态系统中实现对SYCL的后端支持的重要一步。” Argonne国家实验室领导力计算设施的计算机科学家Nevin Liber说。

“在Cineca,根据我们的经验,我们确认SYCL为混合环境中高性能计算的发展带来的价值。实际上,通过SYCL,可以为在需要配置浮点加速器的HPC架构上执行的计算密集型应用程序的开发构建通用且可移植的环境,从而使行业和科学界可以使用通用的开发工具,算法图书馆,积累的经验“,Cineca应用创新部超级计算总监Sanzio Bassini。 “在新的Marconi100集群上,Cineca已经在多个SYCL实施之上运行分布式Celerity运行时,Top500中排名第11位,可为用户提供约4000个NVIDIA Volta V100 GPU和IBM Power9主机处理器的统一API。 SYCL 2020是向更精简的API迈出的一大步,该API释放了现代C++标准为加速数据并行内核提供的所有潜力,从而使大型科学软件的开发变得更加容易和可持续,无论是针对工业领域的工业应用,或者用于面向科学领域的应用。”

“ Codeplay从其最初的定义开始就深深地参与了SYCL,我们现在通过我们的ComputeCpp产品在一系列系统上启用该标准。我们坚信SYCL是将所有高性能处理器链接到统一编程解决方案的唯一软件标准。 ” Codeplay Software创始人兼首席执行官Andrew Richards说:“开发人员会发现SYCL 2020完善了标准以简化开发流程,并增加了一些重要的新增强功能以提高生产力。”

“Imagination认识到SYCL在多个市场中的优势 Imagination Technologies软件工程副总裁Mark Butler表示:“我们的软件堆栈旨在提高SYCL性能,从而为利用我们最新IP中的计算性能的万亿次元提供了一条直接的途径。 “从其他专有API快速移植工作负载的能力是一个巨大的优势,简化了从台式机开发到嵌入式系统部署的过渡。 SYCL 2020是该API向前迈出的积极一步,它将实现更高级别的性能,这将使开发人员和平台创建者受益。”

英特尔公司数据中心XPU产品和解决方案副总裁Jeff McVeigh表示:“ SYCL 2020最终规范为行业带来了重要的功能,使C++开发人员能够通过跨XPU架构的统一编程更高效地构建高性能的异构应用程序。” “开源oneAPI C ++ / DPC ++编译器中率先采用的几种功能,例如统一共享内存,组算法和子组,为这项社区工作做出了贡献。 加速的分布式计算需要开放的跨体系结构编程。 我们期待着继续合作,以满足开发者生态系统的需求。”

“成千上万的用户和广泛的应用程序在使用NERSC的资源,我们必须支持广泛的编程模型。 除了基于指令的方法之外,我们还将现代基于C++语言的加速器编程方法(例如SYCL)视为我们为Perlmutter用户提供的编程环境的重要组成部分。” NERSC应用程序性能专家Brandon Cook说。 “此外,这项工作通过Aurora和Perlmutter之间应用程序的性能可移植性来支持科学应用程序开发人员和用户的生产力。”

NSITEXEInc.首席技术官杉本秀树(Hideki Sugimoto表示:“ NSITEXE支持SYCL 2020技术,该技术在嵌入式应用中正受到关注。SYCL对于通过向用户隐藏复杂性来提高生产率非常重要。我们正在考虑在下一个技术中采用此技术。 IP平台的一代。”

“对于瑞萨而言,SYCL是汽车ADAS / AD软件开发人员的关键推动力,使他们能够通过开放的Khronos标准轻松使用R-Car SoC系列的高效,异构加速器,” 瑞萨ADAS市场部主任西里尔·科尔多瓦(Cyril Cordoba说。

因斯布鲁克大学分布式与并行系统小组负责人Thomas Fahringer说:“新的SYCL 2020规范发布了广泛的功能和改进,我们感到很兴奋。“ “ API变得更简洁,对开发人员更友好,同时还为专家用户引入了新的方法,以对最新的硬件功能进行细粒度控制。向通用后端模型的迁移为与现有的集成提供了新的可能性 传统解决方案,在科研环境中尤其重要,作为Celerity项目的联合开发者,我们与萨勒诺大学一起对这些变化表示欢迎,并希望将其应用于分布式内存研究和行业应用中 作为最近启动的EuroHPC LIGATE项目的一部分。”

Xilinx研究员Ralph Wittig表示:“ Xilinx对SYCL 2020所取得的进展感到兴奋。该单一源C ++框架统一了同一C ++程序中各种加速器的主机和设备代码。通过主机后备设备执行 ,开发人员可以在CPU上仿真设备代码,探索适用于计算设备的软软件协同设计。现在,SYCL可通过可定制的后端进行扩展,从而使FPGA和ACAP的设备插件成为可能。”

有关科纳斯组织

科纳斯组织是一个由超过150家主流的硬件和软件公司所组成的开放,非赢利,会员驱动的工业协会。该协会创建先进的,免版税的,在3D图像,增强和虚拟现实,并行编程,视觉加速,和机器学习方面的互通性标准。科纳斯的活动包括 Vulkan®, OpenGL®, OpenGL® ES, WebGL™, SPIR-V™, OpenCL™, SYCL™, OpenVX™, NNEF™, OpenXR™, 3D Commerce™,ANARITM 和glTF™。科纳斯会员驱动科纳斯规范的开发和演进,通过早期介入规范的草案拟定和一致性测试,使得他们能够加速交付自己尖端的平台及应用。