インテル、開発者のヘテロジニアスコード作成を支援するSYCLomaticマイグレーションツールをオープンソース化

インテルは、SYCLomaticというプロジェクトを通じて、コードをSYCL[1]に移行するオープンソースツールを公開しました。このツールは、開発者がCUDAコードをより容易にSYCLおよびC++に移植し、ヘテロジニアスアーキテクチャ向けのクロスアーキテクチャーのプログラミングを高速化するのに役立ちます。このオープンソースプロジェクトは、SYCL標準の採用を進めるためのコミュニティの協力を可能にし、開発者を単一ベンダーの独占的エコシステムから解放するための重要なステップとなります。

このプレスリリースにはマルチメディアが含まれています。リリースの全文はこちら https://www.businesswire.com/news/home/20220519005346/en/

▲SYCLomaticは、CUDAコードのSYCLへの移植を支援し、通常、CUDAコードの90~95%をSYCLコードに自動的に移行します。プロセスを終了するために、開発者は残りのコーディングを手動で行い、その後、アーキテクチャに対して望ましいレベルの性能にカスタムチューニングを行います。

Intel oneAPIエバンジェリスト、James Reindersは「SYCLを使用してC++に移行することにより、ISO C++との整合性が強化され、マルチベンダーのサポートによりベンダロックインを解消し、マルチアーキテクチャのサポートにより新しいハードウェアイノベーションの力を最大限に活用する柔軟性がもたらされます。SYCLomaticは、作業の多くを自動化する貴重なツールであり、開発者は移植よりもカスタム・チューニングに集中することができます。」と説明しています。

なぜそれが重要なのか:ハードウェアの革新により、コンピューティングのアーキテクチャは多様なヘテロジニアスになりましたが、ソフトウェア開発はますます複雑になり、CPUやアクセラレータをフルに活用することが難しくなっています。今日の開発者とそのチームは、これらの異なるアーキテクチャに対応するアプリケーションのパフォーマンスを高めるためのコードの書き換えやテストに対応するための時間、費用、リソースに窮しています。開発者は、Time-to-Valueを向上させるオープンな代替手段を求めており、インテルは、ハードウェアの選択を可能にする簡単で短い経路を提供しています。

SYCLとプロジェクトSYCLomaticとは?:SYCLは、C++ベースのKhronos Group標準であり、C++の機能を拡張して、マルチアーキテクチャと不連続のメモリ構成をサポートします。このプロジェクトを開始するにあたり、インテルはDPC++互換ツールの技術をオープンソース化し、より多くのSYCLベースのアプリケーションを作成するための移行能力をさらに向上させました。アーキテクチャをまたいだコードの再利用により、開発が容易になり、継続的なコードメンテナンスにかかる時間とコストを削減することができます。

Apache 2.0ライセンスとLLVMの例外規定を利用し、GitHubでホストされているSYCLomaticプロジェクトは、開発者のためのコミュニティを提供し、CPU、GPU、FPGAにわたるオープンな異種混在開発を促進するためのフィードバックを提供するものです。

SYCLomaticツールの仕組み: SYCLomaticは、CUDAコードのSYCLへの移植を支援し、通常、CUDAコードの90~95%をSYCLコードに自動的に移行させます[2]。このプロセスを終了するには、開発者は残りのコードを手動で完成させ、アーキテクチャに必要な性能レベルにカスタムチューニングします。

コードマイグレーションの使用方法:研究機関やインテルのお客様は、SYCLomaticと同じ技術を持つIntel DPC++ Compatibility Toolを使用して、複数のベンダーのアーキテクチャ上でCUDAコードをSYCL(またはoneAPIのSYCL実装であるData Parallel C++)へ移行することに成功しています。例としては、GROMACS 2022[3]を使用したストックホルム大学、easyWaveを使用したZuse Institute Berlin(ZIB)、Samsung MedisonBittwareなどがあります(その他の例についてはoneAPI DevSummitのコンテンツをご覧ください)。また、アルゴンヌ国立研究所のAuroraスーパーコンピュータ、ライプニッツ・スーパーコンピューティング・センター(LRZ)、GEヘルスケアなど、複数の顧客が現在および将来のIntel XeアーキテクチャベースのGPUでコードをテストしています。

SYCLomaticの入手先: SYCLomaticはGitHubのプロジェクトです。GitHubポータルには、プロジェクトへの技術的貢献の手順を説明した “contributing.md “ガイドがあり、最大限の容易さを保証しています。開発者は、ツールを使用し、ツールの進化を進めるためにフィードバックや貢献を行うことが推奨されます。

「CRK-HACCは、現在開発中のN体宇宙論シミュレーションコードです。Auroraに対応するため、Intel DPC++ Compatibility Toolを使用して、20以上のカーネルをSYCLに迅速に移行することができました。コード移行ツールの現在のバージョンはファンクタへの移行をサポートしていないため、私たちは簡単なclangツールを書いて、結果として得られるSYCLソースコードを私たちのニーズに合わせてリファクタリングしています。オープンソースのSYCLomaticプロジェクトでは、これまでの作業を統合してより堅牢なソリューションを実現し、ファンクタを利用可能な移行オプションの一部にすることを計画しています」と、HACC (Hardware/Hybrid Accelerated Cosmology Code), Cosmological Physics & Advanced Computing (anl.gov) の Steve (Esteban) Rangelは述べています。

開発者のためのリソース

詳細はこちら インテルのソフトウェアの優位性、デコードoneAPI.ioインテルoneAPI

[1]SYCLは、Khronos Group Inc.の商標です。

[2]インテルは2021年9月時点の推定値。Rodinia、SHOC、PENNANTなどの例を含む70のHPCベンチマークとサンプルのセットでの測定に基づいています。結果は異なる場合があります。

[3]GROMACS開発チームは、クロスアーキテクチャに対応した新しいコードを作成するために、CUDAコードをoneAPIのSYCL実装であるData Parallel C++(DPC++)へ移植しました。「GROMACSにSYCLサポートを追加した経験」、「GROMACS 2022はoneAPIでオープンソース創薬を推進」もご参照ください。

Sauce:Intel Open-Sources SYCLomatic Migration Tool to Help Developers Create Heterogeneous Code

タイトルとURLをコピーしました