chapter 14 the future of fpga computing
DESCRIPTION
CHAPTER 14 The Future of FPGA Computing. 6311672 藤村真弘. アプリケーション の密度が 増して , デバイス のコストが下がる に つれて FPGA はますます有用に な る 将来 さらに 高いレベルのパフォーマンスを必要と するような アプリケーション は FPGA のような デバイスの供給する高レベル のコンピューティングパワー にますます 頼ることに な る - PowerPoint PPT PresentationTRANSCRIPT
CHAPTER 14The Future of FPGA Computing6311672藤村真弘
• アプリケーションの密度が増して , デバイスのコストが下がるに つれて 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 年間の歴史は , ソフトウェアアプリケーションおよびソフトウェアの設計手法の支配的な役割を果たしていく .
• ご清聴ありがとうございました