ハイパフォーマンス・コンピューティング (HPC) のワークロードは、通常デフォルトで CPU または GPU を対象にしています。しかし、強力なインテル® FPGA アクセラレーターが利用可能になったことで、これが変化しています。このケーススタディーで示されたように、HPC ワークロードは、高レベルの開発ワークフローを使用する場合でも、FPGA で最高のパフォーマンスを実現できます。このケーススタディーでは、アプリケーションの詳細、ツールフロー、および最新の Intel Agilex® 7 FPGA テクノロジーへの移行について説明します。その他の研究者は、この情報を独自の HPC アプリケーション向けに検討できます。
はじめに
分子モデリングは、現代の科学研究においてますます重要なツールとなっています。科学者は、計算方法の助けを借りて、分子の複雑なモデルを作成し、その特性と作用を研究できます。しかし、これらのモデルを作成することには、数十億の計算が必要であり、研究者は計算の課題を克服して、目標を実現しなければなりません。
分子モデリングの課題
Institute for Advanced Chemistry of Catalonia (CSIC) は、新しいテクノロジーを開発し、分子構造の分野を改善することに注力しています。分子構造の知識は、生体臨床医学で使用し、新しい医薬品や治療を生み出すことができます。計算分子モデルを開発し、その構造を検証する手法は、よく知られており、理解されています。
分子構造を検証するための反復方法論には、次のステップがあります。
- 計算分子モデルを作成します。
- 計算スペクトルを生成します。
- 計算スペクトルと分子の既知の分析スペクトルを比較します。
- スペクトルが一致すると、分子の構造は同一です。
- 一致しない場合、計算モデルを改善し、新しいスペクトルを生成します。
この方法の課題は、検証段階に必要な計算労力です。
インテル® Xeon® Gold プロセッサー (3.2GHz、1 コア、1 スレッド) を使用して 200 万のデータポイントを持つ単純な分子を解析するには、計算に 9,644.544 秒、もしくは 2 時間 41 分かかります。これでは、1 作業日あたり 3 回もしくは 4 回の反復しか行うことができず、開発時間に大きな影響が与えられます。
これは明らかにハイパフォーマンス・コンピューティングの問題であったため、CSIC の科学者たちは、バルセロナ・スーパーコンピューティング・センター (BSC) に支援を求めました。
HPC: FPGA に最適
BSC は、世界クラスのコンピューティング・リソース、特に、CPU、GPU、FPGA を搭載したその異種混合データセンター・アーキテクチャーでよく知られています。彼らは、CPU の速度が遅すぎることを知っていたため、GPU または FPGA がニーズにより適切かどうかを判断しようとしました。
BSC のチームは、OpenCL カーネルとして書き出されたアルゴリズムを調べました。
主要なアルゴリズムの機能:
このアルゴリズムは、GPU と FPGA が効率的にサポートする、単精度浮動小数点および倍精度浮動小数点の両方を使用しています。
N が 200 万の上限、または潜在的な上限の N を備えたネスト済みの For ループが存在します。
GPU を使用するには、すべての For ループを完全に展開し、大量のハードウェアを作成することが必要であり、大型の GPU を必要とするため、電力消費量が増加します。
FPGA の使用は、より効率的な実装オプションでしょうか?FPGA を使用することは、ワークロード開発に課題をもたらすでしょうか?
HPC における FPGA のメリット
FPGA は、GPU が最適化されていないワークロードに対応できます。FPGA は、カスタム・ハードウェアを使用してアルゴリズムを実装していますが、今日の選択肢には、ソフトウェア開発者に FPGA のパフォーマンスをもたらす、oneAPI などの高レベルのツールフローが含まれます。
FPGA のユニークな機能は、次の通りです。
- パフォーマンス: FPGA は、アルゴリズムに最適な、完全に柔軟なアーキテクチャーがあります。これは、アルゴリズムが CPU と GPU の固定アーキテクチャーに適応する必要がないことを意味します。受信するデータは、CPU を使用せずに、メモリーから直接処理できます。
- プログラマビリティー: FPGA ワークロードは、その場で変更し、最新のアルゴリズム開発で更新できます。ワークロードを並列実行でき、大規模なワークロードは、豊富な I/O リソースを使用して、複数の FPGA にわたって分散できます。
- 生産性: FPGA は、オープン FPGA スタック (OFS) により生産性を向上させることができ、既存のサーバーに OFS カードを簡単にインストールし、システムを構成できます。
- 電力: 消費電力は極めて重要です。FPGA は、CPU と GPU よりも少ないクロックサイクルで、より低いクロック周波数で実行できるため、消費電力とコストの削減につながります。
- 価格: FPGA アクセラレーション・カードには、多くのオプションがあります。FPGA カードのインストールでパフォーマンスを向上することは、既存のソリューションを更新するよりもコスト効率が高くなることがあります。
BSC の HPC チームは、FPGA がこのアルゴリズムに最適であると判断しました。
従来のアクセラレーター
BSC の HPC アクセラレーション・チームは、すでに 2 つのインテル® プログラマブル・アクセラレーション・カード (インテル® PAC) ソリューションにアクセスしていました。
彼らは、既存の OpenCL アルゴリズムを使用し、インテル® PAC で計算スペクトルを計算しました。
結果は以下の表に取り込み、次のように要約されることができます。
- インテル® Arria® 10 GX FPGA 搭載のインテル® PAC で生成された最初の結果は、CPU の結果より 17.8 倍高速であり、カーネル実行時間を約 1 万秒から 540.457 秒まで短縮することを示しました。
- BSC は、その後 FPGA の適応性のあるアーキテクチャーを活用することで、64 ビットの倍精度浮動小数点アキュムレーターを、許容可能な精度損失で 40 ビット整数データタイプに変換することができました。浮動小数点計算を任意の精度のデータタイプに置き換えることは、FPGA に特有のものであり、処理時間をさらに 274.02 秒に短縮します。
- インテル® Stratix® デバイス搭載のインテル® FPGA PAC D5005 でこのプロセスを繰り返すことで、処理時間をさらに 81 秒まで短縮できます。
プラットフォーム | タイルサイズ | 係数を展開 | ターゲット Fmax (MHz) | 実際の Fmax (MHz) | 内側ループのレイテンシー | カーネル実行時間 (N=2,000,000) | ゲイン |
---|---|---|---|---|---|---|---|
CPU1 | 3200 | 9644.544 | 1.0 倍 | ||||
インテル® Arria® 10 PAC | 256 | 16 | 200 | 232 | 14 | 540.457 | 17.8 倍 |
インテル® Arria® 10 PAC2 | 4096 | 32 | 200 | 244 | 5 | 270.020 | 35.2 倍 |
D5005 | 1024 | 64 | 180 | 241 | 16 | 130.012 | 74.2 倍 |
D50052 | 8192 | 64128 | 270 | 255 | 168 | 130.01281.573 | 118.2 倍 |
FPGA の結果は優れていますが、これらは 2 つの旧世代の FPGA テクノロジーを使用して作成され、16 年前に最初に導入された OpenCL を使用しました。BSC のチームは、最新のツールとシリコンを使用することで、パフォーマンスをさらに向上できるのではと考えました。
現代のデータセンター向けの柔軟で組み立て可能なソリューション
現代のシリコン: Intel Agilex® FPGA
インテルの最新の FPGA テクノロジーは、Intel Agilex® FPGA です。Intel Agilex® 7 FPGA F シリーズは、さまざまなアプリケーションでハイパフォーマンス・コンピューティングを実現するよう設計されています。その高度なアーキテクチャーは、FPGA と CPU の利点を組み合わせており、高スループットと低レイテンシーのパフォーマンスを実現できます。
Intel Agilex® 7 FPGA F シリーズのもう 1 つの利点は、電力効率です。これは、高いパフォーマンスを維持しながら消費電力を削減する高度な電源管理機能で設計されています。Intel Agilex® 7 FPGA F シリーズの FPGA ファブリックは、10 nm プロセス・テクノロジーを使用して構築されており、低消費電力でハイパフォーマンス・コンピューティングを実現できます。この電力効率は、データセンター、エッジ・コンピューティング、自動運転車などの状況で消費電力を最小限に抑えながら、ハイパフォーマンス・コンピューティングを必要とするアプリケーションで不可欠です。
また、すべての現代のデータセンターでは、セキュリティーも重要な懸念事項であり、Intel Agilex® 7 FPGA F シリーズは、高度なセキュリティー機能を提供することで、この懸念に対処しています。これは、安全な起動とランタイム・セキュリティーを提供する組込みセキュリティー・サブシステムで設計されています。また、システムの信頼性を保証するハードウェア・ルートが内蔵されています。これらのセキュリティー機能は、金融機関、政府機関、医療機関など、機密データを保存するアプリケーションで不可欠です。
現代のツールチェーン: インテル® oneAPI ベース・ツールキット
インテル® oneAPI ベース・ツールキット (ベースキット) は、高性能なクロスアーキテクチャー・アプリケーションを作成するプロセスを簡素化するために設計されたソフトウェア開発ツールキットです。これは SYCL 上に構築されており、CPU、GPU、FPGA、AI アクセラレーターなど、幅広いプロセッサーで動作します。
SYCL (「シクル」と発音) は、The Khronos Group が保守を行うオープンな規格です。これは、ロイヤルティー無料、クロス・プラットフォームの抽象化レイヤーであり、開発者が ISO C++ を使用してヘテロジニアス・プロセッサー向けのコードを記述することを可能にします。ホストとカーネルの両方のコードを、同じソースファイルに含めることができます。
oneAPI の主な利点の 1 つは、開発プロセスを簡素化することです。開発者は、インテル® oneAPI ベース・ツールキット (ベースキット) により、異なるプログラミング言語を学習する必要なく、異なるアーキテクチャーで実行するアプリケーションを作成できます。つまり、開発者が 1 度コードを記述すれば、それを異なるプロセッサーで実行できるため、時間と労力を大幅に節約できます。
oneAPI のクロスアーキテクチャーの互換性により、開発者は、アプリケーションを将来に備え、それが将来幅広いプロセッサーで実行できることを認識できます。これは、さまざまな種類のハードウェアで実行できるアプリケーションを作成したいと考える開発者にとって、特に重要となります。これが、BSC などの施設に理想的な理由です。
BSC からの質問
Intel Agilex® 7 デバイスと oneAPI を使用することで、分子モデリングの効率をさらに向上させることができましたが、これらの変更により、課題が生まれました。
OpenCL のソースは SYCL へ移行する必要があります。これがもたらす問題とは?
BSC は、Intel Agilex® 7 FPGA デバイスを取得できましたが、FPGA アクセラレーション・カードを簡単に実装できたのでしょうか?
コード移行の容易さを証明
BSC の調査では、OpenCL からのコード移行を容易にする、SYCL の 2 つの側面が強調されました。
- カーネルコードの移行: SYCL は、ほかの C++ ライブラリーやフレームワークとシームレスに連携するように設計されており、既存の C++ コードベースへの統合を容易にします。
- ホストコードの更新: SYCL は、並列プログラミングの詳細の多くを抽象化する高レベルの API を提供します。これにより、開発者がヘテロジニアス・プログラミングを開始することがはるかに容易になります。
カーネルコードの移行
OpenCL カーネルコードは、機能的な変更なしで移行されました。唯一の変更は、SYCL 構文に対応することでした。
- OpenCL カーネル宣言は、SYCL ラムダ関数に調整されました。
- 各カーネルの引数ごとにバッファーアクセサーが追加されました。
このようなわずかな変更の理由は、簡単に説明されます。SYCL が OpenCL と比較して、ヘテロジニアス・プログラミングにもたらす主な改善点は、ホストとカーネル間での、シンプルながらより堅牢なインターフェイスの仕様です。SYCL は、C++17 上に構築されるため、ほかの C++ ベースのコードを容易に統合できます。ほとんどの OpenCL カーネルコードは、新しい SYCL インターフェイス・モデルに一致する構文の変更以外、SYCL に移行する際の変更がほとんど必要ありません。
ホストコードの更新
元の OpenCL ホストコードは、OpenCL で明示的に管理する必要がある多くの詳細が SYCL によって自動的に処理されるため、大幅に簡素化されました。元のコードは 566 行で構成されていましたが、更新された SYCL コードには 285 行しかありません。
予想通り、ホストとカーネル間のインターフェイスが指定されるホストコードへの移行の影響が、最も大きいものでした。しかし、SYCL は、はるかに堅牢なインターフェイス仕様とマネージャーを備えているため、OpenCL で必要とされるタスクの多くが必要でなくなりました。最終的な最大の更新事項は、不要になった宣言と変数の削除です。
BittWare のアクセラレーション・カード
どのようなアクセラレーション・カードも、開発には時間と労力が必要です。単にボードにコンポーネントを追加するだけではありません。FPGA デバイスでは、ワークロードに関するすべてのサポート・インターフェイスと通信ロジックが CPU と通信する必要があります。
今日の FPGA は、最新のデバイスでの DDR5 などの信号整合性から、温度管理に関する考慮事項まで、適切な PCIe カードを構築するためのパフォーマンス要件を大幅に強化しています。環境監視やカードレベルのセキュリティーなどのタスク向けの堅牢なツールのスイートの構築は、カードデザインへの投資のリスクをほんの数年前よりも大幅に高めています。
BSC は、この開発上の課題を解決するために、Molex の一部であるインテル® チタンパートナーの BittWare に協力を求めました。
BittWare は、インテル® FPGA を使用するエンタープライズ・クラスのアクセラレーション製品を設計し、製造しています。同社は、元々の BSC のインテル® PAC カードを製造していましたが、今日では最新の Intel Agilex® 7 デバイスを搭載した PCIe カードを提供しています。顧客は、独自のカードの作成に対するリスク削減の重要な要因として、BittWare (およびその親会社である Molex) の強みに期待しています。
これらの高性能なプログラマブル・アクセラレーターにより、顧客はインテル® FPGA ソリューションを低リスクで迅速に開発し、導入できます。
BittWare は、コンピューティング、ネットワーク、ストレージなど、いくつかの幅広い市場分野を捉えています。多くのワークロードは、自然言語認識、推奨エンジン、ネットワーク・モニター、推論、安全な通信、分析、圧縮、検索など、FPGA に適しています。BittWare は、インテル® FPGA をベースとした多くの製品を提供しており、これらは従来の RTL に加えて、oneAPI をサポートします。
BSC は、Intel Agilex® 7 A027 デバイスを使用する市販の BittWare IA-840f カードを購入することで、開発上の問題を解決することができました。
結果: 期待以上
インテル® oneAPI ベース・ツールキット (ベースキット) と BittWare IA-840f アクセラレーション・カードの使用結果は、期待を上回るものでした。
- ソースコードは、容易かつシームレスに移行されました。
- BittWare アクセラレーション・カードは、oneAPI に接続され、動作しました。
パフォーマンスの向上
BSC は、最新のツールとシリコンを使用して、以前の結果を再生成し、以下の表に追加することができました。このアルゴリズムは、新しいプラットフォームで 61 秒、カスタマイズされたアキュレーター・バージョンで 41 秒で実行され、CPU と比較して 233 倍、および当初の インテル® Arria® 10 PAC を使用した OpenCL のソリューションと比較して 13 倍の向上を実現しました。
プラットフォーム | タイルサイズ | 係数を展開 | ターゲット Fmax (MHz) | 実際の Fmax (MHz) | 内側ループのレイテンシー | カーネル実行時間 (N=2,000,000) | ゲイン |
---|---|---|---|---|---|---|---|
CPU3 | 3200 | 9644.544 | 1.0 倍 | ||||
インテル® Arria® 10 PAC | 256 | 16 | 200 | 232 | 14 | 540.457 | 17.8 倍 |
インテル® Arria® 10 PAC2 | 4096 | 32 | 200 | 244 | 5 | 270.020 | 35.2 倍 |
D5005 | 1024 | 64 | 180 | 241 | 16 | 130.012 | 74.2 倍 |
D50052 | 8192 | 64128 | 270 | 255 | 168 | 130.01281.573 | 118.2 倍 |
IA-840f | 2816 | 88 | 150 | 374 | 12 | 61.277 | 157.4 倍 |
IA-840f2 | 10240 | 160 | 350 | 380 | 8 | 41.305 | 233.5 倍 |
実際のパフォーマンス以上
FPGA は、CPU や GPU とは異なり、開発者を制約する固定アーキテクチャーを持ちません。この適応性により、開発者は発想を広げて考えることができます。BSC は、この機能を活用し、アキュムレーションの精度を低下させることでアルゴリズムのパフォーマンスを向上しました。
倍精度は、クロックサイクルを要する反復計算により実現されますが、FPGA は、標準の C++/SYCL/OpenCL データタイプに限定されません。これは、任意の幅のデータタイプを作成できます。BSC は、データ範囲を分析した後、倍精度浮動小数点アキュムレーターを結果の精度を損なうことなく、40 ビット整数アキュムレーターに置き換えることができると判断しました。
これにより、開発者は、シリコンが提供する実際のパフォーマンス内容に依存するだけでなく、アルゴリズムを改善することができます。検証時間は、コードを更新し、oneAPI を再度実行して新しい実装を作成した後、わずか 41 秒に短縮され、元の CPU と比較して 233 倍の高速化を実現しました。
まとめ
HPC におけるケーススタディーの数は増加しており、最新の Intel Agilex® FPGA ソリューションは、ワークロードのパフォーマンスだけでなく、要件においてもほかのアーキテクチャーと競合でき、開発を容易にすることが示されています。さらに、市販の PCIe カードは、パフォーマンスを評価したり、コンピューティング・クラスターを構築するために利用可能であり、HPC におけるヘテロジェニアス・ソリューションに対する需要の増加が期待されます。
詳細情報
- このケーススタディーは、次世代の Intel Agilex® FPGA によるハイパフォーマンス・コンピューティングのウェビナーでご覧いただけます。
- インテル® oneAPI ベース・ツールキットをダウンロードできます。
- oneAPI ベース・ツールキット用インテル® FPGA アドオンで、oneAPI と FPGA に関連するすべての情報を得ることができます。
- oneAPI FPGA Github で、さらに多くの oneAPI FPGA サンプルを参照できます。
- 120 日間の無料アクセスが可能なインテル® DevCloud for oneAPI で、今すぐ開始できます。