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