大規模HPC

Aldec Scalable FPGA-based Accelerator従来のサーバでは消費エネルギーが大きい上に計算能力が足りなくなっている分野が数多くあります。ニューラルネットワーク、ディープラーニング、データマイニング、クラウドコンピューティング、学術研究などはそのうちのほんの一部です。近年、FPGAテクノロジが飛躍的に進化したために、HPCのアプリケーションにFPGAを応用できるようになりました。

アルデックのスケーラブルなFPGAベースのアクセラレータは大規模HPCのアプリケーションに最適です。現世代のFPGAボードは低消費電力のXilinx® Ultrascale™ FPGAを搭載し、卓越した計算能力を特徴としています。しかも省電力性はGPUベースのアクセラレータでは達成できないレベルです。

 

素早い統合と短時間での立上げ

ソフトウェア開発者は低位のハードウェア統合作業をせずにすぐに使えるハードウェアプラットフォームを必要としています。このような使用形態を理解した上で、アルデックはPCI ExpressドライバやソフトウェアAPIなどをまとめた、すぐに使えるソフトウェアスタックを提供します。Linuxホスト用とWindowホスト用両方を用意しています。この環境では、アルゴリズムはC言語からXilinx High Level Synthesis (HLS) などのツールで直接FPGA向けにコンパイルできます。ハードウェアの側では、アルゴリズムは「コンピュートデバイス」と呼ばれる合成可能なIPコアの形に変換され、標準的なインタフェースも作り込まれます。最もポピュラーなインタフェースはAMBA AXIなので、アルデックはProto-AXIホストインタフェース・モジュールを用意しました。このモジュールはHLSでのコンパイルプロセスで作成したコンピュートデバイスに簡単に組み入れることができます。

Proto-AXIモジュールはホストとHESボードの間で2GB/sを超える高いデータスループットが出せるように作られています。コンピュートデバイスとつながるように使いやすいメモリマップドインタフェースも装備し、またストリーミング用AXIへの変換も簡単です。ローカルデータバスは256ビットと広く、125MHzの周波数で動作しますので、コンピュートデバイスと内部・外部メモリとのデータ転送や、別々のFPGAに配置された2個のコンピュートデバイス同士のデータ転送の帯域幅は確実に高くなります。外部メモリ・コントローラもProto-AXIモジュールに組み込まれており、低レベルの細かいハードウェア・インプリメントの作業をエンドユーザーが行う必要はありません。詳しくは、次の技術文書で確認できます。Getting started with Aldec HES7ProtoAXI.

 

主な特徴

· HES-HPC FPGAベース・アクセラレータボード

   - Kintex-UltraScale XCKU085 / XCKU115

· 最大1,451,000論理セル、5,520 DSPスライス

   - Zynq-7000 XC7Z035 / XC7Z045 / XC7Z100

   - ホストPHY: PCI Express x8, USB, Ethernet

   - DDR4 16GB x 2, RLD3 576Mb x 4

   - PCIe, 2x QFSP+, USB 3.0, SATA, 2x Samtec Firefly, ADC/DAC

· RTL開発環境

· RTLポーティングサービス

 

ソリューションの内容

· HES-HPC FPGAベース・アクセラレータボード

· Proto-AXIホストインタフェース・モジュールとソフトウェアスタック

· RTLシミュレーション用AXIバス・ファンクショナルモデル(BFM)

· Riviera-PRO™ RTLシミュレータ

· 技術文書、チュートリアル、ホワイトペーパー

· JTAG接続でXilinx Integrated Logic Analyzerによるデバッグをフルサポート

· RTLポーティングサービスの完全サポート

 

HPCデザインフローの例では、Xilinx Vivado HLSでC言語から直接FPGA向けにコンパイルしています。

 Example_HPC_Design_Flow

高速化するプログラム(アルゴリズム)は2つに分割されます。1つはアクセラレータに、もう1つはホスト上で動作します。このようなパーティショニングは、Cコードのどの部分で計算負荷が高いかを示すプロファイリングをもとに行うことができます。FPGAで高速化するCコードの部分が決まったら、Xilinx Vivado HLSでCからVerilogまたはVHDLのRTLコードに変換します。このコードはさらに自動処理(合成・インプリメント)ができるようになっています。Vivado HLS以外にも、アルデックのパートナーであるNECのCyber Workbenchなどでもこの処理を行えます。

RTLコードはアルデックのProto-AXIに組み込む必要があります。同時に、メインホストのアプリケーションを修正して一部の関数をProto-AXIのAPIコールに置き換えます。

プロジェクト全体をFPGAボードで実行する前に、プロジェクトのインテグレーションや接続の部分にミスがないか、アルデックの高性能シミュレータRiviera-PROとProto-AXI協調シミュレーション・プラグインとAXI BFMで検証できます。

最後に、Xilinx Vivado環境で自動合成・インプリメントを行います。VivadoからはFPGAビットストリームとメインアプリケーションに合わせた設定ファイルが生成されます。

アルデックはFPGAボードをシームレスに使えるようにするランタイム環境を提供します。ホスト上でメインアプリケーションが起動されると、FPGAデバイスが自動で設定されます。そのためFPGAのオペレーションやプログラミングに関する専門知識は不要です。そのため、この環境はソフトウェア開発者に最適です。

Ask Us a Question
x

Ask Us a Question

x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.