JP5388323B2 - 計算機 - Google Patents

計算機 Download PDF

Info

Publication number
JP5388323B2
JP5388323B2 JP2007292135A JP2007292135A JP5388323B2 JP 5388323 B2 JP5388323 B2 JP 5388323B2 JP 2007292135 A JP2007292135 A JP 2007292135A JP 2007292135 A JP2007292135 A JP 2007292135A JP 5388323 B2 JP5388323 B2 JP 5388323B2
Authority
JP
Japan
Prior art keywords
unit
data
calculation
basic
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007292135A
Other languages
English (en)
Other versions
JP2009116813A (ja
Inventor
直行 藤田
行洋 軽部
克巳 矢澤
博 大久保
康之 白水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Japan Aerospace Exploration Agency JAXA
Fujitsu Advanced Engineering Ltd
Original Assignee
Fujitsu Ltd
Japan Aerospace Exploration Agency JAXA
Fujitsu Advanced Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, Japan Aerospace Exploration Agency JAXA, Fujitsu Advanced Engineering Ltd filed Critical Fujitsu Ltd
Priority to JP2007292135A priority Critical patent/JP5388323B2/ja
Publication of JP2009116813A publication Critical patent/JP2009116813A/ja
Application granted granted Critical
Publication of JP5388323B2 publication Critical patent/JP5388323B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Description

本発明は、計算機、特に浮動小数点等の高精度データを扱う数値解析プログラム等の大規模計算において高速な処理を実現するいわゆる大規模計算用カスタムメイド計算機に関する。
計算流体力学(CFD)等の計算科学分野に見られるように、近年の解析技術および計算機技術の発達により、航空機の翼周辺の空気の流れ、エンジン内部における空気の流れ或いは燃焼ガスの流れを高精度かつ大規模に数値シミュレーションすることが可能となった。当然のことではあるが、数値シミュレーションの大規模化や、センシング技術の高度化等により、コンピュータが処理すべきデータ量は膨大な量になってきている。従来は、これらの数値シミュレーションはスーパーコンピュータ或いはワークステーションといった高度の演算処理機能を持ったコンピュータにより行われていたが、近年の数値シミュレーションの大規模化は、ワークステーションの演算処理能力を超えるまでに到っている。一方、スーパーコンピュータにおいては、並列処理技術による処理速度の向上、ならびにソフトウェア技術による処理速度の向上を図ってきたが、装置自体、かなり高額である上に、運用コストも高額であり、全ての研究者、技術者が研究・開発用にこれらを自由に使うことができる状況にはまだ達していない。
ところで、FPGA(=Field Programmable Gate Array)等のハードウェアでありながらソフトウェアのように書き換え可能な、いわゆる再構成可能なプログラマブル論理デバイスが様々な電子技術応用分野において広く用いられるようになってきている。従来は、コンピュータ・アーキテクチャをシミュレーションするためには、ユーザは膨大な数の個別ICをブレッドボードに実装したり、設計したアーキテクチャを試作機としてシリコン上にマッピングしたりする作業をしなければならなかった。しかし、膨大なコストと労力を必要とするこれらの作業と違い、FPGA等のプログラマブル論理デバイスの場合、ユーザは設計した回路のレイアウト情報を複数のFPGAが実装された試作用ボードに転送することにより、設計した回路の動作を即実現することが出来るようになる。それに加えて、処理対象やアルゴリズムに応じて回路の仕様(アーキテクチャ)を容易に修正・変更することが可能であるため、ユーザは所望の論理機能を持った専用LSIを従来よりも短期間かつ低コストで設計・開発することが出来るようになった。
ところで、プログラムの中で特に処理負荷の高い処理部分を、その処理部分を専門に実行する専用計算機に任せ、ホストコンピュータはその専用計算機からの処理結果を受け取るコンピュータシステムが広く実用化されている。そして、このような専用計算機としてFPGAによって構成された専用計算機もまた実用化されている。例えば、ゲーム機等の画像信号処理装置、携帯電話地上局におけるデジタル信号処理装置、及びオーディオ製品等の音声信号処理装置等において上記FPGA等のプログラマブル論理デバイスは多用されている(例えば、特許文献1を参照。)。
特開2005−202504号公報
上記画像信号処理装置等のように、CFD等の大規模数値計算プログラムの中で特に計算負荷の高い演算処理部分(サブルーチン)を、その処理を専門に実行する専用計算機に任せるようにシステム(ホストコンピュータ←→専用計算機)を構成し、その専用計算機をFPGAによって構成する案が容易に考えられる。専用計算機をFPGAによって構成することにより、低コストで高速な演算処理システムを実現することが可能となる。
しかし、FPGAは、CFD等の大規模数値シミュレーションの演算処理においては一部の研究発表はあるが、一般的には実用されていない。その大きな理由は、CFDでは高精度データ、例えば64bitの浮動小数点データを扱うため、これらの高精度データを処理するためには大規模なFPGAの演算システムが必要となるからである。FPGAの演算システムが大規模となった場合、大量のデータが入出力されることになるが、演算部でのレイテンシが極めて小さくなるように、大量のデータを演算部に転送する方法、或いは大量のデータをメモリに格納(保存)する方法、さらには大規模FPGA演算システムの実装方法等といった、FPGA演算システムをCFD等の大規模計算の分野でも利用可能とするためには解決すべき課題がある。画像処理または通信処理等のFPGA演算装置は主として整数データを扱うため、小規模のFPGAの演算システムで足りていた。
また、FPGA等のプログラマブル論理デバイスを用いた大規模計算用カスタムメイド計算機を実現するには、専用の論理を実装した多数・多種類の大規模ボードを用途毎に開発する必要があり、膨大な開発費用が必要とされていた。このため、実現できた場合の多大な効果(高性能、低価格、低消費電力)について研究がなされ、その成果から実現が期待されているにもかかわらず、実現できることを証明することが非常に困難であるために、このような計算機が開発され一般に実用されるにはまだ至っていない。
そこで、本発明は、かかる従来技術の問題点に鑑みなされたものであって、浮動小数点等の高精度データを扱う数値解析プログラム等の大規模計算において高速な処理を実現する大規模計算用カスタムメイド計算機を提供することにある。
前記目的を達成するために請求項1に記載の計算機は、1又は複数のプログラマブル論理デバイスから構成され所定の演算処理を行う演算部と、
該演算部の入力段と出力段の一方または双方に置かれ演算データを一時的に保存する複数の脱着可能なモジュール構成の外部メモリであるRAMから成るRAM部と、
該プログラマブル論理デバイスに実装され該RAM部と該演算部との演算データの入出力の制御を行うRAMIF部
とを演算基本構成部とし、
前記RAMIF部が、データ入出力のタイミングをFIFO方式によって同期をとるものであり
前記RAMIF部は前記演算部から出力される演算データを前記RAM部の複数のRAMに分散させて格納するものであり、
複数の該演算基本構成部がマトリックス状に配置され
隣接する該演算基本構成部の間に片方向または双方向に演算データを受け渡すデータ転送手段をもち、
且つ前記演算部は前記データ転送手段を介して接続される相手の演算部とスループットが同一であるパイプライン構造を成し、
前記複数の演算基本構成部のうち少なくとも1つはメモリスケジューラ機能を有し、
該メモリスケジューラ機能を有する演算基本構成部のRAMIF部は、次段の演算基本構成部が読み出す順序に応じて、演算データの順序を入れ替えて前記RAM部に格納可能に構成されていることを特徴とする。
上記計算機では、演算基本構成部がマトリックス状に配置されたプログラマブル論理デバイスによる大規模演算システムが構成されているため、大量の演算データの並列処理が可能となる。また、各演算部がスループットが1であるパイプライン構造を成している例では、演算部の動作周波数で1クロック毎に演算データが各演算部に入力されるのと同時に、パイプライン通過後の演算データがその演算部から出力される。更に、各演算部とRAM部との間にデータリード/ライト制御を行うRAMIF部が各演算部の入力段と出力段に各々配置されているため、各演算部におけるレイテンシが極めて小さくなるような大量の演算データの入出力制御が可能となる。従って、大量の演算データをスループット「1」のタイミングで大規模FPGA群(演算部)に順々に入力させ、そしてパイプライン通過後(処理済み)の演算データを順々に出力させることが可能となる。従って、上記演算基本構成部によって構成される計算機は高精度のデータを扱う数値解析プログラム等の大規模計算に適用させることが可能となる。
また、上記計算機では、演算データは複数のRAMに分散されて格納されることにより、演算部がデータを読み込む際に複数のRAMからデータを供給され、単一RAMのデータ転送速度(データ供給速度)と演算部でのデータ取り込み速度とのアンバランスが是正されることになる。これにより、演算部は演算データを高速に読み出すことが可能となる。また、演算データが複数のRAMに分散されて格納されているため、RAMIF部が演算データを転送するタイミングを調整することにより、演算部での処理内容に適した転送形態で演算データを転送することが可能となり、大量の演算データに対する処理速度の高速化に寄与するようになる。
また、前記計算機を構成する単位は、数種類の基本的な回路基板(ボード)を開発すればよく、一旦開発されればその後はその基板を製作するだけでよく、あるいは別の大規模計算用途に組み立てられたもの(基板)から不要になったものを取り外して再利用するか、又は利用時期を分けてこれらを共用するのみでよいので、ほとんどの大規模数値演算用途において、ボードを都度専用に開発する必要がなく、膨大な開発費用と期間の問題を解決することができる。
また、各ボードは、縦横がそれぞれ所定の長さの直方形に統一することが可能であり、複数の演算基本構成部を組み合わせて全体を構成する場合に演算機能の全体最適配置を行う自由度が高い。
前記統一サイズのボードを組み合わせて構成される機能ユニットのうち、汎用性が高いものは全体を一体化して作ることが有利である場合があり、この場合、一体化したボードのサイズを、縦横それぞれが前記統一サイズのボードの整数倍である直方形にすることで、一体化したボードに前記統一サイズのボードを自由に組み合わせて大規模計算システムを構成することができる。また、一体化したボードは前記統一サイズのボードを組み合わせて構成される同一サイズの機能ユニットに比べてボード間を接続するためのコネクタが少ないため、同一サイズでより多くの機能を実装することが可能である。
前記一体化ボードの形は、必ずしも直方形である必要はなく、例えば十字形のような多角形であってもよい。
請求項2に記載の計算機では、前記プログラマブル論理デバイスはFPGA(=Field Programmable Gate Array)であり計算流体力学等の数値解析プログラムコードの一部または全部を前記演算基本構成部によって構成した。
上記計算機では、演算部およびRAMIF部がFPGAによって構成されているため、処理対象(アプリケーションソフトウェア)毎に処理速度が向上するように回路の再配置ならびに処理の内容に見合ったハードウェアのリソース配分が可能となる。従って、大規模計算用プログラム、例えば計算流体力学等の数値解析プログラムコードの内、計算負荷の高い(処理コストの高い)部分にはより多くの演算基本構成部を配分することにより、専用のボードを新規に開発することなく、数値シミュレーションにおける演算データの処理速度を大幅に向上させることが可能となる。
請求項3に記載の計算機では、前記メモリスケジューラ機能を有する演算基本構成部のRAMIF部が、前記演算データの転送元、転送先、転送タイミングから成るスケジュールに従ってデータリード/ライト制御を行うこととした。
上記計算機では、RAMIF部はRAM部に対する演算データの分散配置/読み出し、ならびに演算部に対する(演算)データ転送を所定のスケジュールに基づいて行うため、大量の演算データを所望のレイテンシ且つタイミングで各演算部へ並列に入力させると共に、大量の演算データを次段の各演算部へ並列に出力させることが可能となる。
また、請求項1〜3に記載の手段によれば、各演算部に直結された専用のRAMに演算データが格納されるので、既存の演算専用計算機システムのようにInfiniBand(登録商標)などのように高価な高性能通信路スイッチ手段を必要としない。
請求項4に記載の計算機では、前記演算部、前記RAM部および前記RAMIF部の全部または一部分が基板(ボード)上に脱着交換可能に実装された基本モジュールを基本単位とし、該基本モジュールが縦横整数倍に接続されたモジュールフレームが所定の間隔を隔てて直方体ラック中に積層されて成ることとした。
上記計算機では、大規模FPGA演算システムをコンパクトに実装することが可能となる。
請求項5に記載の計算機では、前記演算部、前記RAM部および前記RAMIF部の全部または一部分が基板(ボード)上に脱着交換可能に実装された基本モジュールを基本単位とし、該基本モジュールが縦横整数倍に接続されたモジュールフレームが多角形ラックの内周面に配設されて成ることとした。
上記大規模計算用カスタムメイド計算機では、大規模FPGA演算システムをコンパクトに実装することが可能となる。
請求項6に記載の計算機では、前記演算基本構成部により行われる処理以外の所定の機能を専門的に行う論理デバイスを備えた別機能モジュールが前記基本モジュールと共に用いられ前記モジュールフレームを構成することとした。
FPGAというデバイスが柔軟にその内部構造を変更できるという特性を持っており、これにより、大規模計算を高効率に実行できるシステムの実現が可能になるわけであるが、一方でFPGAというデバイスが超えることの出来ない限界が存在する。それが、例えば光通信であり、複雑な計算のコンパクトな回路による実施である。
そこで、上記計算機では、上記限界に対し、その処理等を専門に行う論理デバイス、例えばCPUや複数のFPGAを備えた別機能モジュールを上記モジュールフレームに追加することにより、システムにおける機能配分が最適化され、システムの機能が最大限に発揮されることになる。
請求項7に記載の計算機では、前記別機能モジュールが通信を専門的に行う構成を有し、電磁波により無線であるいは光ファイバを介して基本モジュール、他の別機能モジュール又は前記モジュールフレーム間のデータ転送を行うものを含むこととした。
上記計算機では、基本モジュール、他の別機能モジュール又はモジュールフレーム間のデータ転送が電磁波による無線あるいは光ファイバを介して成されるため、接続可能な演算基本構成部の物理的な配置に関する制約が小さくなり、複数の演算基本構成部の最適な全体配置が可能となり、演算処理速度の高速化に寄与することができる。
なお、電気無線変換手段や光電気変換手段は演算基本構成部に実装されてもよく、コネクタを介して電気信号で接続された別の専用モジュール(FPGAなどが実装されていないモジュール)に実装されていてもよい。後者の場合、演算基本構成部により多くの演算に必要な機能を集積することができる。
本発明の計算機によれば、処理速度についてはIntel社のItanium系64bit-CPUを使用したワークステーションに比較して約38倍から468倍の演算処理速度を得ることが可能となる。また、製作コストについてはこれらのワークステーションの約10倍程度のコストで製作することが可能である。
FPGA等のプログラマブル論理デバイスを用いた大規模計算用カスタムメイド計算機を実現するには、専用の論理を実装した多数・多種類の大規模ボードを用途毎に開発する必要があり、膨大な開発費用が必要とされていた。本発明によれば、数種類の基本的な回路基板(ボード)を開発すればよく、一旦開発されればその後はその基板を製作するだけでよく、あるいは別の大規模演算用途に組み立てられたものから不要になったものを取り外して再利用するか、又は利用時期を分けて共用することのみでよいので、ほとんどの大規模数値計算用途において、ボードを都度専用に開発する必要がなく、膨大な開発費用と期間の問題を解決することができる。
また、本発明は下記のようにFPGA等のプログラマブル論理デバイスを用いた大規模専用装置の実証試作に適用することができる。
特定の大規模計算用カスタムメイド計算機を実現し利用する場合で、かつその利用による経済効果が非常に大きい用途においては、専用に開発された大規模ボードによるほうが、本発明によるよりも、所要部品を最適に選択し配置することが可能であり、演算部間を直結することで演算データ転送も高速化できるため、より高性能・低価格・低消費電力を実現することができる。しかし、例えばFPGAを数百個以上使うような大規模な装置を実現する場合の開発リスクは大きく、実機を試作する前にその実現性を詳細に検証しておくことは必要であるが、このような大規模な事前検証をシミュレーション等で行うことは膨大な時間・費用・工数を必要とするため、現実的には不可能である。
それに対し本発明によれば、従来その実用化が期待されていながら実現できなかった大規模計算用カスタムメイド計算機を開発する際の、実証試作機を比較的容易に実現することができ、かつ実用して検証することが可能であるため、不可能な程の大規模な事前検証を行うことなく実現性を実証することが可能である。これにより、FPGA等のプログラマブル論理デバイスを用いた専用ボードによる大規模計算用カスタムメイド計算機の実現にも道を開くことが可能となり、産業の発展に貢献することができるので、本発明は実施する効果が非常に大きいと考えられる。
以下、図に示す実施の形態により本発明をさらに詳細に説明する。なお、本実施形態では、プログラマブル論理デバイスとしてFPGAを使用した実施例を説明する。
図1は、本発明の計算機の演算基本構成部100を示す説明図である。
この演算基本構成部100は、演算データを受け取り所定の演算処理を行うFPGA群10と、その入力段と出力段に各々配置され且つ複数のRAM(メモリ)から成るRAM群20,30とを具備して構成されている。なお、詳細については図2を参照しながら後述するが、FPGA群10中の演算部11はパイプライン構造を成して構成され、大量の演算データ(例えば浮動小数点データ)が、例えばスループット「1」のタイミングでRAM群20→FPGA群10→RAM群30→・・・と順々に受け渡される。その際、演算部11におけるレイテンシが極めて小さくなるように、演算部11に対する演算データの転送ならびにRAM群20,30に対するデータリード/ライト制御を行う専用のFPGAがRAM群20,30と演算部11との間にRAMIF部12,13として配置されている。
演算部11は、隣接する演算部とスループットが同一であるパイプライン構造を採用する。本実施例では、スループットが「1」であるため、演算データの入出力については、RAM群20から演算部の周波数で1クロック毎に演算データが入力され、パイプライン通過後の演算結果が1クロック毎にRAM群30に出力される構造を採る。また、演算部11は、内部メモリとしてBRAMを備えている。
RAMIF部12,13は、RAM群20,30に対してはRAMの動作周波数で動作し、演算部11に対しては演算部11の動作周波数で動作する。また、詳細については、図7を参照しながら後述するが、RAMIF部12,13は演算部へ設定する演算データの保存場所(RAM群,BRAM)、演算部へ設定するデータ構造、演算部へ設定する各演算データの設定順、演算部から出力する演算結果の保存先(RAM群,BRAM)を予め決められた所定のスケジュールに従って処理するメモリスケジューラとしても機能する。従って、RAMIF部12,13がメモリスケジューラとして機能するおかげで、スループット「1」のタイミング且つ所望のレイテンシで大量の演算データがパイプライン構造の演算部を順々に通過することが可能となる。
使用されるFPGAとしては、例えばXilinx社製の「Virtex-4」である。
RAM群20,30は、外部メモリであり、使用されるRAMとしては、例えばエルピーダメモリ社DDR2SDRAM 533Mbps 256Mbitである。また、後述するように、RAM群の一部または全部が各コネクタに実装され、脱着可能なモジュールで構成されており、演算部11での必要性に応じて、例えばRAM当り0〜2ギガバイトの最適な容量を選択して実装することができるように構成されている。
図2は、FPGA群10の詳細を示す説明図である。
このFPGA群10は、演算処理を行う演算部11と、RAM群20,30に対するデータリード/ライト制御を行うRAMIF部12,13とから成る。
RAM群20,30に対するデータリード/ライト制御を行うRAMIF部12,13が演算部へのデータ入出力口として、演算回路、例えば浮動小数点演算回路が次々に演算結果を渡していくように演算器(FPGA)が配置されている。なお、図2においてRAMIFコントローラや演算回路がFPGA1チップを占有しているかの様に描かれてあるが、実際にはチップ単位で、RAMIFコントローラや演算回路を割り当てる訳ではない。そのため、分割損による、リソース消費効率の低下や、レイテンシの増大が発生すると考えられる。しかし、レイテンシが増大したとしても、本システムのスループットが「1」であるため、演算性能への影響は微小である。
演算部11およびRAMIF部12,13は、FPGAによって構成されているため、処理対象(アプリケーションソフト)の特性に応じて、最適な処理が行えるように回路の再配置が可能である。
従って、本発明の大規模計算用カスタムメイド計算機は、CFDコードの中で処理コストが高いコードを抽出し、そのコードの演算処理内容を演算基本構成部100によってFPGA化(ハードウェア処理化)することによって、数値シミュレーションの演算処理速度を飛躍的に向上させる。また、CFDコードの全てをFPGA化してもよく、CFDコードの一部分をPFGA化とし、その他の処理をホストコンピュータに実行させるようにしても良い。以下、CFDコードのFPGA化について説明する。
図3は、CFDコードのあるサブルーチンをFPGA化した場合のブロック間接続を示す説明図である。なおブロック(1)とブロック(5)は回路的に処理をする必要がないのでここでは省略してある。
このブロック図は、CFDコード(例えばFORTRANプログラム:UPACS)の構造を解析し、その中で処理コストの高いサブルーチン、例えば、図4に示すサブルーチン(muscl_2ndorder)内を適当な処理ブロック(ブロック(1)から(8))に分けてFPGA化したものである。
ここで、ブロック(2)とは、FORTRANソースコード「muscl_2ndorder.f90」の112〜115行に該当する演算を行う。
ブロック(3)とは、FORTRANソースコード「muscl_2ndorder.f90」の117〜120行に該当する演算を行う。
ブロック(4)とは、FORTRANソースコード「muscl_2ndorder.f90」の122〜125行に該当する演算を行う。
ブロック(6)とは、FORTRANソースコード「muscl_2ndorder.f90」の131〜132行に該当する演算を行う。
ブロック(7)とは、FORTRANソースコード「muscl_2ndorder.f90」の134〜135行に該当する演算を行う。
ブロック(8)とは、FORTRANソースコード「muscl_2ndorder.f90」の137〜138行に該当する演算を行う。
図5は、ブロック(2)の内部構造を示す説明図である。なお、図中の「(数値1,数値2)」という表記は、数値1がスループットを、数値2がレイテンシを示している。
この内部構造は演算器レベルまでブレイクダウンしたものである。他のブロックもこれと同様に複数の演算器が結合された内部構造を持っている。
図6は、各ブロックにおけるFF(=Flip-Flop)数、加算器、減算器、乗算器、除算器の各個数を示す説明図である。
参考として、この場合の演算時間tは、格子点数=40×40×40、回路の動作周波数=100MHz、回路レイテンシ=338[クロック]、回路スループット数=1[クロック]とした場合、
演算時間t=(403×1+338)×3÷(100×106)=1.93×10-3[sec.]となる。
Intel社製のItanium2系CPU(1.5GHz)の演算時間は7.37×10-2[sec.]であるから、処理速度比a=7.37×10-2÷1.93×10-3=37.8(倍)となる。
また、データ入出力のタイミング調整は図9に示すように、FIFO方式によって同期をとる。なお、図8に示すように、Flip-Flopによって同期をとっても良い。
図7は、メモリスケジューラに特化した演算基本構成部を示す説明図である。なお、説明の都合上、演算部の入力段のメモリスケジューラと出力段のメモリスケジューラは一つにまとめて表されている。
上述した通り、FPGA群(演算部)はパイプライン構造を成して、大量の演算データがスループット「1」のタイミングで入出力される。例えば、サブルーチン「muscl_2ndorder」の計算を実行する演算部では、14.4GB/sの転送レートでの演算データの入力が必要であるが、DDR-SDRAMの転送レートが5.3GB/sであるから、単一のDDR-SDRAMでは演算データの供給が追いつかない。そこで、複数のDDR-SDRAMに演算データを分散させて保存する必要がある。その際の演算データの入出力の管理を行うのがメモリスケジューラである。
メモリスケジューラは、演算部へ設定するデータの保存場所(SDRAM,BRAM)、演算部へ設定するデータの構造、演算部へ設定する各データの設定順、演算部から出力する演算結果の保存場所(SDRAM,BRAM)等を一括して処理するものである。
メモリスケジューラはデータの転送元、転送先、転送タイミングを設定した予め決められたスケジュールを持っている。従って、そのスケジュールに従って大量の演算データがスループット「1」のタイミングでメモリ(RAM群)から演算部へ読み込まれ、そして演算部のパイプライン構造を通過した大量の演算データがメモリ(RAM群)へ分散保存されることになる。
BRAMは演算部の内部メモリであり、SDRAM(DDR2-SDRAM)から読み出したデータの一時的な保存のほか、演算結果をすぐに使用する場合(データをフィードバックして演算する時)にデータを一時的に保存する為にも使用される。全てのデータがBRAMに収まり、フィードバック処理が頻繁に発生する様な演算の場合、SDRAM上のデータをBRAMに格納してから演算を行う場合もある(手順の簡素化)。従って、どの演算部も、図7のような構造を持つ為、スケジュールが異なるだけで、1種類のスケジューラでメモリ(RAM群)−演算部間のデータのやり取りをスケジューリングすることが可能となる。
メモリスケジューラは、次段の演算部(FPGA)がRAM群(SDRAM)から読み出す順序を考慮して、演算データを複数のSDRAMに分散させて保存する。
また、メモリスケジューラはSDRAMとのインタフェース(メモリコントローラ)においてはSDRAMの動作周波数で動作し、一方演算部とのインタフェースにおいては演算部内部の演算器の動作周波数で動作する。また、SDRAM等のRAMにはリフレッシュ等のアクセス不能の時間帯が存在する。従って、メモリデータの入出力のタイミング調整は図9に示すようにFIFO方式によって行う。なお、図8に示すようなFlip-Flop方式であっても良い
図10に示すようにSDRAM上に演算データが格納されていた場合、最初の演算ではA1〜D1,2回目はA2〜D2・・・がBRAMに格納される。この場合、SDRAMからバーストリードができなくなり、An,Bn,Cn,Dnの各データ毎にPrecharge〜Bank Activatingの処理が発生する(この時間は、使用するSDRAMの性能にもよる)。例として、この時間を28word(7クロック)とすると、各データのバーストリード長が8wordの時、SDRAMは8/(8+28)=22%の性能しか出せない事になる。従って、そのための対策として、SDRAMの性能を引き出すには、バースト長を大きくとる必要がある。例えば、上の例の条件で80%以上の性能を得ようとした場合、バースト長は112word以上とする必要がある。さらに、リフレッシュ等のロスを考慮すると、150word以上のバースト長を必要とすると考えられる。
また、1回のバースト長を大きくとる方法として、演算データをA1〜A4、B1〜B4・・・ではなくA1,B1,C1,D1、A2,B2,C2,D2・・・と演算で使用する順番に格納する方法が考えられる。
図11(a)に示すように、前段のFPGAの出力がA,B,C,Dが同時に揃う、若しくは揃うようにアルゴリズムを修正できるのであれば次段のFPGAが使用する順番に格納できる。しかし、図11(b)に示すように、Aの演算が終わらなければBの演算ができないのであれば、BRAMを用いて演算データをバッファリングする必要がある。従って、メモリスケジューラは、演算部に対するスケジューリングだけでなく、次段FPGAがSDRAMから読み出す順序を考慮したスケジューリングも行う。
従って、入力段のメモリスケジュールが参照するスケジュールには、転送すべき演算データの格納場所、転送すべき演算データの構造、転送すべき演算データの転送タイミングが記載されている。他方、出力段のメモリスケジュールが参照するスケジュールには、演算部から出力される演算データの格納場所等が記載されている。なお、出力される演算データについては、上述した通り次段の演算部が呼び出す順序を考慮して複数のSDRAMに分散して保存される。このように、大量の演算データの入出力の管理をメモリスケジューラが上記スケジュールに従って行うことにより、大量の演算データをスループット「1」のタイミングで大規模FPGA群(演算部)に順々に入力させ、そしてパイプライン通過後(処理済み)の演算データを順々に出力させることが可能となる。つまり、大量の演算データをスループット「1」のタイミングで並列処理することが可能となる。従って、CFDコード等の数値解析プログラムの内、処理コストの高いコードを、上記演算基本構成部100によってFPGA化することによって、処理速度が飛躍的に向上するようになる。
図12は、大規模計算用カスタムメイド計算機の実装を示す説明図である。
先ず、データ入出力用インタフェースを備えた基板40に、FPGA10aおよびRAM20a,30aを実装して基本モジュール200を作成する。次に、この基本モジュール200を横3列および縦4列で直方体ラック300に固定してモジュールフレーム400とする。なお、基本モジュール200の直方体ラック300への固定はネジによって行い、基本モジュール200間の電気的接続はフラットケーブル等で接続する。そして、このモジュールフレーム400を複数段、例えば2段に重ねる。また、モジュールフレーム400間の接続はフラットケーブルで行う。
また、基板40は、他種類の規模構成実現の容易化または全体構成の自由度向上を考慮する場合、縦横がそれぞれ所定の長さの1種類のサイズの直方形のボードであることが望ましい。
また、基板40は、データ転送手段による転送レイテンシーの削減、コネクタによる信号線数ネックの改善、またはコネクタ削減による面積あたりの機能の増大を考慮する場合、縦横がそれぞれ所定の長さの複数種類のサイズの直方形のボードであることが望ましい。あるいは、上記単一サイズの直方形のボードが組み合わされた多角形のボード(例えば十字形)であることが望ましい。
図13は、別機能モジュールの例を示す説明図である。
モジュールフレームを構成する基本モジュールとしては、基本的には図12に示すように、基板40にFPGA10aとRAM20a,30aが実装された基本モジュール200である。しかし、システム全体が行う処理の中で基本モジュール200では効率が悪い処理、あるいは基本モジュール200のみの構成だけでは、実現することが出来ない機能が存在する。このような処理または機能を専門に行う別機能モジュールを基本モジュール200に代えて、或いは基本モジュールと共に使用することにより、システム全体の効率を格段に向上させることが可能となる。例えば演算の占める割合が大きい処理の場合は、図13(a)に示すように基板40に複数のFPGA、例えば4個のFPGA10a,10a,10a,10aが実装された別機能モジュール210が基本モジュール200と共に使用されモジュールフレームを構成する。あるいは、隣接していない離れた基本モジュール間において有線または無線(赤外線、電磁波等)によるデータ転送、例えば光ファイバケーブルによるデータ転送を行わせたい場合は、データ入出力インタフェースとして電気光変換モジュール50,50を備え光通信機能を有する別機能モジュール220が基本モジュール200と共に使用されモジュールフレームを構成する。或いは、無線によるデータ転送を行わせたい場合はデータを所定の電磁波(キャリア)に変調/受信した電磁波(キャリア)を復調し所望のデータを抽出する電気無線変換モジュール60,60を備えた別機能モジュールが基本モジュール200と共に使用されモジュールフレームを構成する。また、FPGA10aよりは汎用のCPU10bで処理した方が効率的な部分がある場合には、FPGA10aに代えてCPU10bが実装された別機能モジュール230が基本モジュール200と共に使用されモジュールフレームを構成する。
つまり、大規模計算用プログラムの一部または全部をFPGA化するに際し、システムを基本モジュール200のみによって構成するのではなく、FPGAで実現すると効率が悪い処理に対しては、その処理を専門とする別機能モジュール210,220,230を当てることにより、システムにおける機能配分が最適化され、システム全体の機能が最大限に発揮されることになる。なお、基本モジュール200が不得手な処理を行う別機能モジュール210,220,230例示であり、これらに限定されるものではない。
図14は、光通信機能を備えたモジュールフレームを示す説明図である。
このモジュールフレームは、基本モジュール200に別機能モジュール210および別機能モジュール220が組み合わされて構成されている。
図15は、大規模計算用カスタムメイド計算機の他の実装を示す説明図である。
この実装は、基本モジュール200と別機能モジュール220を例えば横2列および縦3列で多角形柱ラック310の内周面に固定してモジュールフレーム410とする。別機能モジュール220には電気信号を光信号に変調または光信号を電気信号に復調する電気光変換モジュールが備わっている。従って、モジュールフレーム410間の通信を光信号によって成すことが可能となる。なお、光伝送媒体としては光ファイバ70を使用する。
本発明の計算機は、浮動小数点等の高精度データを扱う大規模計算用プログラムの演算処理に好適に適用することが可能である。
本発明の計算機の演算基本構成部を示す説明図である。 FPGA群の詳細を示す説明図である。 CFDコードのあるサブルーチンをFPGA化した場合のブロック間接続を示す説明図である。 CFDコードのサブルーチンのフロー図である。 ブロック(2)の内部構造を示す説明図である。 各ブロックにおけるFF(=Flip-Flop)数、加算器、減算器、乗算器、除算器の各個数を示す説明図である。 メモリスケジューラに特化した演算基本構成部を示す説明図である。 Flip-Flopによる同期方式を示す説明図である。 FIFO方式による同期方式を示す説明図である。 メモリ上のデータ構造の例を示す説明図である。 データの転送形態の例を示す説明図である。 大規模計算用カスタムメイド計算機の実装を示す説明図である。 別機能モジュールの例を示す説明図である。 光通信機能を備えたモジュールフレームを示す説明図である。 大規模計算用カスタムメイド計算機の他の実装を示す説明図である。
10 FPGA群
20,30 RAM群
40 基板
50 電気光変換モジュール
60 電気無線変換モジュール
70 光ファイバ
100 演算基本構成部
200 基本モジュール
300 直方体ラック
310 多角形ラック
400,410 モジュールフレーム

Claims (7)

  1. 1又は複数のプログラマブル論理デバイスから構成され所定の演算処理を行う演算部と、
    該演算部の入力段と出力段の一方または双方に置かれ演算データを一時的に保存する複数の脱着可能なモジュール構成の外部メモリであるRAMから成るRAM部と、
    該プログラマブル論理デバイスに実装され該RAM部と該演算部との演算データの入出力の制御を行うRAMIF部
    とを演算基本構成部とし、
    前記RAMIF部が、データ入出力のタイミングをFIFO方式によって同期をとるものであり、
    前記RAMIF部は前記演算部から出力される演算データを前記RAM部の複数のRAMに分散させて格納するものであり、
    複数の該演算基本構成部がマトリックス状に配置され、
    隣接する該演算基本構成部の間に片方向または双方向に演算データを受け渡すデータ転送手段をもち、
    且つ前記演算部は前記データ転送手段を介して接続される相手の演算部とスループットが同一であるパイプライン構造を成し、
    前記複数の演算基本構成部のうち少なくとも1つはメモリスケジューラ機能を有し、
    該メモリスケジューラ機能を有する演算基本構成部のRAMIF部は、次段の演算部が読み出す順序に応じて、演算データの順序を入れ替えて前記RAM部に格納可能に構成されていることを特徴とする計算機。
  2. 前記プログラマブル論理デバイスはFPGA(=Field Programmable Gate Array)であり大規模計算用プログラムコードの一部または全部を前記演算基本構成部によって構成した請求項1に記載の計算機。
  3. 前記メモリスケジューラ機能を有する演算基本構成部のRAMIF部が、前記演算データの転送元、転送先、転送タイミングから成るスケジュールに従ってデータリード/ライト制御を行う請求項1又は2に記載の計算機。
  4. 前記演算部、前記RAM部および前記RAMIF部の全部または一部分が基板(ボード)上に脱着交換可能に実装された基本モジュールを基本単位とし、該基本モジュールが縦横整数倍に接続されたモジュールフレームが所定の間隔を隔てて直方体ラック中に積層されて成る請求項1から3の何れかに記載の計算機。
  5. 前記演算部、前記RAM部および前記RAMIF部の全部または一部分が基板(ボード)上に脱着交換可能に実装された基本モジュールを基本単位とし、該基本モジュールが縦横整数倍に接続されたモジュールフレームが多角形ラックの内周面に配設されて成る請求項1から4の何れかに記載の計算機。
  6. 前記演算基本構成部により行われる処理以外の所定の機能を専門的に行う論理デバイスを備えた別機能モジュールが前記基本モジュールと共に用いられ前記モジュールフレームを構成する請求項4又は5に記載の計算機。
  7. 前記別機能モジュールが通信を専門的に行う構成を有し、電磁波により無線であるいは光ファイバを介して基本モジュール、他の別機能モジュール又は前記モジュールフレーム間のデータ転送を行うものを含む請求項6に記載の計算機。
JP2007292135A 2007-11-09 2007-11-09 計算機 Active JP5388323B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007292135A JP5388323B2 (ja) 2007-11-09 2007-11-09 計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007292135A JP5388323B2 (ja) 2007-11-09 2007-11-09 計算機

Publications (2)

Publication Number Publication Date
JP2009116813A JP2009116813A (ja) 2009-05-28
JP5388323B2 true JP5388323B2 (ja) 2014-01-15

Family

ID=40783863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007292135A Active JP5388323B2 (ja) 2007-11-09 2007-11-09 計算機

Country Status (1)

Country Link
JP (1) JP5388323B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8766666B2 (en) * 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
JP2017135698A (ja) * 2015-12-29 2017-08-03 株式会社半導体エネルギー研究所 半導体装置、コンピュータ及び電子機器
CN110659112B (zh) * 2018-06-29 2023-07-18 中车株洲电力机车研究所有限公司 算法调度方法及系统
CN109164424B (zh) * 2018-07-16 2023-03-28 南京理工大学 一种有序统计类恒虚警门限快速计算方法
US10983948B2 (en) * 2019-03-07 2021-04-20 Raytheon Company Reconfigurable computing appliance
JP7452663B2 (ja) * 2020-08-05 2024-03-19 日本電信電話株式会社 コンピュータシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6292064A (ja) * 1985-10-18 1987-04-27 Hitachi Ltd 並列処理計算機
JPS63208164A (ja) * 1987-02-25 1988-08-29 Hitachi Ltd 並列計算機のデ−タ処理方法
JPS63245567A (ja) * 1987-03-31 1988-10-12 Toshiba Corp 画像処理装置
JPH02190960A (ja) * 1989-01-20 1990-07-26 Pfu Ltd キューイング制御方式
JPH05108208A (ja) * 1991-10-18 1993-04-30 Fujitsu Ltd 拡張ユニツト装置
JPH05145208A (ja) * 1991-11-18 1993-06-11 Toshiba Corp 回路ユニツト
JPH0675930A (ja) * 1992-08-27 1994-03-18 Toshiba Corp 並列プロセッサシステム
JPH0696035A (ja) * 1992-09-16 1994-04-08 Sanyo Electric Co Ltd 処理要素とそれを用いる並列処理計算機
JPH07239835A (ja) * 1994-02-25 1995-09-12 Hitachi Ltd 並列計算機のネットワーク内データ転送制御方式
JP3639323B2 (ja) * 1994-03-31 2005-04-20 富士通株式会社 メモリ分散型並列計算機による連立1次方程式計算処理方法および計算機
JP3485381B2 (ja) * 1995-05-29 2004-01-13 シャープ株式会社 メモリインタフェース装置
JP3860257B2 (ja) * 1996-06-28 2006-12-20 富士通株式会社 チャネルの決定方法
US8412915B2 (en) * 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US7149867B2 (en) * 2003-06-18 2006-12-12 Src Computers, Inc. System and method of enhancing efficiency and utilization of memory bandwidth in reconfigurable hardware
JP4654731B2 (ja) * 2005-03-31 2011-03-23 富士ゼロックス株式会社 集積回路装置および信号処理装置
JP4702159B2 (ja) * 2006-04-25 2011-06-15 富士ゼロックス株式会社 集積回路装置

Also Published As

Publication number Publication date
JP2009116813A (ja) 2009-05-28

Similar Documents

Publication Publication Date Title
JP5388323B2 (ja) 計算機
Pedram et al. Codesign tradeoffs for high-performance, low-power linear algebra architectures
Tehre et al. Survey on coarse grained reconfigurable architectures
Biookaghazadeh et al. Toward multi-fpga acceleration of the neural networks
US11782725B2 (en) Mask field propagation among memory-compute tiles in a reconfigurable architecture
Kono et al. Scalability analysis of tightly-coupled FPGA-cluster for lattice boltzmann computation
CN102799563A (zh) 一种可重构计算阵列及构建方法
Sano et al. FPGA-array with bandwidth-reduction mechanism for scalable and power-efficient numerical simulations based on finite difference methods
CN111079908B (zh) 片上网络数据处理方法、存储介质、计算机设备和装置
US20230067771A1 (en) Tile-based result buffering in memory-compute systems
CN111488976A (zh) 神经网络计算装置、神经网络计算方法及相关产品
WO2023014588A1 (en) Parallel matrix operations in a reconfigurable compute fabric
CN110059809B (zh) 一种计算装置及相关产品
CN111368967B (zh) 一种神经网络计算装置和方法
Sano FPGA-based systolic computational-memory array for scalable stencil computations
CN111078625B (zh) 片上网络处理系统和片上网络数据处理方法
CN111078624B (zh) 片上网络处理系统和片上网络数据处理方法
CN111078623B (zh) 片上网络处理系统和片上网络数据处理方法
CN111367567B (zh) 一种神经网络计算装置和方法
CN111368990B (zh) 一种神经网络计算装置和方法
CN111368986B (zh) 一种神经网络计算装置和方法
CN111368987B (zh) 一种神经网络计算装置和方法
Gayles et al. The design of the MGAP-2: A micro-grained massively parallel array
CN203465722U (zh) 一种面向多尺度计算的计算机系统
CN103198049B (zh) 一种面向多尺度计算的计算机系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120829

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130527

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130911

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131007

R150 Certificate of patent or registration of utility model

Ref document number: 5388323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350