opencl 規格を用いた fpga デザインの導入 ·...

8
2011 11 Altera Corporation WP-01173-1.0 ホワイトペーパー © 2011 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. OpenCL and the OpenCL logo are trademarks of Apple Inc. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. 101 Innovation Drive San Jose, CA 95134 www.altera.com Feedback Subscribe ISO 9001:2008 Registered OpenCL 規格を用いた FPGA デザインの導入 Khronos Group (以降、クロノス・グループ)の OpenCL™ 規格と FPGA の組み合わせ は、CPU やグラフィックス・プロセッシング・ユニット (GPU)、デジタル信号処理 DSP)ユニットなどの従来のハードウェア・アーキテクチャを大幅に上回る高性能 化と低消費電力化を実現します。さらに、OpenCL 規格を用いた FPGA ベースのヘテ ロジニアス・システム(CPU FPGA で構成)は、Verilog または VHDL などの低位 レベルのハードウェア記述言語(HDL)を使用する従来の FPGA 開発と比較して、市 場投入を飛躍的に早めることが可能になります。 はじめに プログラマブル・テクノロジの黎明期には、プログラマビリティは大きく 2 種類に分 けられました。1 に示すように、一方はシングルコア CPU および DSP ユニットに 代表されるものです。これらのデバイスは、実行される命令のリストからなるソフト ウェアを使用してプログラムされます。命令は概念上シーケンシャルに作成されます が、実行時に高度なプロセッサによってシーケンシャル・プログラムから命令レベル の並列性が抽出され、命令が入れ替えられることもあります。もう一方は、FPGA 代表されるものです。これらのデバイスは、完全に並列実行するコンフィギュレー ション可能なハードウェア回路を開発することによってプログラムされます。FPGA は、基本的に超細粒度並列処理アプリケーションの開発に使用されます。長年、これ 2 つの対照的なプログラマブル・テクノロジは、ターゲット・アプリケーション領 域の棲み分けを図る形で共存してきました。しかし、近年の技術スケーリングでは、 プログラマブルかつ並列処理可能なテクノロジが支持される傾向にあります。 1. 初期のプログラマブル・テクノロジの範囲 性能に対するニーズが高まるにつれて、シーケンシャル・プログラムを実行するソフ トウェア・プログラマブル・デバイスは、その性能向上を 2 つの基本的トレンドに次 第に依存するようになりました。1 つは、プロセス世代の進化に伴う動作周波数のス ケーリングです。しかし、さまざまな理由から、もはや妥当な電力密度を維持しなが ら低動作電圧化と高動作周波数化を図り続けることは不可能です。「消費電力の壁」と 呼ばれるこの現象は、あらゆるクラスのプログラマブル・デバイスのアーキテクチャ に重大な変化をもたらしつつあります。 CPU DSP FPGA γϯάϧίΞ ΞϨΠ

Upload: others

Post on 05-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OpenCL 規格を用いた FPGA デザインの導入 · 能性があり、より並列性の高いcpu、gpu、fpga などのデバイスで高度な並列化に よる高速化の恩恵を受けることができます。この高速化対象の関数をopencl

2011 年 11 月 Altera Corporation

WP-01173-1.0

© 2011 Altera Corporation. All rSTRATIX words and logos are trOpenCL and the OpenCL logo arof their respective holders as desccurrent specifications in accordantime without notice. Altera assumdescribed herein except as expresspecifications before relying on a

101 Innovation DriveSan Jose, CA 95134www.altera.com

OpenCL 規格を用いたFPGA デザインの導入

ホワイトペーパー

Khronos Group(以降、クロノス・グループ)の OpenCL™ 規格と FPGA の組み合わせは、CPU やグラフィックス・プロセッシング・ユニット (GPU)、デジタル信号処理(DSP)ユニットなどの従来のハードウェア・アーキテクチャを大幅に上回る高性能化と低消費電力化を実現します。さらに、OpenCL 規格を用いた FPGA ベースのヘテロジニアス・システム(CPU と FPGA で構成)は、Verilog または VHDL などの低位レベルのハードウェア記述言語(HDL)を使用する従来の FPGA 開発と比較して、市場投入を飛躍的に早めることが可能になります。

はじめにプログラマブル・テクノロジの黎明期には、プログラマビリティは大きく 2 種類に分

けられました。図 1 に示すように、一方はシングルコア CPU および DSP ユニットに

代表されるものです。これらのデバイスは、実行される命令のリストからなるソフト

ウェアを使用してプログラムされます。命令は概念上シーケンシャルに作成されます

が、実行時に高度なプロセッサによってシーケンシャル・プログラムから命令レベル

の並列性が抽出され、命令が入れ替えられることもあります。もう一方は、FPGA に

代表されるものです。これらのデバイスは、完全に並列実行するコンフィギュレー

ション可能なハードウェア回路を開発することによってプログラムされます。FPGAは、基本的に超細粒度並列処理アプリケーションの開発に使用されます。長年、これ

ら 2 つの対照的なプログラマブル・テクノロジは、ターゲット・アプリケーション領

域の棲み分けを図る形で共存してきました。しかし、近年の技術スケーリングでは、

プログラマブルかつ並列処理可能なテクノロジが支持される傾向にあります。

図 1. 初期のプログラマブル・テクノロジの範囲

性能に対するニーズが高まるにつれて、シーケンシャル・プログラムを実行するソフ

トウェア・プログラマブル・デバイスは、その性能向上を 2 つの基本的トレンドに次

第に依存するようになりました。1 つは、プロセス世代の進化に伴う動作周波数のス

ケーリングです。しかし、さまざまな理由から、もはや妥当な電力密度を維持しなが

ら低動作電圧化と高動作周波数化を図り続けることは不可能です。「消費電力の壁」と

呼ばれるこの現象は、あらゆるクラスのプログラマブル・デバイスのアーキテクチャ

に重大な変化をもたらしつつあります。

CPU DSP FPGA

シングルコア

細粒度アレイ

ights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and ademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. e trademarks of Apple Inc. All other words and logos identified as trademarks or service marks are the property ribed at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to ce with Altera's standard warranty, but reserves the right to make changes to any products and services at any es no responsibility or liability arising out of the application or use of any information, product, or service sly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device ny published information and before placing orders for products or services.

Feedback Subscribe

ISO 9001:2008 Registered

Page 2: OpenCL 規格を用いた FPGA デザインの導入 · 能性があり、より並列性の高いcpu、gpu、fpga などのデバイスで高度な並列化に よる高速化の恩恵を受けることができます。この高速化対象の関数をopencl

ページ 2 はじめに

ソフトウェア・プログラマブル・デバイスが依存したもう 1 つのトレンドは、シーケ

ンシャル・プログラムから命令レベルの並列性を抽出する複雑なハードウェアの出現

でした。図 2 に示すように、シングルコア・アーキテクチャでは命令ストリームを入

力し、多数の並列処理機能ユニットを備えたデバイス上で実行します。この場合、シー

ケンシャル・コードから並列性を動的に抽出する機能にプロセッサ・ハードウェアの

かなりの割合を振り向けなければなりません。

また、ハードウェアはメモリのレイテンシの補償も試みます。一般に、プログラマは

プログラムを開発する際、プロセッサの基本的なメモリ階層を考慮せず、全体にわ

たってフラットかつ等速の大容量メモリとして扱います。それに対し、プロセッサは

外部メモリとの接続におけるレイテンシや帯域幅の制限といった物理的現実に対処

しなければなりません。また、機能ユニットに間断なくデータを入力するために、プ

ロセッサは外部メモリからデータを投機的にプリフェッチしてオンチップ・キャッ

シュに格納することにより、計算が実行されている場所になるべく近い位置にデータ

を配置する必要もあります。長年、この手法に用いて性能改善が図られてきましたが、

この種のアーキテクチャから効果が得られる余地はあまり残されていません。

図 2. シングルコア・アーキテクチャ

従来型プロセッサ・アーキテクチャにおけるこれら 2つのトレンドの効果が薄れる中、

ソフトウェア・プログラマブル・デバイスの範囲は、図 3 に示すように大きく進化し

つつあります。注目するべきなのは、実行時における命令レベルの並列性の自動抽出

から、コーディング時におけるスレッドレベルの並列性の明示的指定に移ってきてい

るということです。現在、高度に並列化されたマルチコア・デバイスが現れ始めてい

ますが、一般的な傾向として複数の単純なプロセッサを搭載し、キャッシュや並列性

の抽出ではなく計算に多くのトランジスタが振り向けられています。そうしたデバイ

スは、通常は 2 コア、4 コア、または 8 コアを搭載したマルチコア CPU から、データ

並列処理に 適化された数百の単純なコアで構成されるグラフィックス・プロセッ

サ・ユニットまで多岐にわたります。これらのマルチコア・デバイスで高性能を実現

するためには、並列処理に対応できるように明示的にアプリケーションをコーディン

グしなければならず、特定の計算をすべてのコアが協調して実行できるように各コア

に作業を割り当てる必要があります。これは、FPGA 設計者がハイレベル・システム・

アーキテクチャを開発する際に行っていることとまったく同じです。

概念上フラットなメモリ・スペース

命令

概念上シーケンシャルなプログラム

FU FU FU FU

キャッシュ

命令ディスパッチ

2011 年 11 月 Altera Corporation OpenCL 規格を用いた FPGA デザインの導入

Page 3: OpenCL 規格を用いた FPGA デザインの導入 · 能性があり、より並列性の高いcpu、gpu、fpga などのデバイスで高度な並列化に よる高速化の恩恵を受けることができます。この高速化対象の関数をopencl

OpenCL の概要 ページ 3

図 3. プログラマブル・テクノロジおよび並列処理テクノロジの最近のトレンド

新たなマルチコア時代における並列プログラムの開発の必要性から、デバイスの種類

を問わず実行可能なプログラムを開発するための規格モデルが求められていました。

プログラマブル・テクノロジ間で移植可能な規格が存在しないことは、プログラマの

悩みの種となっていたからです。2008 年夏、Apple はクロスプラットフォームの並列

プログラミング規格の策定を目指して、OpenCL(Open Computing Language)のドラ

フト仕様をクロノス・グループに提案しました。クロノス・グループは、Apple、IBM、

Intel、AMD、NVIDIA、アルテラをはじめとする業界企業のコンソーシアムで構成さ

れる業界団体です。OpenCL 1.0 および、1.1、並びに 1.2 の仕様の策定はこのグループ

が行っています。OpenCL 規格は、 小限の再コーディングでプラットフォーム間の

移行が可能な並列アルゴリズムの実装を実現します。この言語は C 言語をベースにし

ており、並列化を指定できるように拡張が図られています。

OpenCL 規格は、移植可能なモデルの提供に加え、FPGA に実装可能な並列アルゴリ

ズムを、VHDL や Verilog などのハードウェア記述言語(HDL)よりもはるかに高い

抽象度で記述する能力を本質的に備えています。同等の抽象度が得られるハイレベル

合成ツールは数多く存在しますが、いずれも共通の基本的問題を抱えています。それ

は、シーケンシャルな C 言語プログラムを入力として並列 HDL 実装を生成しようと

していることです。HDL実装の生成はそれほど困難ではありませんが、高性能なFPGA実装の実現に必要なスレッドレベルの並列性を抽出することは容易ではありません。

FPGA は、並列処理が 大の利点であるため、 大限の並列性を抽出できないと他の

デバイスよりも深刻な影響が生じます。OpenCL 規格は、並列化の指定および制御を

プログラマが明示的に行えるようにすることで、これらの問題の多くを解決します。

つまり、OpenCL 規格は元来、純粋な C 言語で記述されたシーケンシャル・プログラ

ムに比べ、FPGA の高度な並列性と相性がよい言語なのです。

OpenCLの概要OpenCL アプリケーションは、2 つの部分からなります。OpenCL ホスト・プログラム

は、標準 C/C++ 言語で記述された純粋なソフトウェア・ルーチンで、あらゆるマイク

ロプロセッサ上で動作します。そうしたプロセッサの例としては、FPGA 内のエンベ

デッド・ソフト・プロセッサ、ハード ARM プロセッサ、外部 x86 プロセッサなどが

挙げられます(図 4 参照)。

CPU DSP マルチコア アレイ FPGA

シングルコア 細粒度超並列アレイ

疎粒度超並列プロセッサ・アレイ

疎粒度CPUおよびDSP

2011 年 11 月 Altera CorporationOpenCL 規格を用いた FPGA デザインの導入

Page 4: OpenCL 規格を用いた FPGA デザインの導入 · 能性があり、より並列性の高いcpu、gpu、fpga などのデバイスで高度な並列化に よる高速化の恩恵を受けることができます。この高速化対象の関数をopencl

ページ 4 OpenCL の概要

図 4. OpenCL の概要

このホスト・ソフトウェア・ルーチンの実行中、計算コストが高い関数が出現する可

能性があり、より並列性の高い CPU、GPU、FPGA などのデバイスで高度な並列化に

よる高速化の恩恵を受けることができます。この高速化対象の関数を OpenCL カーネ

ルといいます。このカーネルは標準 C 言語で記述されますが、並列化とメモリ階層を

指定するための構造体で注釈づけされます。 図 5 に示す例は、2 つの配列 a および bのベクトル加算を実行しながら、結果を出力配列 answer に書き込みます。並列スレッ

ドはベクトルの各要素に影響するため、FPGA などの超細粒度並列処理が可能なデバ

イスで高速化した場合、結果の計算をはるかに高速化できます。ホスト・プログラム

は標準 OpenCL アプリケーション・プログラミング・インタフェース(API)にアク

セスすることにより、FPGA にデータを転送し、FPGA 上のカーネルを呼び出し、結

果のデータを戻すことができます。

図 5. FPGA への OpenCL の実装例

1 OpenCL 規格の詳細は、http://www.khronos.org/opencl/ をご覧ください。

OpenCLホストプログラム + カーネル

ACLコンパイラ

標準Cコンパイラ

PCIe

x86

SOF x86バイナリ

ロード ロード ロード ロード ロード ロード

ストア ストア ストア

ロード ロード ロード ロード ロード ロード

ストア ストア ストア

PCIe

DDRx

x86

2011 年 11 月 Altera Corporation OpenCL 規格を用いた FPGA デザインの導入

Page 5: OpenCL 規格を用いた FPGA デザインの導入 · 能性があり、より並列性の高いcpu、gpu、fpga などのデバイスで高度な並列化に よる高速化の恩恵を受けることができます。この高速化対象の関数をopencl

FPGA に OpenCL を実装する利点 ページ 5

FPGA は、並列スレッドを別のコアで実行する可能性のある CPU や GPU とは異なる

戦略を提供できます。カーネル関数は、パイプライン並列化の概念を用いて本質的に

マルチスレッド化されている、深くパイプライン化された専用のハードウェアに変換

できます。これらのパイプラインはそれぞれ何度も複製できるため、1 本のパイプラ

インよりもさらに高度な並列化が可能です。図 5 に示すように、ベクトル加算カーネ

ルは、各演算を OpenCL 記述で実装した機能ユニットをカスケードすることによって

実装し、アプリケーションのスループット要件やレイテンシ要件に応じて複製するこ

とができます。この図では単純化して示していますが、各機能ユニットを深くパイプ

ライン化することで、得られる回路の動作周波数をかなり高くすることが可能です。

さらに、コンパイラは外部システムとの通信を管理するための回路を生成することも

できます。この例では、大容量のオフチップ・アレイに効率よくアクセスできるよう

に、DDRx コントローラと PHY がカーネルに接続されます。同様に、x86 ホストが

OpenCL API を介して FPGA アクセラレータと通信できるように、PCIe IP も自動的に

インスタンス化され、カーネルに接続されます。

FPGAに OpenCLを実装する利点OpenCL 記述による FPGA デザインの開発には、HDL デザインに基づく従来の方法論

と比較して、さまざまな利点があります。図 6 はその も大きな利点を示したもので

す。ソフトウェア・プログラマブル・デバイス向けの開発は通常、「構想」、「C など

の高級言語によるアルゴリズムのコーディング」、そして「自動コンパイラによる命

令ストリームの生成」というフローをたどります。

図 6. ソフトウェア・プログラマの観点

このアプローチは、従来の FPGA ベースのデザイン・メソドロジと対比させることが

できます。この場合、アルゴリズムの実装に使用するハードウェアをサイクル単位で

記述する作業負荷の大半は設計者が担います。図 7 に示すように、従来のフローでは、

データパスを作成し、それらのデータパスを制御するためのステート・マシンを作成

し、システム・レベル・ツール(SOPC Builder、Platform Studio など)を使用してロー

レベル IP コアと接続し、タイミング収束の問題(外部インタフェースには一定の制

約があり、それに合わせなければならないため)に対処する必要があります。OpenCLコンパイラの目標は、これらのステップをすべて自動的に実行することにより、設計

者がハードウェア・デザインの枝葉末節ではなく、アルゴリズムの定義に集中できる

ようにすることです。このような方法でデザインすれば、さらに高性能、大容量の

FPGA が新たに登場したときに、同じハイレベル記述が OpenCL コンパイラによって

その FPGA デバイスを生かしたパイプラインに変換されるため、移行が容易になりま

す。

アルゴリズム構想

‘C/C++’コンパイラ

実行可能なバイナリ

デバイス上での実行

2011 年 11 月 Altera CorporationOpenCL 規格を用いた FPGA デザインの導入

Page 6: OpenCL 規格を用いた FPGA デザインの導入 · 能性があり、より並列性の高いcpu、gpu、fpga などのデバイスで高度な並列化に よる高速化の恩恵を受けることができます。この高速化対象の関数をopencl

ページ 6 ケース・スタディ:ブラック・ショールズ・モンテカルロ法

図 7. FPGA デザイン・メソドロジ

ケース・スタディ:ブラック・ショールズ・モンテカルロ法金融市場で も重要なベンチマークの 1 つは、ブラック・ショールズ・モンテカルロ

法によるオプション価格の計算です。この手法では、潜在的な株価のランダム・シ

ミュレーションに基づいて、数百万通りのパスの総平均期待利得を求めます。図 8 に、

このシミュレーションの例を示します。

図 8. モンテカルロ・シミュレーション

図 9 は、この計算を実行するアルゴリズムのハイレベル構造です。まず、メルセン

ヌ・ツイスター乱数発生器を使用して、均等に分布した値を生成します。この乱数列

を逆正規累積密度関数に送って、正規分布配列を生成します。そして、これらの乱数

を使用して幾何学的ブラウン運動によって株価の変動をシミュレートします。各シ

ミュレーション・パスの 後でコール・オプションの利得を記録し、平均値を求める

ことで利得の期待値を生成します。このアルゴリズム全体を、約 300 行の OpenCLコードにより、FPGA から CPU や GPU に移植可能な形で実装することが可能です。

-101

アイドル

完了 要求

処理実行

確認応答

SoCインタコネクト

ブリッジ

PCleコア=

-101

アイドル

完了 要求

処理実行

確認応答

=

コントローラ

メモリPHY

メルセンヌ・ツイスター乱数発生器

逆正規累積密度関数

幾何学的ブラウン運動

ヨーロピアン・コール・

オプション査定

2011 年 11 月 Altera Corporation OpenCL 規格を用いた FPGA デザインの導入

Page 7: OpenCL 規格を用いた FPGA デザインの導入 · 能性があり、より並列性の高いcpu、gpu、fpga などのデバイスで高度な並列化に よる高速化の恩恵を受けることができます。この高速化対象の関数をopencl

結論 ページ 7

図 9. アルゴリズム構造

アルテラの FPGA 用に開発された OpenCL フレームワークを利用してベンチマークを

行ったところ、良好な結果が得られました(表 1 参照)。Stratix® IV EP4SGX530 をター

ゲットにした OpenCL フレームワークは、スループットにおいて同等の CPU と GPUのいずれも上回っています。優れたスループットに加え、FPGA ソリューションは、

同じコードを実行した場合、控えめに見ても同等の GPU の 1/5 の電力しか消費しませ

ん。この優れた高速性能と消費電力効率の組み合わせにより、計算を多用するアプリ

ケーションのエネルギーを大幅に削減します。

結論OpenCL 規格と FPGA の組み合わせは、従来のハードウェア・アーキテクチャ(CPU、

GPU など)を大幅に上回る高性能化と低消費電力化を実現します。さらに、OpenCL規格を用いた FPGA ベースのヘテロジニアス・システム(CPU と FPGA で構成)は、

Verilog または VHDL などの低位レベルのハードウェア記述言語(HDL)を使用する

従来の FPGA 開発と比較して、市場投入を飛躍的に早めることが可能になります。ア

ルテラは、2010 年に Khronos Group に参加し、OpenCL 規格の研究開発・普及に積極

的に貢献しています。アルテラの OpenCL 研究開発プログラムに関する 新情報は、

www.altera.com/opencl から入手できます(登録が必要です)。

12.0

11.5

11.0

10.5

10.0

9.5

9.0

8.5

8.0

0.00

0.05

0.10

0.15

0.20

0.25

0.30

0.35

0.40

0.45

0.50

0.55

0.60

0.65

0.70

0.75

0.80

0.85

0.90

0.95

1.00

200回のシミュレーション

十分に正確な結果を得るためには、10万回以上のシミュレーションが必要になることもある

表 1. ブラック・ショールズ・モンテカルロの結果

OpenCL ブラック・ショールズ・モンテカルロ

クアッドコアXeon 同等の GPU Stratix IV 530

シミュレーション回数/秒

240M 950M 2,200M

ピーク GFLOPS 160 500 200

2011 年 11 月 Altera CorporationOpenCL 規格を用いた FPGA デザインの導入

Page 8: OpenCL 規格を用いた FPGA デザインの導入 · 能性があり、より並列性の高いcpu、gpu、fpga などのデバイスで高度な並列化に よる高速化の恩恵を受けることができます。この高速化対象の関数をopencl

ページ 8 詳細情報

詳細情報 Altera の OpenCL 研究開発プログラム

www.altera.com/opencl

Khronos Group(クロノス・グループ) -- OpenCL 規格www.khronos.org/opencl/

謝辞 Deshanand Singh, Supervising Principal Engineer, Software and IP Engineering, Altera

Corporation

文書改訂履歴表 2 に、本書の改訂履歴を示します。

表 2. 文書改訂履歴

日付 バージョン 変更内容

2011 年 11 月 1.0 初版

2011 年 11 月 Altera Corporation OpenCL 規格を用いた FPGA デザインの導入