Khronos Group 发布最终版SYCL 1.2.1

machine learning、TensorFlow加速和C++17对齐更强大的支持

2017年12月6日 – 嵌入视觉联盟会员会议– The Khronos Group, 一个由领先硬件和软件公司组成的开源组织,致力于创建高级加速标准,今天宣布通过并发布最终版SYCL™ 1.2.1规范。OpenCL™的SYCL实现异构处理器代码使用完全标准的现代C++语言以“单源”方式编写。多厂商支持的SYCL 1.2.1 标准以免版税的方式供业界使用,SYCL的完整规范及开源一致性测试套件和采用者项目信息请浏览:www.khronos.org/sycl

SYCL 1.2.1基于OpenCL 1.2,通过Khronos会员两年半的时间完成主要更新的开发。新规范融入了来自关于machine learning框架的三个独立标准执行的体验及开发者反馈信息,例如TensorFlow,现在已支持SYCL及其原始CUDA加速器后端。

“SYCL更新的发布意义重大,其更强大的生态系统响应我们支持machine learning以及与现代C++17语言匹配的宗旨。SYCL不断帮助我们引领C++标准对异构的支持。我们希望很快推进SYCL开发工作,更多地着重对machine learning和高安全性的支持,并不断和未来的ISO C++语言对齐” SYCL工作组主席Michael Wong讲到。

SYCL 单源编程实现应用的主机和核代码始终在同一个源文件中,以一种安全类型的方式并简化跨平台异步任务图形。SYCL包括模板和通用lambda功能,以实现高水平应用软件可以和各种OpenCL 1.2执行的优化加速核代码进行简便的编程。开发者在比OpenCL C或者C++更高水平上进行编程,但始终可以通过与OpenCL、C/C++库和框架的无缝整合获得低水平代码,例如OpenCV™ 和OpenMP™。

SYCL是一个现代C++语言非常通用的具体域名嵌入语言(DSEL),其和OpenCL独特的交互操作使开发者可以使用SYCL作为一个更简单的方式与现有的OpenCL C/C++或建入核进行编程。SYCL可以取代Khronos cl2.hpp C++包装器实现了SYCL的概念,例如异步任务图形、从繁重的主机设备传输代码编程中解脱开发者。除此之外,SYCL还带来了在主机和设备之间的简化错误处理和高效的计算及交流。

另外,为了与OpenCL交互操作,SYCL还与OpenGL®、Vulkan®、OpenVX™、DirectX和其他厂商API交互操作,不会产生内存复制超载。SYCL 1.2.1 可与任何现有的和新的C++编解码器执行,包括在OpenCL 1.2的各种硬件厂商的执行层面之上。SYCL建立在Khronos SPIR™ 1.2可兼容二进制格式并完全与正在开发中的Khronos OpenCL和SPIR工作组响应,以实现对未来OpenCL性能的长期支持,包括OpenCL 2.2、SPIR-V™和Vulkan。

SYCL 1.2.1基于在C++11 的性能,并带有对C++14和C++17额外支持,以实现ISO C++17并行 STL程序在OpenCL 设备上的加速。为了支持这一工作,Khronos正在完成一个开源项目,以在SYCL之上支持Parallel STL,并在OpenCL设备上运行。具体信息请浏览:https://github.com/KhronosGroup/SyclParallelSTL。因此,在SYCL为OpenCL和SPIR带来强大的单源现代C++同时,也为覆盖其他标准性能奠定基础,包括Khronos的Vulkan、OpenVX和NNEF, 以及ISO C++ (SG1, SG6, SG12, SG14)。

网站SYCL.tech 以论坛的形式以获取更多关于SYCL方向和开发的社群反馈信息,分享开发中的项目以及标准开发的工作进展。SYCL生态系统在今年取得了巨大成就,完成众多执行,包括ComputeCPPTriSYCL

SYCL 1.2.1 业界支持

“SYCL为嵌入式领域带来了一个全新的系统水平方式,以支持异构计算。MPSoC芯片如今是庞大的复杂系统,包含各类CPU、GPU、FPGA和各种加速器,全部在同一个芯片上,使软件工程师面临巨大的挑战。SYCL允许单源C++ 17编程,以统一化主机和加速器,让编程工作更加顺利,更加通用和省时。这实现并简化了现有模板C++库和框架(Eigen、TensorFlow)的导入导出,扩展了高效异构计算的领域,” Xilinx 公司首席软件工程师、SYCL规范编辑、ISO C++ 委员会成员及triSYCL (开源SYCL执行)技术负责人Ronan Keryell讲到。

“自SYCL规范项目发起,我们看到了很多SYCL的应用,特别是在machine learning领域。伴随C++ 17 和Parallel STL的发布,ISO C++中的也有进一步开发。这些使用SYCL的体验我们已经反馈到规范中。我们非常高兴看到SYCL的更新所带来的这些体验。通过使用SYCL和标准C++语言,甚至使C++ 开发者可以更简便地使用GPU、FPGA和各类新的machine learning加速器。” Codeplay公司CEO、ComputeCpp(SYCL执行)开发者Andrew Richards讲到。

关于The Khronos Group

The Khronos Group 是一个创建开放标准以实现并行计算、图形、视觉和神经网络在各类平台和设备上编写和加速的行业组织。Khronos的标准包括Vulkan®、OpenGL®、OpenGL® ES、OpenGL® SC、WebGL™、SPIR-V™、OpenCL™、SYCL™、OpenVX™、NNEF™、COLLADA™、OpenXR™ 和glTF™。Khronos会员可以为Khronos规范的开发做贡献,在公开发布之前的不同阶段进行投票,通过提前获得规范草本和一致性测试加速其高端加速平台和应用产品的推出。

###

Vulkan 是The Khronos Group注册商标。Khronos, OpenXR, DevU, SPIR, SPIR-V, SYCL, WebGL, WebCL, COLLADA, OpenKODE, OpenVG, OpenVX, EGL, glTF, OpenKCAM, StreamInput, OpenWF, OpenSL ES, NNEF 和OpenMAX是Khronos Group Inc.商标。OpenCL是Apple Inc.的商标;OpenGL是注册商标;OpenGL ES 和OpenGL SC标识是Silicon Graphics International的商标,Khronos被授权使用。全部其他的产品名称、商标和/或公司名称仅用于识别并归属于各自所有者。