Khronos がSYCL 2020の仕様をリリース

メジャーアップデートには、何十もの新機能とISO C ++との緊密な連携が含まれ
組み込み、デスクトップ、およびHPC市場におけるSYCL採用が大幅に進む

オレゴン州ビーバートン 202129–本日、高度な機能を有する相互運用可能な標準規格を作成し、業界をリードする企業のオープンコンソーシアムであるKhronos®グループ が、SYCL™2020の最終仕様 の承認と公開を発表しました。SYCLはシングルソースのC++並列プログラミングのオープンな標準規格です。長年にわたる仕様の開発の節目となるSYCL 2020は、SYCL 1.2.1の機能に基づいて構築されており、プログラマビリティの向上、コードサイズの縮小、パフォーマンスの向上を実現します。C++ 17に基づくSYCL2020は、標準のC++アプリケーションの高速化を容易にし、ISO C++ロードマップとの緊密な連携を推し進めます。

SYCL はC++ベースの異種並列プログラミングフレームワークで最初は2014年に始まりました。その目的は、CPU、GPU、FPGA、tensorアクセラレータなど、様々なプロセッサアーキテクチャで、ハイパフォーマンスコンピューティング(HPC)、機械学習、組み込みコンピューティング、および計算集約型のデスクトップアプリケーションを高速化するというものでした。SYCL 2020は、OpenCL™に加えて多様なアクセラレーションAPIバックエンドの使用を含め、複数のプラットフォームに跨るSYCLの採用とデプロイメントをさらに加速させるでしょう。

SYCL 2020は、合理化されたコーディング、より小さなコードサイズの為のアップデートなど、40を超える新機能を含んでいます。主な追加機能は次のとおりです。

  • ユニファイド共有メモリ(USM)を使用することで、ポインターを含むコードがバッファーやアクセッサーなしで自然に機能する
  • 並列リダクションは、ボイラープレートコードを回避し、リダクション操作アクセラレーションが組み込まれたハードウェアで最大のパフォーマンスを実現するために、組み込みのリダクション操作を追加する
  • ワークグループおよびサブグループアルゴリズムは、ワークアイテム間に効率的な並列操作を追加する
  • クラステンプレート引数推論(CTAD)およびテンプレート推論ガイドは、クラステンプレートのインスタンス化を簡素化する
  • 組み込みの削減操作を備えたアクセサーの使用を簡素化すると、ボイラープレートコードが削減され、C ++ソフトウェアのデザインパターンの使用が合理化される
  • 拡張された相互運用性により、多様なバックエンドのアクセラレーションAPIによる効率的なアクセラレーションが可能になる
  • SYCLアトミック操作は、並列プログラミングの自由度を高めるために、より入念に標準のC++のアトミックに揃えられている

更に詳しい情報に関しては、本日、Khronosのブログに投稿されたSYCL FAQ をご覧ください。

「SYCL2020の第1の目標は、ISO C++とのより緊密なコンバージェンスを実現し、オープンな標準規格を通じて並列ヘテロジニアスプログラミングを最新のC++にもたらす為の作業を促進することです。 SYCLは、様々なプロセッサを活用することで、HPC、自動車、機械学習といった多くのアプリケーションドメインにおける問題を加速できます」と、Codeplayの著名なエンジニアでISO C++ Directions GroupおよびSYCLワーキンググループの議長を務めるMichael Wong氏は述べています。続けて、 「SYCLでは、スーパーコンピューティングから組み込み処理に至るまで、市場における実際のアプリケーショで作業している実装者や研究者の数が増え続けています。その作業からの洞察と、SYCL 2020暫定仕様から収集したフィードバックにより、SYCLワーキンググループは、パフォーマンスの向上と下位互換性のバランスを取りつつ、機能が豊富な最終版の仕様を提供できるようになりました。私はSYCL 2020が提供するシンプルさと表現力の向上に興奮しています。今後も、市場のニーズに合わせてSYCLを進化させていきます。」と述べています。

SYCL 2020の仕様のリリースと並行して、SYCLエコシステムは、コンパイラー、ランタイム、ライブラリー、およびツールの開発が増えることで成長を続けています。IntelのoneAPI Data Parallel 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の機能を今すぐ試すことが可能です。

アルゴンヌ国立研究所 ではSYCLを使用することで、開発者がエクサスケール(1秒間に10の18乗回の演算ができる)のスーパーコンピューターシステム内でアクセラレータクラスターを使ってC ++アプリケーションを簡単にスケーリングすることができるようになりました。ヨーロッパのCineca スーパーコンピューティングセンターは、新しいMarconi100クラスターをプログラムする為にSYCL上に構築されたCelerity分散ランタイムシステムを使用しています。これはTop500(2020年11月)において11位にランクされています。

SYCLワーキンググループでは、ユーザーの皆様とツールを実装する方々が新しい仕様 をダウンロードしてお試し頂くことを奨励しています。SYCLの標準規格に関するフィードバックは、将来の機能のリクエストを含め、いつでも受け付けています。 フィードバックは、Khronos SYCLコミュニティフォーラムSYCL技術サイト 、またはKhronos Slack Channel にアクセスしてお送りください。

IWOCL&SYCLcon 2021 は、SYCLワーキンググループの議長であるMichael Wongが議長を務め、Khronosが後援し、4月27〜29日にオンラインで開催されます。 SYCL 2020の新機能をカバーするオンラインのSYCLチュートリアルと、熱い議論が繰り広げられるSYCLパネルディスカッションが予定されています。 登録は既にwww.iwocl.org/ から可能です。

業界によるSYCL 2020の対応

"Our users will benefit from features in the SYCL 2020 specification. New features, such as support for unified memory (USM) and reductions, are important capabilities for programming high-performance-computing hardware. In addition, support for C++17 will allow our users to write better C++ code, with both language features (such as deduction guides) and library features (such as std::optional). Other new features (such as softening the requirements on kernel functions and sharing data between host and devices) are an important step for implementing backend support for SYCL in the Kokkos and RAJA performance portability ecosystems.” said Nevin Liber, computer scientist, Argonne National Laboratory’s Leadership Computing Facility

“At Cineca, based on our experience, we confirm the value that SYCL is bringing to the development of high-performance computing in a hybrid environment. In fact, through SYCL, it is possible to build a common and portable environment for the development of computing-intensive applications to be executed on HPC architectures configured with floating point accelerators, which allows industries and scientific communities to use the common availability of development tools, libraries of algorithms, accumulated experience,” said Sanzio Bassini, director of supercomputing, Application Innovation Dept, Cineca. “Cineca is already running the distributed Celerity runtime on top of several SYCL implementations on the new Marconi100 cluster, ranked no. 11 in the Top500, providing users with a unified API for both about 4000 NVIDIA Volta V100 GPUs and IBM Power9 host processors. SYCL 2020 is a big step towards a much leaner API that unlocks all the potential provided by modern C++ standards for accelerated data-parallel kernels, making the development of large-scale scientific software easier and more sustainable, either for industrial oriented domain applications for industries, either for scientific domain-oriented applications.”

"Codeplay has been deeply involved in SYCL from its original definition and we are now enabling the standard on a range of systems with our ComputeCpp product. We strongly believe SYCL is the only software standard to link all the high performance processors to a unified programming solution,” said Andrew Richards, founder and CEO, Codeplay Software.“Developers will find that SYCL 2020 refines the standard to streamline their development and adds some crucial new enhancements to improve productivity.”

“Imagination recognises the benefit of SYCL across multiple markets. Our software stacks have been designed to improve SYCL performance, enabling a straightforward path to exploit the teraflops of compute performance in our latest IP,” said Mark Butler, Vice President of Software Engineering, Imagination Technologies. “The ability to quickly port workloads from other proprietary APIs is a huge benefit, easing the transition from development on desktop to deployment on embedded systems. SYCL 2020 is a positive step forward for this API, enabling higher levels of performance, which will benefit developers and platform creators.”

“The SYCL 2020 final specification brings significant features to the industry that enable C++ developers to more productively build high-performance heterogeneous applications with unified programming across XPU architectures,” said Jeff McVeigh, Intel vice president, Datacenter XPU Products and Solutions. “Several capabilities pioneered in the open source oneAPI C++/DPC++ compiler, such as unified shared memory, group algorithms, and sub-groups, contributed to this community effort. Open, cross-architecture programming is required for accelerated distributed computing; we look forward to continuing our collaboration to address the needs of the developer ecosystem.”

“With thousands of users and a wide range of applications using NERSC’s resources, we must support a wide range of programming models. In addition to directive-based approaches, we see modern C++ language-based approaches to accelerator programming, such as SYCL, as an important component of our programming environment offering for users of Perlmutter,” said Brandon Cook, application performance specialist at NERSC. “Further, this work supports the productivity of scientific application developers and users through performance portability of applications between Aurora and Perlmutter.”

"NSITEXE supports the SYCL 2020 technology, which is gaining attention in embedded applications," said Hideki Sugimoto, CTO, NSITEXE, Inc. "SYCL is very important to increase productivity by hiding complexities from users. We are considering adopting this technology in our next generation of IP platforms."

“For Renesas, SYCL is a key enabler for automotive ADAS/AD software developers that allows them to easily use the highly-efficient, heterogeneous accelerators of the R-Car SoC Series through the open Khronos standard,” said Cyril Cordoba, Director of ADAS Segment Marketing Department, Renesas.

"We are excited about the extensive list of features and improvements released with the new SYCL 2020 specification," said Thomas Fahringer, head of the Distributed and Parallel Systems Group at the University of Innsbruck. "The API becomes terser and more developer friendly, while also introducing new ways for expert users to exercise fine-grained control over state-of-the-art hardware features. The move to a generalized backend model opens up new possibilities to integrate with existing legacy solutions, which is especially important in scientific research environments. As co-developers of the Celerity project, together with the University of Salerno, we are welcoming these changes and look forward to applying them within distributed-memory research and industry applications, for example as part of the recently launched EuroHPC LIGATE project."

"Xilinx is excited about the progress achieved with SYCL 2020,” said Ralph Wittig, fellow, Xilinx. “This single-source C++ framework unifies host and device code for various kinds of accelerators in the same C++ program. With host-fallback device execution, developers can emulate device code on a CPU, exploring hardware-software co-design for adaptable computing devices. SYCL is now extensible via customizable back-ends, enabling device plug-ins for FPGAs and ACAPs."

Khronos Groupについて

Khronos Groupは、150以上の業界をリードする企業からなるオープンな非営利のメンバー主導のコンソーシアムであり、3Dグラフィックス、AR、VR、並列プログラミング、ビジョンアクセラレーション、機械学習のための最新でロイヤリティフリーの相互運用可能な標準規格を作成しています。Khronosの活動にはVulkan®、OpenGL®、OpenGL®ES、WebGLTM、SPIR-VTM、OpenCLTM、SYCLTM、OpenVXTM、NNEFTM、OpenXRTM、3D CommerceTM、ANARITM、glTFTMが含まれます。Khronosのメンバーは、Khronosが制定する仕様の開発と発展を推進し、仕様のドラフトと適合性テストへの早期アクセスを通じて、最先端のプラットフォームとアプリケーションの提供を加速することができます。