
この記事は、インテルのブログで公開されている「Migrating High-performance Flood Modelling Software from CUDA* to SYCL* with oneAPI」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。

SYCL* コードベースの洪水シミュレーションは、同じ NVIDIA* GPU 上で元の CUDA* コードよりも 10% 以上高速
洪水は毎年大きな被害をもたらし、人々やインフラに大きな脅威をもたらします。気候変動により、世界中で洪水が頻発し、深刻化しています。水力学的洪水モデルは、洪水リスクの軽減に役立つ強力なツールであり、洪水発生時の水の流れと洪水の範囲をシミュレートできます。これらのモデルは、洪水を予測し、洪水リスクを理解するために不可欠であるとともに、社会の耐性を高めるのにも役立ちます。
SynxFlow プロジェクトについて
SynxFlow (英語) は、バーミンガム大学の Xilin Xia 博士とその同僚が CUDA*、C++、Python* で開発した、オープンソースの GPU ベースの水力学的洪水モデリング・ソフトウェアです。シミュレーションの実行に CUDA* コードを使用し、データの前処理と視覚化に Python* コードを使用しています。複数の GPU で動作する SynxFlow は、数億の計算セルとメートルレベルの解像度で、リアルタイムよりも高速に洪水シミュレーションを実行できます。ユーザーフレンドリーな Python* インターフェイスを備えたオープンソース・ソフトウェアであるため、災害時のリスク評価を行うデータサイエンス・ワークフローに簡単に統合できます。そのため、このモデルは洪水早期警報システムのサポートや、(再) 保険会社向けの洪水マップの作成など、研究や産業界で広く使用されています。
SynxFlow ソフトウェアは、洪水シナリオや、地滑り流出や土石流などの関連する危険をシミュレートできます。このようなシミュレーションは、緊急サービスの事前計画と管理において重要な役割を果たします。自然災害の詳細な予測は、災害による社会的、経済的悪影響を軽減するのに役立ちます。リスク評価と災害対策のほかにも、SynxFlow による洪水シミュレーションは、都市計画、環境保護、気候変動への適応、保険および財務計画、インフラストラクチャーの設計とエンジニアリング、一般の意識向上と教育にも役立ちます。
課題
新しいアプリケーションには新しい課題が生じます。自然環境研究評議会 (英語) が支援しているバーミンガム大学 (英語) と 英国生態水文学研究所 (英語) の共同プロジェクトにおいて、Xilin 博士とその同僚は、新世代の確率的洪水予測システムを開発しています。
確率的洪水予測は、次のような要因により、計算が困難なプロセスです。
- 大規模なデータセットの保存、検索、管理
- 複雑なリアルタイム・データを処理するハイパフォーマンス・コンピューティング要件
- 変化する現実世界の状況に応じた必要なモデルの調整と検証
- さまざまな (水文学、水力学、気象) モデルの効率的な統合とモデル間の正確なデータ転送、など
洪水予測システムは同時に多くの課題に対処しなければならないため、並列データ処理と計算負荷の高いタスクをハードウェア・アクセラレーターにオフロードすることで、システムからより速く結果を得る必要があります。したがって、SynxFlow チームは、さらに大きなスーパーコンピューターを使用することで、洪水シミュレーションの規模を拡大し、シミュレーション時間を大幅に短縮する必要があります。しかし、英国の最新スーパーコンピューターである DAWN (英語) は、SynxFlow がサポートしていないインテル® GPUを使用しています。
これらの課題に対処するため、研究者は SynxFlow モデルを改良し、スーパーコンピューター上のマルチベンダー GPU でパフォーマンスを移植可能かつスケーラブルにするという新しい目標を掲げました。つまり、SynxFlow コードを CUDA* からマルチベンダーをサポートする別のプログラミング言語に、現実的な時間枠内 (数年ではなく数週間) で移行する必要があります。
oneAPI を利用したソリューション
さまざまなオプションを検討した結果、SynxFlow プロジェクト・チームは、Unified Acceleration Foundation (UXL) の oneAPI 仕様のインテル® oneAPI ベース・ツールキット実装を利用することにしました。oneAPI は、マルチアーキテクチャー、マルチベンダー対応の SYCL* フレームワークに基づいています。インテル、NVIDIA*、AMD* GPU をサポートしており、インテル® DPC++ 互換性ツール (インテル® DPCT) により、CUDA* から SYCL* へのコード移行が簡単かつ自動化されます。
SynxFlow コードの移行プロセスはスムーズでした。Microsoft* Visual Studio* を使用してプロジェクトを再編成した後、Xilin 博士はインテル® DPC++ 互換性ツールを実行しました。これにより、CUDA* カーネルと API 呼び出しのほとんどが自動的に SYCL* に変換されたコードが生成されました。自動変換後にコンパイルすると、いくつかのエラーが発生しましたが、移行ツールの出力に含まれるエラー診断のヒントと警告に基づいて簡単に修正できました。より時間がかかったのは、NVIDIA* Collective Communications Library (NCCL) ベースの GPU 間通信を GPU ダイレクト対応のインテル® MPI ライブラリー (英語) 呼び出しに変更することでした。これは自動的に行われませんでした。
重要な結果
「生成されたコードは、Codeplay* の oneAPI プラグインを使用することで、CPU、インテル® GPU、NVIDIA* GPU 上で実行できます。パフォーマンスの最適化を行っていない状態でも、大都市の洪水のシミュレーションでは、SYCL* コードのほうが同じ NVIDIA* A100 GPU 上の元の CUDA* コードよりも 10% 以上高速です[1]。インテル® データセンター GPU Max 1550 でもパフォーマンスは同等です。インテル® データセンター GPU Max 1550 では、同じシミュレーションに NVIDIA* A100 GPU よりも約 40% 長くかかります。スケーラビリティーについては、コードは NVIDIA* およびインテル® GPU ベースのスーパーコンピューターの両方で、ほぼ 90% の強力なスケーリング効率を達成しました。」 — バーミンガム大学助教授、Xilin Xia 博士 |
要約すると、複雑な CUDA* ベースの洪水シミュレーション・コードを SYCL* に移行することは有望であり、パフォーマンスの移植性とスケーラビリティーの両方を達成しました。インテル® oneAPI ベース・ツールキットは、移行をスムーズかつ容易に管理できるようにしてくれました。
インテル® データセンター GPU Max 1550 は、インテル® Tiber™ デベロッパー・クラウド上でアクセスいただけます。エクセルソフトでは、インテル® Tiber™ デベロッパー・クラウドの評価用クーポンを配布しています。ご興味のある方は、こちらのフォームよりお問い合わせください。
著者について
Xilin Xia 博士は、英国バーミンガム大学工学部レジリエンス工学科助教授であり、アラン・チューリング研究所のチューリング・フェローでもあります。洪水、地滑り、土石流/泥流などの自然災害とその影響の計算モデリングを研究しています。世界中で使用されている数値解析手法とオープンソース・コードの開発者でもあります。オープンソースの洪水モデル開発への貢献により、2024年スルタン・ビン・アブドルアジーズ王子国際水賞を受賞しています。
次のステップ
インテル® DPC++ 互換性ツールと、そのオープンソース版である SYCLomatic (英語) を使用すると、CUDA* から SYCL* へ自動的に効率良くコードを移行し、さまざまなベンダーのハードウェアでヘテロジニアス・コンピューティングを高速化できます。
CUDA* から SYCL* へのカタログ (英語) で実用的なアプリケーションのコード移行例を確認できます。また、インテルの oneAPI 搭載ソフトウェア・ポートフォリオにある AI、HPC、Rendering (英語) ツールもぜひチェックしてみてください。
ソフトウェアを入手
インテル® DPC++ 互換性ツールは、スタンドアロン・バージョンまたはインテル® oneAPI ベース・ツールキットの一部として利用できます。
関連資料
- インテル® oneAPI プログラミング・モデル
- インテル® DPC++ 互換性ツール・ドキュメント
- SYCLomatic ドキュメント (英語)
- CUDA* から C++ with SYCL* への移行
- Codeplay の oneAPI for NVIDIA* GPU プラグイン
法務上の注意書き
[1]
測定日: 性能の測定結果は、2024年5月時点のバーミンガム大学と英国生態水文学研究所によるテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。
シミュレーション・サイズ: 合計 2.625 億グリッドセル
ハードウェアとソフトウェアの構成:
- NVIDIA* マシン (Baskerville HPC): 16 または 32 x NVIDIA* A100 GPU、CUDA* Toolkit v11.1
- インテル・マシン (DAWN HPC): 16、32、または 64 x インテル® データセンター GPU Max 1550、インテル® oneAPI ベース・ツールキット v2024.2.0
性能の測定結果はシステム構成の日付時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品またはコンポーネントはありません。
性能は、使用状況、構成、その他の要因によって異なります。実際の費用と結果は異なる場合があります。
インテルのテクノロジーを使用するには、対応したハードウェア、ソフトウェア、またはサービスの有効化が必要となる場合があります。インテルは、サードパーティーのデータについて管理や監査を行っていません。ほかの情報も参考にして、正確かどうかを評価してください。
日本語での優先サポートのご案内
エクセルソフトは、インテル® ソフトウェア開発ツールの正規販売代理店として、25 年以上にわたって国内の開発者向けに日本語で技術サポートや最新情報を提供してきました。インテルとの長年の強固なパートナーシップを通して、国内に存在する多くの企業、研究機関、学術機関でのツールの導入やプログラムの最適化に携わってきた経験を活かし、国内の開発者や企業によるクラウドの導入を促進するだけでなく、インテル開発ツールを活用してクラウド環境でも高速でオープンな開発を実現するためのお手伝いをします。