インテルの FPGA 向け OpenCL: システム性能と設計生産性の向上を実現
Open Computing Language (OpenCL™) プログラミング・モデルとインテル®の超並列 FPGA アーキテクチャを組み合わせることにより、強力なシステム高速化ソリューションが得られます。インテルの SDK for OpenCL は、FPGA への OpenCL アプリケーションの容易な実装を可能にするデザイン環境を提供します。 |
FPGA 向け OpenCL の利点
- 従来の FPGA デザイン・フローと比べて市場投入期間を大幅に短縮。
- 従来の低水準ハードウェア記述言語 (HDL) ではなく、OpenCL C 並列プログラミング言語を使用してアルゴリズムを記述。
- デザインの抽象化レベルを高く保ったまま素早くデザインを構築。
- OpenCL C コードのターゲットを現行および将来の FPGA と SoC に変更可能なため、デザインの陳腐化を防止。
- OpenCL C コードの FPGA 実装をシングル・ステップで生成。手作業によるタイミング収束作業や FPGA/ホスト/外部メモリ間の通信インタフェースの実装が不要。
- 高性能で電力効率に優れたソリューション。
- 他のハードウェアに比べて非常に低い消費電力で、並列計算の処理能力を高めることが可能。
OpenCL とは?
OpenCL 規格は、異機種システムにおけるアルゴリズムの高速化を実現する、業界初のオープンかつロイヤルティー・フリーの統合プログラミング・モデルです。OpenCL では、C ベースのプログラミング言語を使用して、CPU、GPU、デジタル信号プロセッサ (DSP)、FPGA をはじめとする各種プラットフォームで実行可能なコードを開発できます。 OpenCL は、ソフトウェア・エンジニアにとってはプログラミング・モデルであり、システム・アーキテクトにとってはメソドロジです。OpenCL は、標準 ANSI C (C99) をベースとして並列化を実現するために拡張したものです。OpenCL には、ホスティングされているシステムのハードウェア・アクセラレータとホストが通信するか、ホスティングされていないシステム内にある別のハードウェア・アクセラレータとカーネルが通信するための API も含まれています。OpenCL の主な利点はロイヤルティー・フリーの移植可能なオープン・スタンダードであることですが、これが独自プログラミング・モデルからの主な差別化要因です。 OpenCL モデルでは、デバイスごとに 1 つ以上あるコマンド・キューへのタスクのスケジューリングをユーザーが行います。その後、OpenCL ランタイムがデータ並列タスクを分割し、デバイスの処理エレメントに送信します。ホストはどのハードウェア・アクセラレータともこの方法で通信を行います。ベンダー固有の実装を抽象化するかどうかは、個々のハードウェア・アクセラレータ・ベンダーに任されます。インテルの SDK for OpenCL v13.1 では抽象化を行い、OpenCL 1.0 規格に適合しています。OpenCL 1.0 規格については、Khronos の The OpenCL Specification (PDF)を参照してください。 OpenCL は、Khronos Group に参加する多くのベンダーによってサポートされています。詳細については、http://www.khronos.org/opencl/ をご覧ください。
使いはじめるには
インテルは、数社のボード・パートナーと連携してインテルの SDK for OpenCL のサポートを展開しています。詳細について、また、インテルが推奨する OpenCL ボード・パートナーからのボードの購入については、インテルの OpenCL 対応推奨ボード・パートナー・プログラム のページをご覧ください。インテルが推奨するパートナーの OpenCL ボードには、インテルの SDK for OpenCL が含まれていますが、独自のカスタム・ボード用の FPGA を作成することも可能です。
OpenCL の関連資料
- The OpenCL Specification Version 1.0 (英語版・PDF)
- Altera SDK for OpenCL Getting Started Guide (英語版・PDF)
- Altera SDK for OpenCL Programming Guide (英語版・PDF)
- Altera SDK for OpenCL Optimization Guide (英語版・PDF)
- OpenCL のデザイン例
オンライン・セミナー / オンライン・デモ
OpenCL を用いたインテル FPGA による性能と設計生産性の向上
このオンライン・セミナーの主な内容:
- FPGA 業界の最新技術動向
- OpenCL プログラミング・モデル
- インテル FPGA における OpenCL の利点
Ray Tracing Demo Using OpenCL on an SoC
Cyclone® V SoC FPGA のエンベデッド ARM® プロセッサを使って、ホストとアクセラレータの両方をシングル・パッケージに組み合わせることで、OpenCL を使った光線追跡アルゴリズムを加速するために、インテル製品がいかにシステムの複雑さを軽減することが可能なのかについて解説します。
OpenCL を利用した異機種システム向け統合プラットフォーム
OpenCL が異機種コンピューティング向けの統合プラットフォームとして適している理由をご覧いただけます。このデモでは、GPU 向けに記述された NVIDIA コードのターゲットを Stratix® V FPGA に変更します。
OpenCL を使用し、機能を FPGA にオフロードさせることで実現するアルゴリズムの性能向上
演算を多用する反復的浮動小数点アルゴリズムであるマンデルブロー・アルゴリズムの性能が、OpenCL によっていかに向上するかをご覧いただけます。
オンライン・トレーニング
OpenCL による並列コンピューティング:入門編 (Japanese Version: Introduction to Parallel Computing with OpenCL) 0.5 時間 OpenCL 規格の概要とインテルの OpenCL ソリューションを使用する利点について解説します。 |
インテル FPGA 向け OpenCL プログラム記述方法 (Japanese Version: Writing OpenCL Programs for Altera FPGAs) 1 時間 OpenCL 規格の基本を理解し、簡単なプログラムの作成方法を学習します。 |
インテル FPGA 向け OpenCL実行方法 (Japanese Version: Running OpenCL on Altera FPGAs) 0.5 時間 インテルの SDK for OpenCL について学習し、インテル FPGA で OpenCL プログラムをコンパイルして実行する手順を学びます。 |