OpenCL FPGAツールボックス

オープンシーエル

インテルFPGAソフトウェア開発用

Intel OpenCL SDKをサポートする当社のArria 10およびStratix 10 FPGAカード用のBSP。

概要

OpenCLを使用したFPGA 開発は、FPGA 開発の知識がほとんどない、あるいは全くないチームにとって最適です。また、従来のHDLワークフローよりも速いターンアラウンドを必要とするチームにとっても、最適なソリューションです。BittWare FPGAカード上のOpenCLは、当社の製品が提供する高度なハードウェアを活用するために、より多くの開発者プールをもたらします。

BittWare BittWare-tuned board support package (BSP) を通して、Intel OpenCL SDK をサポートする 10 および 10 デバイスを搭載した Intel FPGA ベースカードを提供します。Arria Stratix

既存のCPUまたはGPUベースのアプリケーションがFPGAアクセラレーション の恩恵を受けられるかどうか疑問に思っていますか?ベンチマークを実施し、性能向上の可能性を推定することができます。まずは、アプリケーション最適化サービスについてお問い合わせください。

OpenCL サポートは、インテルStratix 10 およびArria 10 FPGA を搭載した一部のカードに限定されています。Agilex を含む最新世代 FPGA 上でのハイレベル・ツールフローについては、次のものを提供しています。 oneAPIを提供しています(サポートされる製品については、ここをタップしてご覧ください)。

インテルStratix 10 バッジ
インテルArria 10 バッジ

ツールフローの柔軟性
ソフトウェアまたはハードウェアベース開発用

  • ソフトウェア指向のお客様に向けたOpenCLのサポート
  • アブストレーションによる開発の高速化
  • FPGA実行ファイル、ドライバ、APIのプッシュボタンフロー
  • 最適化されたHDL IPコアをライブラリとしてOpenCLデザインに追加する。

OpenCLとは?

OpenCLソフトウェア言語

Open Computing Language (OpenCL) 標準は、異種システム上のアルゴリズムを加速させるための、初のオープン、ロイヤリティフリー、統一プログラミングモデルです。OpenCLソフトウェアでは、中央演算処理装置(CPU)、グラフィック処理装置(GPU)、デジタル信号処理装置(DSP)、フィールドプログラマブルゲートアレイ(FPGA)などの異なるプラットフォーム間で、Cベースのプログラミング言語を使ってコードを開発することができます。

OpenCLの業界標準により、エンジニアリングチームは、HDLでプログラミングするハードウェアやファームウェアのエンジニアがしなければならなかった詳細なレベルに到達することなく、FPGA技術ベースの製品をターゲットにすることができます。既存のCPU/GPU CまたはOpenCLコードは、Intel OpenCL Software Development Kitで再コンパイルすることができ、FPGAハードウェアリソースを即座に利用することができます。

既存のコードを移植したり、新しいアルゴリズムを開発する場合、OpenCLソフトウェアは、FPGAベースのアクセラレータ製品の市場投入までの時間を短縮するための新しい標準となります。

OpenCLによるFPGAプログラミング

OpenCLでは、プログラマがOpenCLコード内で自動的にハードウェアレベルの最適化を行うことにより、専用のFPGAアクセラレータを構築することができます。FPGAの主要な機能と利点はシンタックスで抽象化され、プログラマはコンパイラを使用して高度な並列アプリケーションを作成することができます。再構成可能なFPGAロジックにより、ハードウェア専用機能のための専用ブロックや最適化されたブロックを生成することができます。

これまでFPGAは整数演算アクセラレータとして使用されてきましたが、Arria 10 FPGAファミリーは、浮動小数点専用リソース(最大1.5TFLOPS)による高いFLOPSを備えており、OpenCLソフトウェアがシームレスに活用できるため、FPGAを活用した全く新しいアプリケーションを実現します。

OpenCLソフトウェア開発キットは、FPGAロジックの高い演算能力とIOの速度のバランスをとるのに役立ち、OpenCLチャネル拡張により、カーネル間およびカーネルからIOへの高速データ転送を可能にします。

このチャネル機能と、GPUとは異なるアプリケーションのニーズに合わせて内蔵・搭載メモリをカスタマイズできる柔軟性の高いメモリ構成を組み合わせることで、BittWare FPGAアクセラレータをお客様のインフラに最適化したストリームコンピューティングノードとして利用できるプラットフォームを提供します。

OpenCL Software Development Kitで実現:

  • 数千のカーネル並列実行
  • 整数演算に最適化されたコンフィギュラブルFPGAロジック
  • 新しい浮動小数点専用FPGAリソース(最大1.5TFLOPS)
  • 設定可能なローカルおよびグローバルメモリ
  • カーネル間/カーネル間IO間の広帯域チャネル
  • ローパワー

インテルツールフロー

Intel OpenCL SDKはソフトウェアプログラマーのための開発環境であり、FPGA設計の考慮は抽象化され、コンパイラによって自動的に処理される。このフローは、ソフトウェアにおけるデバッグと最適化のサイクルに基づいており、FPGAコンパイルは、アプリケーションの大部分が設計され最適化されているときに限られた回数だけ実行されることになっています。

  1. 機能検証用エミュレータ
  2. OpenCL を FPGA アーキテクチャに最適化する- 300 以上の最適化
    a.並列性の向上
    b.パイプラインを確保する
    c.FPGAハードウェアリソースの使用
    d....
  3. プロファイルカーネルパフォーマンス
  4. FPGAハードウェアターゲットへのコンパイル

Intel SDK for OpenCLは、プログラマがシンプルな設計ガイドラインに従ってゲートレベルのパフォーマンスOpenCLコードを作成し、最小限の労力でカーネルコードをプラットフォーム間で移植できるようにするための完全な製品リリースです。OpenCL SDKは、FPGAアクセラレータ・ソリューションの生産と展開への最も効率的なパスです。

HDLとOpenCLの性能比較

CERNは、BittWare 385ボード上でHDLとOpenCLの両方でプログラムされた2つのアルゴリズムを比較した研究結果を発表しました。

開発期間の短縮2.5ヶ月 vs 2週間

より簡単な開発:3,400ライン vs. 250ライン

同様の性能です:35倍 vs 26~30倍アクセラレーション

CERNは、OpenCL isnteadを使用するHDL対応チームにとっても、コードベースが小さければ更新が容易であるという利点があると述べています。FPGAのロジック/DSPリソースの使用量も、両アプローチで同等でした。

出典はこちらReconstruction, Trigger, and Machine Learning for HL-LHC Workshop at MIT "FPGA as co-processors for reconstruction" Slide 19.

A10SA4フェード付き縦写真

ボードサポートパッケージ

BSPとは?

BittWareOpenCL Board Support Packages には、FPGA ベースのハードウェアとアルゴリズム(アクセラレーション )に関する当社の専門知識が集約されています。オンボードリソースとFPGA低レベルリソースはBSPによって自動的に活用され、プログラマはFPGAへの物理的実装よりもアルゴリズムに集中することができます。

BittWare BSPの提供は、特定のニーズに合わせてカスタマイズされます。COMPUTE を多用するアプリケーションでは、HPC BSP が FPGA のリソース利用を最大化します。データストリーミングアクセラレーション 、NETWORK Streams対応のMAC BSPは、インストリームビット操作のためにFPGAファブリックに直接データフローを提供します。

インテルのOpenCL SDKとBittWareのBSPを組み合わせることで、新たに利用可能になったOpenCLチャンネル機能を使用することができます。チャネルは、カーネル間またはIO間の高帯域幅のデータ転送を可能にするOpenCLコンストラクトです。高帯域幅のFPGAファブリックのローカルメモリ帯域幅は、このOpenCLチャネルによって活用することができます。

完全統合型ソリューション

BittWare OpenCL対応FPGAアクセラレータは、完全に統合された生産可能なソリューションとして提供されます。BittWare また、BSPデバッグキットを必要とするお客様には、インテルQuartus-II / OpenCL SDKのライセンスを含むBSPデバッグキットを提供します。

BittWare また、OpenCL BSPは、本番システムでの展開を容易にするためのいくつかの機能を備えています:

  • ボードの健康状態(消費電力と温度)
  • インテルPCIeハードIPコア(業界標準システムでテスト済み)
  • フラッシュリカバリーメカニズム

また、すべてのソフトウェアとハードウェアを含む、プレインストールされた、すぐに使える統合サーバーも提供しています。

HPC BSP

High Performance Computing BSP(HPC BSP)は、より大きなFPGAリソースをユーザーアルゴリズムに提供します。

OpenCL SDKの機能を使用して、最適化されたOpenCLカーネルコードの複数の並列インスタンスを複製することにより、FPGAファブリックの使用率を最大化します。

高帯域カーネル間チャネル対応

代表的なアプリケーションです:リソースの使用状況:
  • 暗号化
  • コンプレッション
  • などなど。
  • PCIeホストインターフェイス
  • グローバルメモリバッファ搭載

カスタマイズBSP

BittWare は、お客様のニーズに合わせてカスタマイズしたボードサポートパッケージを開発することも可能です。BittWare FPGAアクセラレータは、複数のI/Oプロトコルをサポートしています。当社のFPGAアクセラレーション の専門家チームは、お客様の組織と協力して、カスタマイズされたボードサポートパッケージを開発することができます。

アクセラレータの指標

OpenCL に対応したBittWare FPGA アクセラレータは、3 つの FPGA ファミリをベースにしています:Stratix Arria Stratix システムの要件に合うFPGAアクセラレータを選択する場合、顧客はまず、トップレベルのアルゴリズムのFPGAリソース要件とFPGAアクセラレータの機能を調べる必要があります。

BittWare 以下のセクションでは、BittWare BSP IP の提供について説明します。

メートル385395385A510T520N (Lタイル) (**)520N(Hタイル) (**)520N-MX (Hタイル)
ホストからグローバルメモリへの帯域幅8レーンPCIe2.08レーンPCIe2.08レーンPCIe3.016レーンPCIe 3.0 (8レーン×2)16レーンPCIe 3.0 (*)16レーンPCIe 3.0 (*)16レーンPCIe 3.0 (*)
グローバルメモリの深さ2x 4GB4x 8GB (*)4GB×2枚まで最大4倍速4GB(※)。4x 8GB4x 8GBHBM2 (*)
IOチャンネルネットワーク:2x 10GbE MAC (MAC BSP)ネットワーク4x 10GbE MAC (MAC BSP)ボード・トゥ・ボードの場合40Gbpsシリアルリンク×2、ネットワーク:10GbE MAC×2(MAC BSP)ボードtoボードで40Gbpsシリアルリンク×2ボードtoボードの場合4x 40Gbpsシリアルリンクボードtoボードの場合4x 100Gbpsシリアルリンクボードtoボードで4x 100Gbpsシリアルリンク(QSFP28経由)

(*) 在庫状況や詳細はお問い合わせください
(**) 520Cとも互換性がありますが、ボード間IOチャネルには対応していません。

OpenCLの実績

経験と革新

BittWareOpenCL SDK のサポートに関するインテルとのパートナーシップは、FPGA の高水準言語プログラミングを推進してきた 20 年間の経験を論理的に継承するものです。お客様のシステムの課題を理解し、お客様のアプリケーションを加速し最適化するための最適なアプローチを特定することは、BittWare'sのDNAです。

BittWare フォーカス

BittWare は、FPGAを使った製品のあるべき姿を考えています:

  • 直感的で使いやすい
  • フレキシブル
  • プロダクションレディ
  • 展開が容易
  • お客様のシステムへ統合

OpenCLはこれらの目標に貢献すると信じていますし、皆さんの成功に期待しています!

システムアクセラレーション の専門家集団

BittWare では、お客様のプログラムを成功に導くために、一流のデザイン・エンジニアリングチームを編成しています。私たちは、開発の初期段階からお客様と深く関わり、複数の専門分野を活用して、リスクを最小限に抑えながら、時間通り、予算通り、仕様通りのソリューションを提供することで、最高の仕事をします。

BittWare デザインサービス キーバリュー

  • リスクの低減
  • コストを下げる
  • 市場投入までの時間を短縮

BittWareの研究開発部門は、業界の課題に対して常に新しいソリューションを提供しています。

プリコンパイルされたAOCX

BittWare は、インテルのサンプル・ページで公開されているすべてのサンプル・デザイン用のプリコンパイル・パッケージを提供します。

OpenCLをサポートする製品を見る