OpenCL

アルテラの 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 の関連資料


オンライン・セミナー / オンライン・デモ

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 プログラムをコンパイルして実行する手順を学びます。