CHAPTER 14 The Future of FPGA Computing

CHAPTER 14
The Future of FPGA Computing
6311672
藤村真弘
• アプリケーションの密度が増して,デバイスのコストが下がるに
つれてFPGAはますます有用になる
• 将来さらに高いレベルのパフォーマンスを必要とするような
アプリケーションはFPGAのようなデバイスの供給する高レベルの
コンピューティングパワーにますます頼ることになる
• 大手スーパーコンピューティングプラットフォームのベンダーや
研究チームがFPGA関連の研究に大幅に投資している事から
FPGAベースのスーパーコンピューティング傾向は
実用性が高まってる
• 高性能コンピューティングプラットフォームの二つの主要な
ベンダー(CrayとSilicon Graphics)はFPGAベースのコンピュータを
提供し始めた
▫ FPGAコンピューティングの利点がより明白になり,より広く受け入れら
れるにつれて,この傾向は強まるだろう.
14.1高性能コンピュータとしてのFPGA
• 高度な並列化を用いた低コスト高パフォーマンスの
コンピューティングは新しい概念ではない
▫ 昔から,多くのスーパーコンピュータを必要とする問題には並列処理が適
していると認識されてきた
▫ 並列処理はハードウェアサイズの増大,システムのコスト,および消費電
力を負担することで,処理能力を大量に得ることが可能
• 従来のスーパーコンピュータは,
低コストのコンピュータのクラスタに置き換えることができる.
▫ スーパーコンピュータ用の多くのソフトに対応できる
▫ クラスタで使用されるコンピュータは,一つの大きな
並列コンピューティングプラットフォームとして機能するように
プログラムされている
▫ より高性能なクラスタはノード間通信のオーバーヘッドを減らす
ために,高帯域幅低レイテンシな相互接続を採用している
▫ 低レベルのカスタムハードウェアの導入により高速データパスを作成し
て各ノードの機能性を向上させ,オーバーヘッドを減らすこともできる.
• 最近では,スーパーコンピュータのクラスタの設計者は
このアプローチを追求しておりプログラム可能な
ハードウェアを導入することによって
ノードレベルの並列性を利用してきた.
• この環境では,FPGAは大規模で高度な
並列計算機クラスタ内の1つのノードとして考えること
ができる
エクストリームレベルの並列処理
• FPGAはスーパーコンピューティングプラットフォームに導入され
るとき,粗粒(アプリケーションレベル)および微粒(命令レベル
の)の両方の並列処理を改善する機会が存在する.
▫ FPGAは高度に並列構成可能なハードウェアリソースを大量に提供する
ので,個々の命令やループなどの高レベルの文を加速させる構造を作成す
ることが可能.
▫ さらに高レベルな並列構造は,さらに高レベルな並列構造を作るためにデ
バイスの容量のが許せば自身を複製して高速化を図る.
• FPGA機器は1980年代半ばにデスクトッププログラマブルな
機器としてグルーロジック用や,カスタムASICの代替品として導入
された
• すぐに低コストなハードウェアベースのコンピューティング製品を
探している研究者によって発見され,FPGAベースの再構成可能 コ
ンピューティング(RCC)の分野が生まれ,その時代が訪れた
• FPGAベースの再構成可能コンピューティングプラットフォームの
使用目的となるアプリケーションには以下のものがある
▫
▫
▫
▫
▫
▫
▫
▫
計算を多用するリアルタイム画像処理やパターン認識
データの暗号化と暗号化
ゲノミクス
バイオメディカル
信号処理
科学計算(物理学,天文学,および地球物理学のアルゴリズムを含む)
データ通信
その他
• 今日上記のような用途で使用されるFPGAは,アルゴリズムが
システム起動時に作成されると,システムの動作中に変更される
ことはめったになく,相対的に静的であることに留意すべき
• ハードウェアベースアルゴリズムを変更することによってFPGAに
複数のタスクを実行させることが可能になるFPGAの動的再構成に
ついては広い研究がある
▫ しかし現時点でFPGAの動的再構成は,システムのコストや
パフォーマンスや電力消費の問題があり,普及していない
• ほとんどの場合,FPGAベースのコンピューティングの目標は,特定の
アルゴリズムのための計算スループットを向上させること
• 空間的並列化を利用した設計技法を使うと,アルゴリズムを
FPGA上で複合的な大きい命令を使って加速することができる.
▫ 最近まで,高レベルのソフトウェア記述から低レベルの構造を生成するの
に必要なソフトウェア開発ツール(特にコンパイラ技術)が広く利用可能
でなかったために,アルゴリズム開発者はこれらの潜在的利点を利用でき
なかった.
▫ よってその代替策としてソフトウェアアルゴリズム開発者は低レベルの
ハードウェア設計方法を学ぶか経験豊富なFPGA設計者となって手動で
アルゴリズムを最適化してそれを低レベルハードウェアで表現するとい
う作業を行う必要があった.
• しかし,ソフトウェアからハードウェアへ変換するコンパイラの
出現によりこの作業が容易になりつつある
選択されるたくさんのプラットフォーム
• FPGAベースのコンピューティングプラットフォームは,
広く利用可能な一つ以上のリーズナブルな価格のFPGAデバイスを
試作ボード上の標準I/ Oデバイス(PCIまたはネットワークインタ
フェースなど)を用いて組み合わせて出来ている
▫ それらのボード製品はマイクロプロセッサを含んでいるか含んでいない
かは分からないが,ほとんどのケースでは組み込みプロセッサを用いて前
章までに説明したようにHW/SWミックスのアプリケーションを作るこ
とが可能
• 既存のツールとこのようなボードを組み合わせて使用すると,
ソフトウェアベースの手法を用いてコンピュータ計算上集約的な
ソフトウェアアルゴリズムのハードウェア実装を作成することが
できる
• ボード上の他の周辺機器と組み合わせることで,FPGAは,
アルゴリズムの実験のための優れたプラットフォームとなり,
設計の調査および設計ツールして使うことができる
• 1つ以上の組み込み(ソフト)プロセッサコアを適切に使用することに
よって,経験豊富なアプリケーション開発者や設計チームは前述の
マルチプロセッサのクラスタシステムとほぼ類似した
コンピューティング環境を構築することができる
• ソフトプロセッサは隣接FPGA方式を用いた高パフォーマンスの
相互通信能力をサポートしているためソフトプロセッサは
このような動作に向いている
• このようなプロセッサ/ FPGA混在プラットフォームを使用して,慎
重にアプリケーションの処理と帯域幅の要件を評価することで,
FPGAは組み込みプロセッサを補助する補助ハードウェアプロセッサ
を含んだハードウェア/ FPGA混合の製品を作成することが可能と
なる.
• さらにマルチプロセス(この本で紹介したストリーミングプログラ
ミングモデル)を使用すると,多くの種類のアルゴリズムにおいて
真に驚くべきレベルのパフォーマンスを達成することが可能
• 主流のFPGAデバイスと様々な入出力から成り立っている
ボードレベルのプロトタイプシステムはオンボードのFPGAデバイ
スの容量に応じて,数百から数千ドルに価格の範囲
• 次の進化のステップは大規模な再構成可能なスーパーコンピュー
ティングアプリケーションを作成するために,
大規模な複合的FPGA処理配列をオーダーメイドの相互連結構造と
動的再プログラミングを用いて結合すること
• すべての大手スーパーコンピューティングベンダーが
このようなプラットフォームに取り組んでいる
ソフトウェア側からのアプローチ
• 多くのFPGAベースのコンピューティングにおける研究活動は,「大
規模な並列化のためのプログラミング問題」を回避する傾向がある
• このような目標のための理想的なソフトウェア開発ツールは,
高度な自動化を用いて並列処理の両方(微粒と粗粒)のレベルを利用
する必要がある
▫ 今のところ,最善のアプローチは,問題のより低いレベルの側面における
自動化(コンパイラとオプティマイザ技術に代表される)の成果に 集
中するようだ
• 同時に,ソフトウェアのプログラマがより高レベルで粗粒度の並列
処理が自然な形で表現できるように,適切なプログラミングモデル
と関連ツールとライブラリが提供されています
• この方法ではコンパイラツールに低レベルの最適化の作業を残しな
がら,知識を持つプログラマは,別のアルゴリズムのアプローチを実
験したり採用したりすることができる
• FPGAベースのプログラム可能なプラットホームに多くのプログラ
ミングモデルを適用できるが,
これらのモデルのほとんどが,データフロー設計の分割と抽象化を
通じてモジュール性と並列処理をサポートしている.
• このようなシステム内で処理能力を割り当てる鍵は
▫ 大量の計算を処理する1つ以上のプロセスを実装するためにFPGAを使用
▫ I / O,メモリ管理,システムのセットアップ,および他のパフォーマンスを
求めないタスクの処理プロセスの実装には埋め込みまたは外部の マイ
クロプロセッサを用いる.
14.2 FPGAコンピューティングの未来
• この本は,C言語を使用して,高性能コンピューティングプラット
フォームとしてのFPGAの概念を紹介した.
• FPGAのプログラミング用ソフトウェアのプログラミング言語の使
用は珍しく見えるかもしれないが,FPGAやFPGAを新しいアプリ
ケーションの域に至らせる事はFPGAの20年の歴史において重要な
ポイント
• 増加しているコンピュータの問題にFPGAを適用することが私たちの信念.
• アプリケーション固有のハードウェア最適化の必要性と
汎用プログラミングのための欲求のバランスがとれた
プラットフォームを作成することがこれからの課題である
• 多くの企業が試みて,広く適用可能な再構成可能プラットフォーム
を生成することに失敗している
• これらの企業の一部は,設計ツールとそれを促進しサポートするた
めに必要なアプリケーションのライブラリの両方を提供することの
難しさとの格闘のすえテントを畳まされた
• 再構成可能コンピューティングの不安定さは,
システム設計者が新たな再構成可能コンピューティングシステムを
採用するのを妨げた.
▫ 問題の大部分は,普遍的かつ他システムへの移植可能な設計方法の欠如
• 設計のお手軽な移植方法が使用可能になるまで,再構成可能コン
ピューティングは,独特な高リスクの技術のままである.
大きなFPGAと増加したシステムの統合
• 近年で最もエキサイティングなFPGAの開発は,システム上のプログ
ラマブルチップの領域についてのもの
▫ システムの密度がムーアの法則に従って大きくなるにつれてサードパー
ティのIPコアベンダーやFPGAベンダによって提供される製品にコアの
使用が劇的に増加するだろう
• これらのコアをさらに改良することは,一方で,ハードウェア統合の
ためのソフトウェアツールを改善することと同義になる.
• 将来的に,FPGAベンダーやサードパーティーのツール供給者が シ
ステム設計者が1つ以上のFPGAデバイス上にカスタムプラット
フォームを組み立てることを簡単にするような製品を発明すること
が期待できる
▫ このようなツールは簡単にボードレベルのシステム設計の領域で
何ができるかFPGAのレベルでエミュレーションし,広くさまざまな シ
ステムコンポーネントを選択して組み立てることができるべき
• FPGAの実質の価格が下落し続けるにつれて,結果として
潜在的に利用できるアプリケーションの範囲が増加すると,
我々はFPGAが歴史上のものよりはるかに高いボリュームをもって
現れるのを期待できる.
• FPGAは,すでに自動車のテレマティックスとネットワークデータの
通信機器などの領域に現れている.
• ソフトウェアからこれらのデバイスをプログラミングする事の
実用性を実証することによってFPGAがハイエンドワークステー
ションやPCの再構成可能なソフトウェアの補助プロセッシング要
素として現れることは不可能ではない
▫ 例:PhotoShopなどのアプリケーション向けのFPGAハードウェアアク
セラレータを作成することが可能
• より複雑な画像処理タスクの必要性が大きくなるにつれて,
そのような特殊な(使用頻度の低い)ハードウェアアクセラレータの
需要は高まる
• あなたが新しいノートパソコンを注文するときにFPGAアクセラ
レータをオプションとしてつけることができるようになったとき
に,FPGAは真にコンピュータリソースの域に達したといえるでしょ
う.
14.3 要約
• FPGAベースのコンピューティングの未来を簡単に説明した.
• スーパーコンピューティングの分野における現在の取り組みは大きな
期待を示しているかについて言及した
• より新しいFPGAに関連した取り組みや再構成可能コンピューティング
デバイスにもふれてきた
• 我々は未来のデバイスの実際のアーキテクチャに関する予測を行うこ
とを避けてきたが,我々が信じていることが真であると明言する.
▫ 将来,FPGAとFPGAのようなデバイスはソフトウェアアプリケーションの領
域にある.
▫ それは増加するコンピューティングパフォーマンスを動かすソフトウェア
▫ FPGAは伝統的なコンピューティングプラットフォームへの実行可能な代案
である.
• FPGAは,もはや単に"貧しい人のASIC"はない,代わりに最上位のコン
ピューティングプラットフォームへと進化している.
• FPGAの今後20年間の歴史は,ソフトウェアアプリケーションおよび
ソフトウェアの設計手法の支配的な役割を果たしていく.
• ご清聴ありがとうございました