OpenCL* サポートページ
タイトル | 詳細 |
インテル® FPGA SDK for OpenCL™ プロ・エディション・リリースノートでは、インテル® FPGA ソフトウェア開発キット (SDK) for OpenCL™ プロ・エディションおよびインテル® FPGA Runtime Environment (RTE) for OpenCL™ プロ・エディション・バージョン 19.1 に関する最新情報を提供します。 | |
このガイドは、インテル® FPGA ソフトウェア開発キット (SDK) for OpenCL™ をインストールする手順を説明します。このドキュメントには、インテル® FPGA SDK for OpenCL™ で OpenCL* アプリケーション・サンプルをコンパイルする手順も含まれています。 | |
このガイドは、OpenCL* 用のランタイム環境 (RTE: Runtime Environment) をインストールする手順を解説します。このドキュメントには、RTE とともに OpenCL* アプリケーションを展開する手順も含まれています。 | |
このガイドは、インテル® FPGA SDK for OpenCL™ コンパイラーおよびツールについての説明、推奨事項、利用情報を提供します。インテル® FPGA SDK for OpenCL™ は、インテル® FPGA 向けの OpenCL* 対応ヘテロジニアス並列プログラミング環境です。 | |
このガイドは、インテル® FPGA SDK for OpenCL™ の機能を利用して、インテル® FPGA 向けの OpenCL* アプリケーションを最適化する方法についての基本情報を提供します。 | |
このガイドは、インテル® FPGA SDK for OpenCL™ を設定、利用して、Cyclone® V SoC 開発キット上で OpenCL* アプリケーションを実行する手順について解説します。 | |
インテル® FPGA SDK for OpenCL™ カスタム・プラットフォーム・ツールキット・ユーザーガイド (英語) |
このガイドは、インテル® FPGA SDK for OpenCL™ カスタム・プラットフォームを作成するための手順の概要を解説します。 |
インテル® FPGA SDK for OpenCL™ Stratix® V ネットワーク・リファレンス・プラットフォーム移植ガイド (英語) |
このガイドは、Stratix® V ネットワーク・リファレンス・プラットフォーム (s5_net) を独自のプラットフォームとしてカスタマイズするうえで実践可能な手順および設計上の考慮事項について説明します。このドキュメントには、ネットワーキング用に設計されたアクセラレーション・カード上のハードウェアの利用効率を最大化するために、異種のメモリーバッファーおよび I/O チャネルなどの機能に関するリファレンス情報も含まれています。 |
インテル® FPGA SDK for OpenCL™ Cyclone® V SoC 開発キット・リファレンス・プラットフォーム移植ガイド (英語) |
このガイドは、インテル® FPGA SDK for OpenCL™ とともに使用するための Cyclone® V SoC 開発キット・リファレンス・プラットフォーム (c5soc) のハードウェアおよびソフトウェア設計について説明します。 |
インテル® FPGA SDK for OpenCL™ Arria® 10 GX FPGA 開発キット・リファレンス・プラットフォーム移植ガイド (英語) |
このガイドは、インテル® FPGA SDK for OpenCL™ とともに使用するためのインテル® Arria® 10 GX FPGA 開発キット・リファレンス・プラットフォーム (a10_ref) のハードウェアおよびソフトウェア設計について説明します。 |
インテル® FPGA SDK for OpenCL™ Arria® 10 SoC 開発キット・リファレンス・プラットフォーム移植ガイド (英語) | このガイドは、インテル® FPGA SDK for OpenCL™ とともに使用するためのインテル® Arria® 10 SoC 開発キット・リファレンス・プラットフォームのハードウェアおよびソフトウェア設計について説明します。 |
インテル® FPGA SDK for OpenCL™ Stratix® 10 GX 開発キット・リファレンス・プラットフォーム移植ガイド (英語) |
このガイドは、インテル® FPGA SDK for OpenCL™ とともに使用するためのインテル® Stratix® 10 GX 開発キット・リファレンス・プラットフォームのハードウェアおよびソフトウェア設計について説明します。 |
タイトル | 詳細 |
このホワイトペーパーでは、ストリーミング分析のために FPGA インライン・アクセラレーションを実装する手法を紹介します。 |
|
このホワイトペーパーでは、インテル® FPGA SDK for OpenCL™ でプログラムされたインテル® FPGA による、GATK の HaplotypeCaller アルゴリズムのアクセラレーションについて説明します。 |
|
このホワイトペーパーでは、インテル® FPGA を使用するメリットと、OpenCL* カーネルの実行および最適化における FPGA と GPU の違いについて取り上げます。 |
|
このホワイトペーパーでは、インテル® SoC FPGA による、多機能プリンター画像処理のコア・パイプラインに対する OpenCL* の適用について考察します。 |
|
このホワイトペーパーでは、OpenCL* をインテル® FPGA とともに使用するメリットについて、ほかのハードウェア・アーキテクチャーや従来の FPGA 開発手法と比較して説明します。 |
|
OpenCL* でのフラクタルビデオ圧縮: アクセラレーション・プラットフォームとしての CPU、GPU、FPGA の評価 (PDF、英語) |
このホワイトペーパーでは、OpenCL* でのフラクタル圧縮アルゴリズムのリアルタイム実装について説明します。アルゴリズムを OpenCL* で効率的に実装し、複数の CPU、GPU、FPGA に対し最適化する方法について示しています。 |
このホワイトペーパーでは、OpenCL* を使用することで、従来のソフトウェア重視の手法に近い抽象化レベルで、プログラマーが効率的に FPGA を活用する方法について考察します。 |
|
このアプリケーション・ノートでは、OpenCL* ツールフローを使用して FPGA で AES 暗号化を実行する方法について紹介します。 |
|
このホワイトペーパーでは、ヨーロピアン・オプションの行使を伴うさまざまな金融派生商品をモンテカルロ法を使用して評価する目的で、インテル® FPGA で OpenCL* を使用し、その性能および使いやすさを比較します。 |
|
このホワイトペーパーでは、低レイテンシーのデータ移動を実行しながら、演算の即時オフロードの実現可能性を実証するために、OpenCL* と Verilog HDL の混合プログラミングを使用した高性能な FPGA 間イーサネット通信を提案しています。 |
OpenCL* を利用したオプティカル・フローと歩行者検出の実装 (英語)
OpenCL* と FPGA への入門として、低コスト・低消費電力 SoC によって、動き予測および歩行者検出アルゴリズムを高速化します。
OpenCL* がヘテロジニアス環境にもたらす統合プログラマビリティー (英語)
OpenCL* が異機種コンピューティング向けの統合プラットフォームとして適している理由をご覧いただけます。このデモでは、GPU 向けに記述された NVIDIA コードのターゲットを Stratix® V FPGA に変更します。
OpenCL* がヘテロジニアス環境にもたらす統合プログラマビリティー (英語)
OpenCL* が異機種コンピューティング向けの統合プラットフォームとして適している理由をご覧いただけます。このデモでは、GPU 向けに記述された NVIDIA コードのターゲットを Stratix® V FPGA に変更します。
FPGA へのオフロードによる、OpenCL* でのアルゴリズム・パフォーマンスの高速化 (英語)
演算を多用する反復的浮動小数点アルゴリズムであるマンデルブロー・アルゴリズムの性能が、OpenCL* によっていかに向上するかをご覧いただけます。
インテルの SoC FPGA製品と OpenCL* を利用したシングル・チップ・ソリューションが実現する電力効率 (英語)
Cyclone® V SoC FPGA のエンベデッド ARM* プロセッサーを使って、ホストとアクセラレーターの両方をシングルパッケージに組み合わせることで、OpenCL* を使った光線追跡アルゴリズムを加速するために、インテル® 製品がいかにシステムの複雑さを軽減することが可能なのかについて解説します。
デザイン例
以下に、インテル® FPGA SDK for OpenCL™ をサポートする FPGA ボードを搭載したホストでコンパイルおよび実行できるさまざまなアプリケーションを OpenCL* で記述する方法を、それぞれに関連するホスト・アプリケーションとともに示します。
基本例
デザイン例 | 機能 | 利点 | 説明 |
---|---|---|---|
Hello World |
|
|
この単純なデザイン例は、printf 呼び出しとそれに対応するホストプログラムを含む基本 OpenCL* カーネルを示します。 |
ベクトル加算 |
|
|
この単純なデザイン例は、基本的なベクトル加算 OpenCL* カーネルとそれに対応するホストプログラムを示します。 |
マルチスレッド ベクトル演算 |
|
|
2 つのホストスレッドで、2 つのカーネルが同時に起動します。 |
OpenCL* ライブラリー |
|
|
Verilog および VHDL コードを含む OpenCL* ライブラリーを使用してカスタム機能を実装するデザイン例。 |
|
|
このデザイン例は、ホストとカーネル間の通信を示しています。ホストからカーネル、そして再びホストへとデータがループされます。 |
HPC プラットフォーム例
デザイン例 | 機能 | 利点 | 説明 |
---|---|---|---|
チャネライザー |
|
|
このデザイン例は OpenCL* を使用した高性能チャネライザーのデザインを示します。チャネライザーは、PFB (Polyphase Filter Bank) を高速フーリエ変換と組み合わせて、得られた周波数スペクトルでのスペクトルリークの影響を低減します。 |
ドキュメント・フィルタリング |
|
|
このデザイン例では、高性能のドキュメント・フィルタリングを実現する ブルームフィルターの使用方法を示します。 |
|
|
|
このデザイン例は OpenCL* を使用した高性能 3D 有限差分ステンシルのみの計算と、スライド・ウィンドウ・データの再利用パターンの効率的な記述方法を示します。 |
|
|
|
このデザイン例は、OpenCL* を使用した高性能 1D Radix-4 複素高速フーリエ変換 (FFT) または逆高速フーリエ変換 (IFFT) エンジンを示します。この例は、効率的なスライド・ウィンドウ・データの再利用パターンの利点を生かしたものです。 |
|
|
|
このデザイン例は、100 万ポイント FFT の高性能実装です。このような大規模 FFT は FPGA 上で完結できないため、この例はメモリーアクセスの効率的な管理方法を示します。 |
FFT (2D) |
|
|
このデザイン例は、OpenCL* を使用した高性能 2D Radix-4 複素 FFT/IFFT エンジンを示します。このエンジンは大きな問題サイズ (デフォルトでは 1024 x 1024) をターゲットとし、グローバルメモリーに中間転置を格納します。この例で強調している 1 つの側面は、グローバルメモリーで行列を効率的に転置する方法です。 |
Gzip 圧縮 |
|
|
このデザイン例は、インテル® FPGA 向け OpenCL* を使用した高性能 Gzip 圧縮の実装を示します。 |
JPEG デコーダー |
|
|
このデザイン例は、性能が向上した JPEG デコーディング・ソリューションを示します。 |
マンデルブロー・フラクタル・レンダリング |
|
|
このデザイン例は、マンデルブロー・フラクタル・コンバージェンス・アルゴリズムを実装して結果を画面に表示するカーネルを含んでいます。 |
行列乗算 |
|
|
この例は、計算固有のデータ再利用性を活用したループタイリングによって基本行列乗算を最適化するものです。 |
モンテカルロ・ブラック・ショールズのアジア向けオプション価格設定 |
|
|
このデザイン例では、モンテカルロ・ブラック・ショールズのアジア向けオプション価格設定シミュレーションを実装します。この例は、それぞれがシミュレーションのさまざまな部分 (乱数発生、パス・シミュレーション、および累積) を実行し、インテルのチャネルベンダー拡張を使用して通信する複数のカーネルが同時に実行する場合を示します。 |
ソーベルフィルター |
|
|
このデザイン例は、イメージのエッジを検出してフィルター後のイメージを画面に表示する、OpenCL* で記述されたソーベルフィルターのシームレスなソフトウェア・ソリューションを示します。 |
|
|
|
このデザインは、HPEC チャレンジ・ベンチマーク・スイートからタイムドメイン FIR フィルター・ベンチマークを実装します。このデザイン例は、浮動小数点 FIR フィルターの性能を向上させるのに FPGA が GPU アーキテクチャーよりはるかに優れていることを示す好例です。 |
|
|
|
このデザイン例では、1080p のビデオを入力して 720p のビデオを 110 フレーム/秒で出力するビデオ・ダウンスケーラーを実装します。この例では、複数のカーネルを使用してグローバルメモリーとの間で効率的にリード/ライトします。 |
ネットワーク・プラットフォーム例
デザイン例 | 機能 | 利点 | 説明 |
---|---|---|---|
OPRA FAST パーサー |
|
|
このデザイン例は、一般に高頻度取引アルゴリズムに使用されるストリーミング・パーサーを示します。このパーサーは OPRA FAST データストリームを受け入れ、アップストリームで使用するためにフィールドを展開します。ストリーミング・メッセージを効果的に処理して 10 G リンクを飽和させる方法を説明します。 |
Cyclone® SoC プラットフォーム例
デザイン例 | 機能 | 利点 | 説明 |
---|---|---|---|
|
|
|
このデザインはコア・プリンター・パイプラインの一部であり、Floyd Steinberg 誤差拡散アルゴリズムの一種を実装します。カーネルが CMYK イメージを取り込み、すべてのピクセルをハーフトーン化した同等のイメージを作成します。そのような出力は、レーザーシステムに送る前のプリンタ内イメージ処理の最終ステージです。この例には、「FPGA Acceleration of Multifunction Printer Image Processing Using OpenCL*」というタイトルのホワイトペーパー(英語版)が用意されています。 |
|
|
|
このデザイン例は、Lucas Kanade オプティカル・フロー・アルゴリズムを OpenCL* で実装したものです。Cyclone® V SoC 開発キットで 80 フレーム/秒超で動作する、ウィンドウサイズが 52x52 である非ピラミッド型の高密度非反復バージョンが示されています。 |
短時間での実装と稼動を可能にするために、インテルと、インテル® FPGA SDK for OpenCL™ をサポートするデザインパートナーが、以下のような数多くのプラットフォームを提供しています。
ボード |
適用分野 |
機能 |
供給ベンダー |
ハイパフォーマンス・コンピューティング |
|
インテル |
|
S5PH-Q PCIe* ボード |
ネットワーキング |
|
|
ハイパフォーマンス・コンピューティング |
|
BittWare |
|
ハイパフォーマンス・コンピューティング |
|
||
ハイパフォーマンス・コンピューティング |
|
||
ネットワーキング |
|
||
ハイパフォーマンス・コンピューティング |
|
必要な FPGA アクセラレーターのアーキテクチャーが上記の既存カテゴリーに該当しない場合は、これらのリファレンス・プラットフォームが独自のカスタム FPGA の開発を支援する出発点になります。既存の SoC プラットフォームまたはネットワーク・プラットフォームから出発し、コンポーネント・インターフェイスを削除または変更して必要なものを得て再構築するだけです。これは、従来の FPGA デザインを使用して OpenCL* カーネルがカスタム・ボード上の I/O インターフェイスと通信するための「I/O リング」を構築します。
以下を用意するだけで独自のカスタム FPGA アクセラレーター・ボードを開発できます。
資料
カスタム・プラットフォーム・ツールキットWindows* または Linux* ダウンロード
- プラットフォーム用ロー・テンプレート
- I/O インターフェイスの機能を果たすボード・テスト・カーネル
- ドライバーの構築を開始するための MMD ヘッダーファイル
- PC プラットフォーム・マイグレーション・テキスト・ファイル (バージョン 13.1 以降)
既存のプラットフォームを使用して変更するために現時点で利用可能なリファレンス・プラットフォームは以下のとおりです。
インテル® Stratix® 10 GX FPGA 開発キット・リファレンス・プラットフォーム
インテル® Arria 10 GX FPGA 開発キット・リファレンス・プラットフォーム
Stratix® V FPGA ネットワーク・リファレンス・プラットフォーム: s5_net (w/ PLDA UDP stack):
Cyclone® V SoC リファレンス・プラットフォーム
- Intel® FPGA SDK for OpenCL* Cyclone V SoC Getting Started Guide (英語版・PDF)
- Cyclone® V SoC Development Board Reference Manual (英語版・PDF)
- Cyclone® V SoC Development Kit Reference Platform User Guide (英語版・PDF)
- Cyclone® V SoC Development Board Getting Started ビデオ
OpenCL™ インテル® Arria® 10 カスタム・プラットフォーム
サポートが必要ですか?
カスタム・プラットフォーム用の OpenCL* ボード・サポート・パッケージ (BSP) の開発支援には、以下の OpenCL* ボードサポート認定サービス・プロバイダーをお勧めします。
最適化のトレーニング
OpenCL™ Coding Optimizations for Intel® Stratix® 10 Devices(23 分)
In this course, we will cover how the offline kernel compiler of the Intel® FPGA SDK for OpenCL™ optimizes OpenCL kernel code for optimal performance on Intel® Stratix® 10 FPGAs and how to use recommended coding constructs to enable these optimizations.
OpenCL* Optimization Techniques: Secure Hash Algorithm (SHA-1) Example ( 7分 )
このトレーニングでは、SHA-1 (Secure Hash Algorithm) を例にしながら、OpenCL* 実装を FPGA 向けに最適化するために使用する最適化手法を簡単に概説します。
OpenCL* Optimization Techniques: Image Processing Algorithm Example ( 8分 )
このトレーニングでは、画像処理アルゴリズム用の FPGA における OpenCL* を対象としたアーキテクチャー上の最適化アプローチを簡単に概説します。
Single-Threaded vs. Multi-Threaded Kernels ( 17分 )
ループ・パイプラインと並列スレッドの違いを理解し、シングルスレッド (タスク) とマルチスレッド (NDRange) パイプラインの使い分けの方法を習得します。
Optimization and Emulation Flow in Intel® FPGA SDK for OpenCL* ( 6分 )
FPGA で高速化したアプリケーションをエミュレーターや詳細な最適化レポート機能で最適化する方法を紹介します。
How to Do Reductions (英語版・PDF)
Being Careful with Memory Access Part 1 (英語版・PDF)
Being Careful with Memory Access Part 2 (英語版・PDF)
Optimizing OpenCL* for Intel® FPGAs ( 2日 )
このインストラクターによるトレーニングでは、インテル® FPGA に最適化したカーネル関数の記述を重点的に学習します。実習も行います。
OpenCL* のトレーニング・コース
このトレーニングでは、OpenCL* を使用し FPGA をターゲットにして、競合アクセラレータの平均 1/5 の消費電力で高速化したカスタム・システムを開発する方法、FPGA がソフトウェア実行を高速化するためのリソースとして重要視される現状、および OpenCL* がアクセラレーションをソフトウェア開発者に利用しやすいものにしている理由を解説します。
FPGA vs GPGPU (英語版・21 分)
このビデオでは、FPGA が GPGPU よりはるかに少ない制約条件とはるかに高い柔軟性によって電力効率に優れた高速化をどのように実現するかを解説します。インテル® は、GPGPU の固定されたアーキテクチャーにはない、この柔軟性を生かして問題を解決する手法を比較して対照させます。
OpenCL* on Altera SoC FPGA (Linux Host)
Part 1 – Tools Download and Setup ( 5分 )
Part 2 – Running the Vector Add Example with the Emulator ( 4分 )
Part 3 – Kernel and Host Code Compilation for SoC FPGA ( 4分 )
Part 4 – Setup of the Runtime Environment ( 7分 )
これらのトレーニングでは、Linux* 環境において SoC で OpenCL* の使用を開始する手順を順番に説明します。
Introduction to Parallel Computing with OpenCL* ( 30分 )
OpenCL* 規格の概要とインテルの OpenCL* ソリューションを使用する利点について解説します。
Writing OpenCL* Programs for Intel® FPGAs ( 1時間 )
OpenCL* 規格の基本を理解し、簡単なプログラムの作成方法を学習します。
Running OpenCL* on Intel® FPGA ( 30分 )
インテル® の SDK for OpenCL* について学習し、インテル® FPGA で OpenCL* プログラムをコンパイルして実行する手順を学びます。
ボードとインテル® SDL for OpenCL* に使用する、カスタム・ボード・サポート・パッケージの作成方法を学習します。
Parallel Computing with OpenCL* Workshop ( 1日 )
このインストラクターによるトレーニングでは、並列コンピューティング、OpenCL* 規格、および FPGA デザインフロー向け OpenCL* の概要について解説します。このトレーニングでは、カーネルを記述することではなく、ハードウェア高速化向け OpenCL* 環境を構築するための FPGA 固有の部分を重点的に学習します。
関連リンク
1 製品は Khronos 社公開の仕様に基づいており、Khronos 社のコンフォーマンス・テストに合格しています。現在のコンフォーマンス基準については、http://www.khronos.org/conformance/ (英語) を参照してください。
OpenCL および OpenCL ロゴは Apple Inc. の商標であり、Khronos の許可を得て使用しています。
Intel、インテルおよび Quartus は、アメリカ合衆国および / またはその他の国における Intel Corporation またはその子会社の商標です。