図面 (/)

技術 数値解析装置、数値解析用専用プロセッサモジュール、数値解析用専用回路、および数値解析方法

出願人 みずほ情報総研株式会社学校法人慶應義塾
発明者 棚橋たか彦青木すみえ佐々木徹荒木健悟溝口大介石橋政一
出願日 2003年6月5日 (17年11ヶ月経過) 出願番号 2003-161299
公開日 2004年12月24日 (16年4ヶ月経過) 公開番号 2004-362358
状態 拒絶査定
技術分野 複合演算
主要キーワード 構造メッシュ 読み込みフラグ FPGAボード 要素体積 入出力データ数 不等分割 粘性流れ 高速化率
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2004年12月24日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

SMAC有限要素法による数値解析処理高速に実行することが可能な専用計算機を実現する。

解決手段

ポアソン方程式の計算内で単純且つ演算量が多い部分である少なくとも発散の計算については専用回路16で実行し、柔軟性が必要な運動方程式の処理や、専用回路16によって実行される計算を除く他のポアソン方程式の計算については汎用プロセッサ15によって実行する。汎用プロセッサ15は要素単位で当該要素に関する余因子ベクトル速度ベクトル体積のデータを専用回路16に送信し、専用回路16は余因子ベクトル、速度ベクトル、体積のデータに基づいて、発散を計算する。専用回路16と汎用プロセッサ15との間はローカルバスによって密結合されており、専用回路16と汎用プロセッサ15との間のデータの入出力はローカルバスを介して高速に実行される。

概要

背景

従来より、電磁熱流体解析粘弾性流体解析などの問題を解くために、解析対象の領域の物理量を計算によって解析するための数値解析処理が用いられている。このような数値解析処理の手法として、差分法FDM)、有限要素法(FEM)、有限体積法(FVM)、境界要素法(BEM)が知られている。差分法はシミュレーション技術として最も確立された手法であるが、汎用性が乏しく複雑な形状の実用的な計算にはケースバイケースで考えなければならない。一方、有限要素法は多くの実用的な問題に適用できる汎用性を持っている。しかし、要素数の増大と共に記憶容量と計算時間を多く必要とし、一般的には経済的な計算手法とはいえない。有限体積法は差分法の長所と有限要素法の汎用性をもつ手法で現在多くの試みがなされつつある。境界要素法はポテンシャル問題に適しているものの、高レイノルズ数粘性流れの解析には精度的に満足できるものではない。したがって、現在、汎用的・高精度・経済的な高速計算技術の確率が望まれている。これら三つの条件をある程度満足する数値解析手法として、GSMAC有限要素法が知られている(例えば、非特許文献1参照。)。GSMAC有限要素法は差分法の分野で開発されたMAC法、SMAC法、HSMAC法の技術を有限要素法へ応用したもので、generalized SMAC法の省略形である。また、最近では、GSMAC有限要素法に対応する専用計算機の検討も行われている。例えば、ポアソン方程式中における発散の計算を実行する専用演算器の検討も本発明者らによってなされている(例えば、非特許文献2参照。)。

概要

GSMAC有限要素法による数値解析処理を高速に実行することが可能な専用計算機を実現する。ポアソン方程式の計算内で単純且つ演算量が多い部分である少なくとも発散の計算については専用回路16で実行し、柔軟性が必要な運動方程式の処理や、専用回路16によって実行される計算を除く他のポアソン方程式の計算については汎用プロセッサ15によって実行する。汎用プロセッサ15は要素単位で当該要素に関する余因子ベクトル速度ベクトル体積のデータを専用回路16に送信し、専用回路16は余因子ベクトル、速度ベクトル、体積のデータに基づいて、発散を計算する。専用回路16と汎用プロセッサ15との間はローカルバスによって密結合されており、専用回路16と汎用プロセッサ15との間のデータの入出力はローカルバスを介して高速に実行される。

目的

しかしながら、専用計算機の開発に際しては、単に専用回路を用いるというだけでなく、GSMAC有限要素法の特性や専用回路との間のインタフェースについても十分に考慮しなければ十分な処理速度の高速化を実現することは実際上困難である。
本発明は上述の事情を考慮してなされたものであり、GSMAC有限要素法による数値解析処理を高速に実行することが可能な数値解析装置数値解析用専用プロセッサモジュール、数値解析用専用回路、および数値解析方法を提供することを目的とする。

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

SMAC有限要素法を用いて解析対象の領域の物理量を当該領域を分割した要素毎に解析する数値解析処理を実行する数値解析装置において、前記数値解析処理の内、運動方程式から導かれるポアソン方程式の計算の内で少なくとも離散ナブラ演算子を用いた発散の計算を実行する専用回路と、前記専用回路によって実行される計算を除く他のポアソン方程式の計算、および前記運動方程式に関する計算を実行する汎用プロセッサとを具備し、前記専用回路および前記汎用プロセッサはその間で前記離散ナブラ演算子を用いた発散の計算に必要な入力データおよび前記専用回路によって算出された発散の値が授受されるように前記専用回路と前記汎用プロセッサとの間に配設されたローカルバスを介して結合されており、前記専用回路は、前記離散ナブラ演算子を用いた発散の計算に必要な入力データとして前記汎用プロセッサから前記ローカルバスを介して要素単位で入力される、当該要素に関する物理空間計算空間を結びつける行列余因子ベクトル、各節点速度ベクトル、および体積のデータに基づいて、前記発散を計算するための演算処理を実行するように構成されていることを特徴とする数値解析装置。

請求項2

前記専用回路には、前記汎用プロセッサが前記入力データを書き込むことが可能な入力バッファ、および前記汎用プロセッサが前記専用回路によって算出された発散の値を読み出すことが可能な出力バッファを含み、前記専用回路による前記入力バッファからの入力データの読み込み状態、および前記専用回路によって算出された発散の値についての前記出力バッファへの書き込みの状態に応じて、前記入力バッファに関する書き込み可否、および前記出力バッファからのデータ読み出しの可否をそれぞれ前記汎用プロセッサに提示する入出力回路が設けられていることを特徴とする請求項1記載の数値解析装置。

請求項3

前記入出力回路には、前記汎用プロセッサが前記入力データをそれぞれ書き込むことが可能な第1および第2の2つの入力バッファが設けられており、前記入出力回路は、前記専用回路によって入力データの読み込みが完了された入力バッファから順次新たな要素に関する入力データの書き込みが許可されるように、前記専用回路による入力データの読み込み状態に応じて前記第1および第2の2つの入力バッファそれぞれに関する書き込み可否を前記汎用プロセッサに提示する手段を含むことを特徴とする請求項2記載の数値解析装置。

請求項4

外部バスを介してホスト装置電気的に接続可能に構成され、前記ホスト装置からの要求に応じて、GSMAC有限要素法を用いて解析対象の領域の物理量を当該領域を分割した要素毎に解析する数値解析処理を実行する専用プロセッサモジュールであって、前記数値解析処理の内、運動方程式から導かれるポアソン方程式の計算の内で少なくとも離散ナブラ演算子を用いた発散の計算を実行する専用回路と、前記外部バスを介して前記ホスト装置との通信を実行可能に構成され、前記外部バスを介して前記ホスト装置から入力されるデータに基づき、前記専用回路によって実行される計算を除く他のポアソン方程式の計算、および前記運動方程式に関する計算を実行する汎用プロセッサとを具備し、前記専用回路および前記汎用プロセッサはその間で前記離散ナブラ演算子を用いた発散の計算に必要な入力データおよび前記専用回路によって算出された発散の値が授受されるように前記専用プロセッサモジュール内のローカルバスを介して結合されており、前記専用回路は、前記離散ナブラ演算子を用いた発散の計算に必要な入力データとして前記汎用プロセッサから前記ローカルバスを介して要素単位で入力される、当該要素に関する物理空間と計算空間を結びつける行列の余因子ベクトル、各節点の速度ベクトル、および体積のデータに基づいて、前記発散を計算するための演算処理を実行するように構成されていることを特徴とする専用プロセッサモジュール。

請求項5

ポアソン方程式中の発散を離散ナブラ演算子を用いて計算するように構成された専用回路であって、前記離散ナブラ演算子を用いた発散の計算に必要な入力データとして外部のプロセッサから要素単位で入力される、当該要素に関する物理空間と計算空間を結びつける行列の余因子ベクトル、各節点の速度ベクトル、および体積のデータに基づいて、前記発散を計算するための演算処理を実行する演算回路と、前記外部のプロセッサと前記専用回路とを結合するローカルバスを介して前記外部のプロセッサとの間のデータ入出力を行うための入出力回路とを具備し、前記入出力回路は、前記外部のプロセッサが前記入力データを書き込むことが可能な入力バッファと、前記外部のプロセッサが前記演算回路によって算出された発散の値を読み出すことが可能な出力バッファと、前記演算回路による前記入力バッファからの入力データの読み込み状態、および前記演算回路によって算出された発散の値についての前記出力バッファへの書き込みの状態に応じて、前記入力バッファに関する書き込み可否、および前記出力バッファからのデータ読み出しの可否をそれぞれ前記外部のプロセッサに提示する手段を含むことを特徴とする専用回路。

請求項6

GSMAC有限要素法を用いて解析対象の領域の物理量を当該領域を分割した要素毎に解析する数値解析処理をコンピュータによって実行する数値解析方法において、前記数値解析処理の内、運動方程式に関する計算、および前記運動方程式から導かれるポアソン方程式の計算の内で発散の計算を除く他の計算を汎用プロセッサによって実行するとともに、前記発散を離散ナブラ演算子を用いて計算するために必要な入力データとして、当該発散の計算対象となる要素に関する物理空間と計算空間を結びつける行列の余因子ベクトル、各節点の速度ベクトル、および体積のデータを前記汎用プロセッサによって生成し、前記生成された入力データを要素単位で前記汎用プロセッサから前記専用回路に、その間を結合するローカルバスを介して入力し、前記離散ナブラ演算子を用いた発散の計算を前記専用回路によって実行することを特徴とする数値解析方法。

請求項7

前記汎用プロセッサと前記専用回路との間には、前記汎用プロセッサが前記入力データを書き込むことが可能な第1および第2の入力バッファが設けられており、前記専用回路によって入力データの読み込みが完了された入力バッファから順次新たな要素に関する入力データの書き込みが許可されるように、前記専用回路による入力データの読み込み状態に応じて前記第1および第2の2つの入力バッファそれぞれに関する書き込み可否を前記汎用プロセッサに提示することを特徴とする請求項6記載の数値解析方法。

請求項8

GSMAC有限要素法を用いて解析対象の領域の物理量を当該領域を分割した要素毎に解析する数値解析処理を、汎用プロセッサと専用回路とが搭載されコンピュータのバスに電気的に接続可能に構成された専用プロセッサモジュールを用いて実行する数値解析方法であって、コンピュータからバスを介して前記専用プロセッサモジュールに対してデータを入力して、運動方程式に関する計算、および前記運動方程式から導かれるポアソン方程式の計算の内で発散の計算を除く他の計算を前記汎用プロセッサによって実行するとともに、前記発散を離散ナブラ演算子を用いて計算するために必要な入力データとして、当該発散の計算対象となる要素に関する物理空間と計算空間を結びつける行列の余因子ベクトル、各節点の速度ベクトル、および体積のデータを前記汎用プロセッサによって生成し、前記生成された入力データを前記汎用プロセッサから前記専用回路に前記専用プロセッサモジュール内のローカルバスを介して入力し、前記離散ナブラ演算子を用いた発散の計算を前記専用回路によって実行することを特徴とする数値解析方法。

技術分野

0001

本発明は、GSMAC有限要素法を用いて数値解析処理を実行するための数値解析装置数値解析用専用プロセッサモジュール、数値解析用専用回路、および数値解析方法に関する。

0002

従来より、電磁熱流体解析粘弾性流体解析などの問題を解くために、解析対象の領域の物理量を計算によって解析するための数値解析処理が用いられている。このような数値解析処理の手法として、差分法FDM)、有限要素法(FEM)、有限体積法(FVM)、境界要素法(BEM)が知られている。差分法はシミュレーション技術として最も確立された手法であるが、汎用性が乏しく複雑な形状の実用的な計算にはケースバイケースで考えなければならない。一方、有限要素法は多くの実用的な問題に適用できる汎用性を持っている。しかし、要素数の増大と共に記憶容量と計算時間を多く必要とし、一般的には経済的な計算手法とはいえない。有限体積法は差分法の長所と有限要素法の汎用性をもつ手法で現在多くの試みがなされつつある。境界要素法はポテンシャル問題に適しているものの、高レイノルズ数粘性流れの解析には精度的に満足できるものではない。したがって、現在、汎用的・高精度・経済的な高速計算技術の確率が望まれている。これら三つの条件をある程度満足する数値解析手法として、GSMAC有限要素法が知られている(例えば、非特許文献1参照。)。GSMAC有限要素法は差分法の分野で開発されたMAC法、SMAC法、HSMAC法の技術を有限要素法へ応用したもので、generalized SMAC法の省略形である。また、最近では、GSMAC有限要素法に対応する専用計算機の検討も行われている。例えば、ポアソン方程式中における発散の計算を実行する専用演算器の検討も本発明者らによってなされている(例えば、非特許文献2参照。)。

0003

【非特許文献1】
橋隆彦著「流れの有限要素法解析I、II」書店、1997

背景技術

0004

【非特許文献2】
青木すみえ、他4名、「GSMAC−FEM専用プロセッサの検討」、計算工学講演論文集Vol.7、2002年5月

発明が解決しようとする課題

0005

しかしながら、専用計算機の開発に際しては、単に専用回路を用いるというだけでなく、GSMAC有限要素法の特性や専用回路との間のインタフェースについても十分に考慮しなければ十分な処理速度の高速化を実現することは実際上困難である。
本発明は上述の事情を考慮してなされたものであり、GSMAC有限要素法による数値解析処理を高速に実行することが可能な数値解析装置、数値解析用専用プロセッサモジュール、数値解析用専用回路、および数値解析方法を提供することを目的とする。

0006

上記課題を解決するために、本発明は、GSMAC有限要素法を用いて解析対象の領域の物理量を当該領域を分割した要素毎に解析する数値解析処理を実行する数値解析装置において、前記数値解析処理の内、運動方程式から導かれるポアソン方程式の計算の内で少なくとも離散ナブラ演算子を用いた発散の計算を実行する専用回路と、前記専用回路によって実行される計算を除く他のポアソン方程式の計算、および前記運動方程式に関する計算を実行する汎用プロセッサとを具備し、前記専用回路および前記汎用プロセッサはその間で前記離散ナブラ演算子を用いた発散の計算に必要な入力データおよび前記専用回路によって算出された発散の値が授受されるように前記専用回路と前記汎用プロセッサとの間に配設されたローカルバスを介して結合されており、前記専用回路は、前記離散ナブラ演算子を用いた発散の計算に必要な入力データとして前記汎用プロセッサから前記ローカルバスを介して要素単位で入力される、当該要素に関する物理空間計算空間を結びつける行列余因子ベクトル、各節点速度ベクトル、および体積のデータに基づいて、前記発散を計算するための演算処理を実行するように構成されていることを特徴とする。

課題を解決するための手段

0007

この数値解析装置においては、GSMAC有限要素法による数値解析処理では外部メモリ参照が多く必要とされ、且つ全計算時間のほとんどを占めるような突出した計算時間を必要とする特定の処理が存在しないことに着眼し、ポアソン方程式の計算内で単純且つ演算量が多い部分である少なくとも発散の計算については専用回路で実行し、柔軟性が必要な運動方程式の処理や、専用回路によって実行される計算を除く他のポアソン方程式の計算については汎用プロセッサによって実行するとともに、専用回路と汎用プロセッサとの間をローカルバスによって密結合することによって、専用回路と汎用プロセッサとの間のデータの入出力を効率よく実行できるようにしたものである。この場合、専用回路では離散ナブラ演算子を用いて発散の計算を実行するので、離散ナブラ演算子を用いた発散の計算に必要な入力データとして物理空間と計算空間を結びつける行列の余因子ベクトル、各節点の速度ベクトル、および体積のデータがローカルバスを介して汎用プロセッサから専用回路に要素単位で入力される。これにより、発散の計算に必要な入力データとその入力データから計算された発散の値を高速に受け渡すことが可能となり、全体として十分な高速化を実現することが可能となる。また汎用プロセッサと専用回路との間のデータ入出力の為に、専用回路には、前記汎用プロセッサが前記入力データを書き込むことが可能な入力バッファ、および前記汎用プロセッサが前記専用回路によって算出された発散の値を読み出すことが可能な出力バッファを含み、前記専用回路による前記入力バッファからの入力データの読み込み状態、および前記専用回路によって算出された発散の値についての前記出力バッファへの書き込みの状態に応じて、前記入力バッファに関する書き込み可否、および前記出力バッファからのデータ読み出しの可否をそれぞれ前記汎用プロセッサに提示する入出力回路を設けることが好ましい。通常、専用回路と汎用プロセッサは互いに異なるクロック非同期に動作するが、上記仕組みによりデータの同期を図ることが可能となると共に、ローカルバスのバンド幅を有効利用することが可能となる。また上記仕組みを用いて、第1および第2の2つの入力バッファによるダブルバッファリングを実現することも可能となり、専用回路が常に動作し続けられるようにすることができる。

0008

以下、図面を参照して本発明の実施の形態について説明する。図1には、本発明の一実施形態に係る数値解析装置を実現するための専用の並列計算機の構成例が示されている。この数値解析装置は解析対象の領域の物理量を当該領域を分割した要素毎に解析する数値解析処理をコンピュータによって実行するものであり、数値解析処理の手法としてはGSMAC有限要素法(GSMAC−FEM)を用いる。図1の並列計算機は、コンピュータとしてそれぞれ機能する複数の筐体シャーシ)11をLAN等の通信回線10を介して並列接続して構成される。各筐体10はコンピュータとして機能するものであり、一つの筐体11内に最大で7ボード搭載可能となっている。各筐体11内には、通常のパーソナルコンピュータ(PC)と同機能を持った一つのボードPCをホストコンピュータ(ホストPC)12として搭載しており,PC上にて開発されてきた豊富資産を利用することが可能である。また各ホストPC12は汎用品のEthernet(R)等のLAN(100Mbps)10にて接続されており,複数のホストPC12によってPCクラスタ環境構築している。また、筐体11内には、数値解析処理を実行するための複数の専用プロセッサモジュール14 が設けられている。専用プロセッサモジュール14は、汎用プロセッサ(CPU)15と専用回路16とから構成されており、その間はローカルバス17を介して密結合されている。汎用プロセッサ(CPU)15と専用回路(専用プロセッサ)16の実現形態としては、例えば、▲1▼SOC(System on a Chip)、▲2▼汎用CPUとASIC(別プロセッサ)、▲3▼汎用CPUとFPGA が利用される。以下では、専用プロセッサモジュール14を、汎用CPUとFPGAとから構成されるFPGAボード14として実現した場合を例示する。

0009

複数のFPGAボード14は、筐体11内のバス13に並列に接続されている。上述したように各FPGAボード14には汎用プロセッサ(CPU)15と専用回路16とが設けられており、その間はFPGAボード14上のローカルバス17を介して密結合されている。専用回路16は特定の数値演算を実行するための専用演算ロジックであり、FPGA(再構成可能ゲートアレイ)にて実現されている。ボードPC(ホストPC)12および各FPGAボード14はそれぞれ例えばcompactPCIバス規格のボード等から構成されており、複数のFPGAボード14は例えばcompact PCIバスなどのバス17に並列接続されている。FPGAボード14の構成例を図2に示す。ここでは、一つのFPGAボード14上に1つの汎用プロセッサ(CPU)15と4つの専用回路(FPGA)16とを搭載している。汎用プロセッサ(CPU)15は外部バスインタフェース18を介して外部バス(compact PCIバス17)に電気的に接続されており、外部バス17を介してホストPC12との通信を行うことが出来る。汎用プロセッサ(CPU)15としては、例えばチップパッケージメモリ混載した汎用CPUパッケージが用いられる。汎用プロセッサ15では例えば埋め込み型オペレーティングシステムや数値解析処理用のアプリケーションプログラムが実行される。数値解析処理に必要な各要素に関するデータ等は外部バス17を介してホストPC12から各FPGAボード14上の汎用プロセッサ15に入力される。図1計算機の特徴を端的に述べると、PCクラスタの各ノード専用ハードウェアによるアクセラレータが付加されたシステムと言うことができる。このアクセラレータに最も負荷の高い処理をオフロードし、いかにその処理を高速化できるかが重要である。また、図1計算機システムは、レベル1筐体間並列処理(PCクラスタ),レベル2:筐体内のボード間並列処理,レベル3:ボード内のマルチプロセッサ並列処理,という3つの階層の並列処理構造を持っている。

0010

次に、GSMAC有限要素法の並列処理方法について述べる。まず、FPGAボード14を使用した数値解析処理を実現するための事前の準備として,FPGAボード14の代わりに汎用CPU版ボードを使用した場合の並列処理について検証する。汎用CPU版ボードは汎用CPUのみから構成されるボードであり、各筐体11に搭載することができる。1汎用CPU版ボード当たり4つの汎用CPUが搭載されている。並列化の方法としては領域分割法を用いる。解析対象とする計算領域の分割にはグラフや非構造メッシュ分割ツール等を使用する。また,図1の計算機システムは階層的なハードウェア構造になっているため,図3の例に示すようにメッシュ分割も階層的に行って末端計算ノードに対して担当領域割り当てる。境界面においては,要素については重複させず,節点を複数の領域で重複させるようにしている。これらの重複した節点の上に定義されたデータを,隣接する領域間交換する事で計算における空間の連続性を維持している。このようにして実装した並列処理を検証するための例題として図4モデルに示す正方キャビティ強制対流の計算を行った。初期条件流速,圧力ともに0 からのインパルシブスタート境界条件は壁面上ですべり無しとした。計算空間は指数関数を利用して壁面付近メッシュを集中させ,一辺を60 に不等分割した(要素数21 万6 千)。この例題を汎用CPU版ボードを搭載した図1のシステム上で,1筐体28プロセッサ(7ボード)を用いて,レイノルズ数Re= 1000,時間刻みt = 2×10−3として,無次元時間t=100まで並列計算を行った。計算の結果、Ku(Hwar C. Ku, Richard S. Hirsh, and Thomas D. Taylor, “A pseudospectral method for solution of the three−dimensional incompressible Navier−Stokes equations”, Journal of Computational Physics, 70, (1986), pp.439−462.) らが行った擬似スペクトル法による解析結果と良好に一致したこと確認した。また,並列計算を行わずに単一CPU 上にて計算した結果と並列計算結果の比較も行い,それらが一致していることを確認した。これらの比較結果から並列処理が問題なく行われていることを確認した。

0011

次に並列化による速度向上の効果を調べるため,使用するCPU 数を変化させて速度向上率を計測した.また,その際に計算規模の影響を調べるため,一辺の分割数を20(要素数8 千)から80(要素数51 万2 千)まで変化させて計算を行った。筐体11を一つだけ使用して,その中で計算に用いるボード数を変化させた。この結果、CPU数の増加に伴って通信境界面が相対的に増えていくため規模の小さい計算では加速率が鈍る傾向が見られるものの,概ね線形な速度向上が達成されていることが確認された。また1辺の分割数80(51 万2 千要素)においては,28CPUで24.4 倍の高速化がなされていることを確認した。次に最大4 台までの筐体11を使用した並列計算を行った。既に述べたように筐体間は100MbpsのLAN10を用いて接続されており,ホストPC12上で実行されるオペレーティングシステムによって筐体間の並列処理環境を構築している。使用する筐体数を1 台(28CPU)から4台(112CPU)まで変化させて高速化率を計測した。こちらも計算規模の影響を調べるため,一辺の分割数を20(要素数8千)から120(要素数172万8千)まで変化させて計算を行った。1 筐体内でボード数を変化させた場合と同様に,計算規模が大きいほど,より効率良く計算速度が向上していることが確認された。1 辺の分割数120(要素数172 万8 千)の例においては1 筐体と比較して,2 筐体で1.83 倍,3 筐体で2.64 倍,4 筐体で3.42 倍の高速化率が得られた。ここで述べた並列処理は汎用CPUのみで構成されたシステム上に実装したものであり,末端の演算用CPUが担当領域における流体支配方程式連続の式,運動方程式)を全てソフトウェアに基づいて計算している。ここで実装した並列化方法,計算の制御を担うソフトウェアはそのまま利用し,負荷の高い演算部分選定してFPGA上の専用回路にオフロードすることとする。

0012

(GSMAC−FEM中で専用化する個所の選定)
専用回路化する個所の選定には,以下に述べる条件を考慮することが重要である。まず「(1) 全計算時間の中で多くの割合を占有している個所であること」,次に「(2)外部メモリ参照よりも演算に要する時間が支配的な個所であること」,の2 点である。(1)の条件に適合しない部分を高速化しても全体の処理速度に対する寄与が小さいため,これは必須な条件となる。(2)の条件については,汎用プロセッサに対する専用回路の主な利点の一つが,処理に必要とされる演算器を大量に並置することが可能な点であることから,演算が支配的であるほど専用回路による高速化の効果が大きいためである。これら2点の条件を考慮してGSMAC−FEM について専用回路化を行う。

0013

(1) 計算時間占有割合の高い個所
全計算時間に対する各部分の占有割合を調べる為,例題として3次元正方キャビティ内強制対流問題をGSMAC−FEMにより計算した。解析条件は、レイノズル数Re = 1000,時間刻みt = 1.0×10−2 ,メッシュサイズ=32x32x32, ε= 1.0×10−3である。ここでεはポアソン(Poisson)方程式収束計算における打ち切り条件となる無次元Divergence の最大値を表す。計算は無次元時間10(1000 ステップ)まで実行した。計算機は,PentiumII(R)400Mhz,SDRAM100MHz を使用した。その結果得られた計算時間のプロファイルは、Poisson 方程式のDivergence以外の計算が占める割合が30.88%、Divergenceの計算が占める割合が25.50% 、運動方程式の処理などのその他の計算に要する割合が43.19%である。これより,GSMAC−FEM はプログラム中に突出して計算時間占有割合の高い部分があるアプリケーションではなく,全体に平均的に計算時間の分散したフラットプロファイルなアプリケーションであるといえる。その中でも,計算時間占有割合の高い個所は,Poisson 方程式中のDivergence 計算以外(約30%),及びDivergence 計算(約25%)が挙げられる。つまりPoisson 方程式の計算が全体の約半分強の計算時間を占有している事が分かる。

0014

(2)メモリアクセスよりも演算が支配的である個所
ここでは,(1)で計算時間占有率の高かった以下の2項目についてデータ量と演算量について述べる。
▲1▼ Poisson方程式中のDivergence 以外の計算
▲2▼ Divergence 計算
それぞれ1 要素の計算に必要な入力データ数出力データ数演算回数図5に示す。これから分かるように,データ入力数は多い。▲1▼,▲2▼を比較すると,入力データ数に関して差はないが,出力データ数は▲2▼の方が少なく,さらに演算回数も▲2▼の方が多いことが分かる。したがって,Divergence 計算がより少ないデータに多くの演算を実行するため,比較的演算が支配的な個所であるといえる。これらの考察の結果,本実施形態ではPoisson 方程式の中のDivergence 計算を専用回路化する個所として選定する。

0015

(GSMAC−FEMに適した専用計算機の形態)
本実施形態ではDivergence 計算を専用化する部分に決定したが,同時にGSMAC−FEM は計算時間に偏りのないこと,また外部メモリ参照が多いアプリケーションであることが分かった。そこで,このようなアプリケーションに適した専用計算機の形態について考察する。ある一つのサブルーチンが全計算時間の90%以上を占めるような問題では,そのサブルーチンを専用回路にオフロードした場合に,専用回路と汎用CPUとの間の入出力コストが計算コストに比べて無視できるため,比較的低速な外部バス(図1のバス13)を経由した疎な結合でも大きな問題とはならない。一方,GSMAC−FEM のように突出したサブルーチンが存在せず,演算に対するデータ参照オーダーがほぼ同程度の場合は専用回路16に対する入出力のコストが無視できない。そのため,このようなアプリケーションでは専用回路16とそれに対してデータの入出力を行う汎用CPU13とが密に結合されていることが望ましい。従って,図6のような,1つのチップ内に汎用プロセッサ101とユーザ定義可能な専用ロジック102が密に結合されたSOC(System on a Chip)型のアーキテクチャがGSMAC−FEMに適した専用プロセッサモジュールの形態であると考えられる。図6のSOCにおいては、汎用プロセッサ101とユーザ定義可能な専用ロジック102とがSOC上のローカルバス(内部バス)によって密に接続され、また汎用プロセッサ101は外部バスインタフェース103を介してコンピュータのバスである外部バス13に電気的に接続され、外部バス13を通じてホストコンピュータ等との通信を行うことが出来る。SOC は重要な基盤技術として近年活発研究開発されており,より普及していくことが将来的に見込まれる。SOCとFPGAボード14と対比させると、システム構成図7のように相似になることが分かる。SOC におけるユーザロジック部分102は,FPGAボード14のFPGAチップ(専用回路)16に対応し,特定の演算のみを実行する計算アクセラレータとして機能する。また,SOC におけるCPUコア101は,FPGAボード14の汎用CPU15 に対応し,複雑な処理や,ホストPC12との通信,柔軟性を必要とする計算を担当する。従って,FPGAボード14の代わりにSOC を専用プロセッサモジュールとして使用する専用計算機を実現することができる。以下では、FPGAボード14を使用する場合の構成及び処理手順について説明するが、その構成及び処理手順はSOC についても同じである。

0016

本実施形態では、GSMAC−FEMによる数値解析処理では外部メモリ参照が多く必要とされ、且つ全計算時間のほとんどを占めるような突出した計算時間を必要とする特定の処理が存在しないことに着眼し,ポアソン方程式の計算内で単純且つ演算量が多い部分である少なくともDivergence 計算を専用回路16で実行し,柔軟性が必要な運動方程式の処理や、専用回路16によって実行される計算を除く他のポアソン方程式の計算については汎用プロセッサ15によって実行する。この場合,専用回路16と汎用プロセッサ15との間はローカルバス17によって密結合し,また汎用プロセッサ15についてはホストPC12との通信のために外部バス13に電気的に接続する。専用回路16では離散ナブラ演算子を用いてDivergenceの計算が実行される。このため離散ナブラ演算子を用いたDivergenceの計算に必要な各要素に関する入力データとして、当該要素に関する、物理空間と計算空間を結びつける行列の余因子ベクトル、各節点の速度ベクトル、および体積のデータを汎用プロセッサ15で生成し、それをローカルバスを介して汎用プロセッサ15から専用回路16に要素単位で入力する。これにより、Divergenceの計算に必要な入力データとその入力データから計算されたDivergenceの値を高速に受け渡すことが可能となり、全体として十分な高速化を実現することが可能となる。また汎用プロセッサ15についてはホストPC12との通信によって,流速、圧力等の物量量の解析処理に必要なデータ(例えば各要素の節点に関する座標データ、初期条件、その他)をバス13を介してホストPC12から受信したり、各要素の解析結果をホストPC12に出力することができる。

0017

(GSMAC−FEMの基本アルゴリズムとDivergenceの計算)
ここで、GSMAC−FEMの基本アルゴリズムについて説明する。GSMAC−FEMでは非圧縮粘性流体の非常に広範囲の流れの問題を取り扱う。すなわち、流体と熱の相互作用および流体と電磁場の相互作用や非ニュートン流体の流体について数値解析処理が行われる。GSMAC−FEMにおいては非圧縮粘性流体の基礎方程式として,質量保存法則を表す連続の式と運動方程式(Navier−Stokes方程式)を使用する。
【数1】
ただし,式(2.1)と式(2.2)は無次元化されている。νは速度、pは圧力、Reはレイノズル数である。式(2.2)の左辺非定常項,右辺第1項は移流項,右辺第2項は圧力項,右辺第3項は粘性項である。式(2.2)を陽的に離散化してみる。
【数2】
たとえ∇・νn = 0であるとしても,式(2.3) のような計算で求めたνn+1は∇・νn+1=0 とはならず,時間的な離散化による誤差数値計算上の丸め誤差などを含み∇・νn+1=ε となる。時間進行するごとにこの誤差が蓄積されると,計算が破綻する原因となる。そのことを考慮した上で,この基礎方程式の時間的な離散化を考える。
差分法の分野で開発されたHSMAC法(highly simplified Marker and Cell method) を有限要素法へ拡張した方法がGSMAC法(generalized simplified MAC method) である。MAC 系の解法では∇・νn+1=0 を満足するように圧力pn+1 が決められる。まず,式(2.2) を速度ν について陽的に,圧力pについて陰的に離散化する。時間的に離散化した基礎方程式は
【数3】
となる。上述したように,式(2.6) より求まる速度の予測子ν ̄の発散は0とみなせない大きさの誤差を含んでいるので,圧力pを修正しながら速度の発散が0 に近づくように速度を修正する必要がある。式(2.5) から式(2.6) を差し引くと
【数4】
となる。式(2.10) と式(2.11) は,φp が求まれば時刻(n+1)Δt の圧力p と速度ν が求まることを意味している。さらに,式(2.10) の両辺の発散をとり式(2.4) を代入すると,φp に関するPoisson 方程式
【数5】
が得られる。この式は,φp が楕円型の方程式に支配されていること意味している。よって,境界条件を与えればφp は求めることができる。以上で,Navier−Stokes 方程式は、図8に示すように予測修正ステップの式(Predictor Step, Corrector Step)とPoisson 方程式に分離されたことになる。

0018

つまり、図8に示すように、GSMAC−FEMにおいては、以下の処理手順で物理量の解析が予測子・修正子法によって要素毎に行われる。
ステップS1:運動方程式を解き、速度の予測子ν ̄を求める。
ステップS2: 予測子ν ̄から速度の発散∇・ν ̄を求め、さらに修正速度ポテンシャルφを求める。
ステップS3: 発散∇・ν ̄の収束判定を行う。
ステップS4: 非圧縮条件を満たさない場合は、修正速度ポテンシャルφを用いて速度ベクトルと圧力を補正する(同時緩和法)。そして非圧縮条件を満たすまでステップS2,S3を 繰り返した後に、時間進行してステップS1へ移行する。専用回路16によって実行される演算は、ステップS2におけるPoisson方程式の発散(Divergence)の計算であり、それ以外の処理は汎用プロセッサ16が担当する。専用回路16によるDivergenceの計算は、空間微分微分演算子であるナブラ演算子を離散化した離散ナブラ演算子を用いて実行される。離散ナブラ演算子を用いたDivergence計算に必要な入力データは汎用プロセッサ16によって要素毎に生成され、それが要素単位でローカルバス17を介して専用回路16に送られる。Divergence計算に必要な入力データは各要素に関する、物理空間と計算空間を結びつける行列の余因子ベクトル、各節点の速度ベクトル、および体積のデータである。

0019

(専用回路16によるDivergence の計算)
まず,6面体のDivergence の計算方法について述べる。上述したようにGSMAC−FEMではDivergenceは離散ナブラ演算子を利用して計算される。1 要素のDivergence 計算に必要な入力データは,余因子ベクトルAが9 データ,速度ベクトルνが各頂点3 方向で24 データ,体積の逆数が1 データ必要になる。これらのデータと余因子ベクトルより計算されるこう配ベクトルCa を用いて,Divergence は次のように計算される。
【数6】
・計算方法1
余因子ベクトルからこう配ベクトルを計算し、こう配ベクトルと速度ベクトルからDivergenceを計算する。
【数7】
・計算方法2
面体要素対象性を利用し、こう配ベクトルを半分生成する。さらに、図9に示すように、原点に対して点対称な位置にある速度ベクトルの差を取る。これらよりDivergence を計算する。
【数8】
この2つの計算方法について浮動小数点演算回数を比較した。計算方法1では、浮動小数点加算71回,浮動小数点乗算24回,で計95回の浮動小数点演算が必要であるのに対し、計算方法2では、浮動小数点加算41回,浮動小数点乗算13回,で計54回の浮動小数点演算で済み、演算回数は計算方法2のほうが少ない。したがって,FPGA 上に実装する計算方法は対称性を利用した計算方法2とする。

0020

(離散ナブラ演算子)
ここで、Divergence 計算で使用される離散ナブラ演算子について具体的に説明する。
(1,1)物理空間と計算空間
流体の運動を支配する方程式は物理空間のCartesian座標(x, y , z )を用いて表される。しかし,任意形状物体まわりの流れを調べるときにCartesian座標を用いると境界条件の取り扱いが複雑になる。 そこで,境界条件を取り扱い易くするため,物体の形状に沿った座標系を選ぶ。このような座標形を物体適合座標と呼び,これは一般曲線座標(ξ ,η ,ζ)の一種である。(ξ ,η ,ζ )で表された空間を計算空間と呼ぶ.実際の計算は物理空間から計算空間に写像されてから実行されることになる。
(1.2)基底ベクトルと逆基底ベクトル
物理空間における基底ベクトルは(i ,j ,k )でこれらは互いに直交する単位基底ベクトルである.よってi ,j ,kから作られる逆基底ベクトルをi*, j* ,k*とすれば、
【数9】
となる。つまりI=i*, j=j* ,k=k* となり逆基底ベクトルは基の基底ベクトルに等しい。計算空間における基底ベクトルは各座標軸に接する接ベクトルである。これは、
【数10】
となる。これは大きさ1ではなく,互いにも直交しない。次に計算空間の座標の勾配から作られるベクトル
【数11】
を考える。これは計算空間における逆基底ベクトルになっている。すなわち関係式
【数12】
成立する.ただしi ,j , k =1, 2, 3 とする。計算空間における基底ベクトルgi は曲線ξi に接し,計算空間における逆基底ベクトルgi は面ξi =constに垂直となる。

0021

(1.3)ヤコビアン
(ξ ,η ,ζ)に関する(x, y , z )のヤコビアンは
【数13】
の様に表されて,逆基底ベクトルの関係式より
【数14】
という関係式が成立する。ただしここでJ−1 はJ の逆行列で以下の様に表される。

0022

【数15】
ここでAij はヤコビアンの余因子行列である。成分Aij を表示すると
【数16】
となる。

0023

(1.4)変数変換
物理空間x(x1 ,x2 , x3 )と計算空間?(ξ1 ,ξ2 ,ξ3 )の間にx=x(ξ)の対応関係を考える。物理空間x と計算空間? の間に成立する微分関係式は
【数17】
が成立する。ここで∇とヤコビの行列をJとすれば
【数18】
となる。

0024

(1.5)離散ナブラ演算子とこう配ベクトル
関数f(x) をある節点i における近似値fi と形状関数Ni を用いて表すと
【数19】
となる。ここで離散ナブラ演算子の定義は
【数20】
である。つぎに離散ナブラ演算子の近似について述べる。まず,形状関数のこう配を計算空間から物理空間に変換する。
【数21】
これを考慮すると離散ナブラ演算子の近似は,
【数22】
の様に表す事が出来る。離散ナブラ演算子を用いた場合のナブラ演算表示について述べる。
こう配・発散・回転の数式表示は
【数23】
となる。この様に離散ナブラ演算子は∇a またはCa /Ωe と表される。ここで,Ca はこう配ベクトルである。実際にGSMAC−FEMで用いるのは圧力と修正速度ポテンシャルのこう配と,速度の発散である。こう配に関しては
【数24】
と表せる。発散に関しては
【数25】
と表せる。余因子ベクトルは物理空間における任意の方向における面積ベクトルと計算空間における面積ベクトルの比であることが分かる。それを計算空間における,さらに任意の方向に対して各面積ベクトルからの成分をあわせたものがこう配ベクトルになる。そしてこう配ベクトルを要素平均したものが離散ナブラ演算子となる。3次元の離散ナブラ演算子の一般公式はx 成分について
【数26】
となる。同様にしてy,z成分についても表示できる。

0025

ただしここで,
【数27】
である。

0026

(1.6) 3次元6面体要素における離散ナブラ演算子
ここでは3次元6面体要素の離散ナブラ演算子を具体的に求める。6面体の形状関数は
【数28】
と表示できる(節点番号については図10を参照)。これより
【数29】
となる。ここで要素平均に対し
【数30】
となるから,
【数31】
となる。また,各軸方向の△rの平均値
【数32】
となる。さらに△ξ=△η=△ζ=2である。さらにヤコビアンの要素平均値
【数33】
となる。これは計算空間の基準体積が1であることによる。また、物理空間の要素体積
【数34】
と求まる。以上より6面体要素に対する離散ナブラ演算子は
【数35】
と表すことができる。このようにして、GSMAC−FEMにおいては、要素毎に離散ナブラ演算子が求められ、そしてその離散ナブラ演算子を用いて、圧力と修正速度ポテンシャルのこう配と,速度の発散等の微分演算が要素毎に実行される。

0027

(Divergence専用演算器)
次にDivergence 専用演算器としての専用回路16の構成を説明する。専用回路16は,図11に示すように、x, y, z の3方向のデータ演算を可能な限り並列に実行できるようにするために、x, y, z の3方向それぞれに対応する3つの2入力浮動小数点加算器31−33,3つのマルチプレクサ(MPX)34−36,3つのレジスタ37−39,3つの2入力浮動小数点乗算器40−42,3入力浮動小数点加算器43,2入力浮動小数点加算器44,マルチプレクサ(MPX)47,48,レジスタ45,46,および2入力浮動小数点乗算器49から構成されている。専用回路16はパイプライン動作する。動作周波数は50MHz であり,初期レイテンシが42cycleで,10cycle 毎に1 要素のDivergence演算結果が得られる。前述の計算方法2を用いると1要素当たりのDivergence 計算には54 回の浮動小数点演算(浮動小数点加算=41,浮動小数点乗算=13)が実行されるため,演算性能は270MFlops となる。これは,ある1サイクルにおけるPeak Performance では無く,演算に必要なデータが途切れること無く与えられた場合のSustained Performance であり,それに必要となる入力データレートは680MB/sec となり,その際の出力データレートは20MB/sec となる。次に、専用回路16によって実行されるDivergence演算動作について具体的に説明する。上述したように、専用回路16は離散ナブラ演算子を用いた発散の計算を実行する。発散の計算に必要な入力データは汎用プロセッサ15が計算によって生成し、専用回路16に入力する。6面体要素の場合、入力データは、図12に示すように、余因子ベクトルAが9 データ,速度ベクトルν が各頂点3 方向で24 データ,体積の逆数が1 データであり、計34データとなる。専用回路16はデータを取り込みながら演算を実行し、演算開始から、つまりデータ入力から42cycle経過した時点でその入力データに対応する発散の値を出力する。
ここで、Aξはξ 方向の余因子ベクトルであり,A11はξ 方向の余因子ベクトルAξのx 方向成分,A21はξ 方向の余因子ベクトルAξのy 方向成分,A31はξ 方向の余因子ベクトルAξのz 方向成分である。またAηはη 方向の余因子ベクトルであり,A12はη 方向の余因子ベクトルAηのx 方向成分,A22はη 方向の余因子ベクトルAηのy 方向成分,A32はη 方向の余因子ベクトルAηのz 方向成分である。Aζはζ 方向の余因子ベクトルであり,A13はζ 方向の余因子ベクトルAζのx 方向成分,A23はζ 方向の余因子ベクトルAζのy 方向成分,A33はζ 方向の余因子ベクトルAζのz 方向成分である。各節点iの速度ベクトル( i=1〜8)のx 方向成分をui ,y 方向成分をvi,z 方向成分をwi とする。またrVは要素体積の逆数である。これらのデータ(A11,A21,A31,A12,A22,A32,A13,A23,A33,u1,v1,w1,u2,v2,w2,u3,v3,w3,u4,v4,w4,u5,v5,w5,u6,v6,w6,u7,v7,w7,u8,v8,w8,rV)を使用して速度の発散は,Divergence専用演算器で以下に示す式でこの順番に計算される。

0028

【数36】
上記式において(a)の部分の浮動小数点加算演算は,3つの2入力浮動小数点加算器31−33およびマルチプレクサ(MPX)34−36によって並列に実行される。すなわち、(a)の部分における各行の左、中、右の3つの式の演算は、マルチプレクサ(MPX)34−36によって入力データを選択しながら、3つの2入力浮動小数点加算器31−33によって並列に実行される。また、(b)の部分においては,各行の左、中、右の3つの式の浮動小数点乗算が3つの2入力浮動小数点乗算器40−42によって並列に実行される。(c)の部分における浮動小数点加算演算は,3入力浮動小数点加算器43によって実行される。(d)の部分における浮動小数点加算演算は,レジスタ45,46とマルチプレクサ(MPX)47,48とによって入力データを選択しながら、2入力浮動小数点加算器44によって実行される。(e)の部分における浮動小数点乗算演算は,2入力浮動小数点乗算器49によって実行される。上記式中における各変数の意味は次の通りである。

0029

Bx1:中間変数( A11とA12の和), Bx2:中間変数( A11とA12の差), By1:中間変数(A21とA22の和), By2:中間変数(A21とA22の差), Bz1:中間変数(A31 とA32の和), Bz2:中間変数(A31 とA32の差), △u1:中間変数(u5 とu3 の差), △v1:中間変数(v5 とv3 の差), △w1:中間変数(w5 とw3 の差), △u2:中間変数(u6 とu4 の差), △v2:中間変数(v6 とv4 の差), △w2:中間変数(w6 とw4 の差), △u3:中間変数(u7 とu1 の差), △v3:中間変数(v7 とv1 の差), △w3:中間変数(w7 とw1 の差), △u4:中間変数(u8 とu2 の差), △v4:中間変数(v8 とv2 の差), △w4:中間変数(w8 とw2 の差),Cx1:節点1で定義されたこう配ベクトルの x方向成分, Cy1:節点1で定義されたこう配ベクトルのy方向成分, Cz1:節点1で定義されたこう配ベクトルのz方向成分, Cx2:節点2で定義されたこう配ベクトルの x方向成分, Cy2:節点2で定義されたこう配ベクトルの y方向成分, Cz2:節点2で定義されたこう配ベクトルの z方向成分, Cx3:節点3で定義されたこう配ベクトルの x方向成分, Cy3:節点3で定義されたこう配ベクトルの y方向成分, Cz3:節点3で定義されたこう配ベクトルの z方向成分, Cx4:節点4で定義されたこう配ベクトルの x方向成分, Cy4:節点4で定義されたこう配ベクトルの y方向成分, Cz4:節点4で定義されたこう配ベクトルの z方向成分, Mx1 :中間変数(Cx1 と△u1 の積), My1 :中間変数(Cy1 と△v1 の積), Mz1 :中間変数(Cz1 と△w1 の積), Mx2 :中間変数(Cx2 と△u2 の積), My2 :中間変数(Cy2 と△v2 の積), Mz2 :中間変数(Cz2 と△w2 の積), Mx3 :中間変数(Cx3 と△u3 の積), My3 :中間変数(Cy3 と△v3 の積),Mz3 :中間変数(Cz3 と△w3 の積),Mx4 :中間変数(Cx4 と△u4 の積),My4 :中間変数(Cy4 と△v4 の積),Mz4 :中間変数(Cz4 と△w4 の積),S1:中間変数(Mx1とMy1とMz1の和),S2:中間変数(Mx2とMy2とMz2の和),S3:中間変数(Mx3とMy3とMz3の和),S4:中間変数(Mx4とMy4とMz4の和),Sum 1:中間変数(S3 とS1 の和),Sum 2:中間変数(S2 とS4 の和),Sum:中間変数(Sum 1 とSum 2 の和),rV:要素体積の逆数。

0030

(Divergence専用演算器のデータ入出力回路
次に、ローカルバス17を介して実行される汎用プロセッサ15と専用回路16(Divergence専用演算器)との間のデータ入出力を高速化するための仕組みについて説明する。すなわち、汎用プロセッサ15と専用回路16は互いに異なるクロックで動作するので、Divergence専用演算器に対するデータ入出力の同期を取る為には、それを管理する入出力回路を汎用プロセッサ15と専用回路16との間に設けることが必要となる。入出力回路は、実際には専用回路16を構成するFPGAチップ上に設けられる。さらに、専用回路16が停止することなく動作し続けるように、汎用プロセッサ−専用回路間のローカルバス17のデータバンド幅を有効に生かすことのできる入出力回路の作成が必要になる。専用回路16が停止することなく動作し続けるために図13のようなダブルバッファリングを入出力回路によって行う。入力にダブルバッファリングを用いることで、専用回路16がバッファ21,22の一方のバッファから入力データを入力しながらデータ計算している最中にも、汎用プロセッサ15は次の要素に関するデータをバッファ21,22の別のバッファ21に書き込みことが可能となり、専用回路16がデータ供給不足によりDivergence 計算を停止する可能性を少なくすることができる。専用回路16によって算出されたDivergenceの演算結果は出力レジスタ31に書き込まれ、それが汎用プロセッサ15によって読み出される。

0031

この場合、汎用プロセッサ15と専用回路16との間のデータ入出力の同期を取るために、入出力回路は、専用回路16によって入力データの読み込みが完了された入力バッファから順次新たな要素に関する入力データの書き込みが許可されるように、専用回路16による入力データの読み込み状態に応じて第1および第2の2つの入力バッファ21,22それぞれに関する書き込み可否をフラグを用いて汎用プロセッサ15に提示すると共に、専用回路16によって算出された発散の値が出力バッファとしての出力レジスタ31に書き込まれたときに汎用プロセッサ15による出力レジスタ31からのデータ読み出しが許可されるように、出力レジスタ31に対する発散の値の書き込み状態に応じて出力レジスタ31からのデータ読み出しの可否をフラグを用いて汎用プロセッサ15に提示する。これら各フラグの値は例えば入出力回路内制御レジスタを通じて汎用プロセッサ15に示すことが出来る。

0032

ここではまず、ダブルバッファリングを行わず、データの同期を取る回路について説明する。その簡単なブロック図を図13に示す。
入出力回路17は、例えば専用回路16と同一のFPGA上に設けられる。この場合、1つのFPGAチップ上に、図11の回路を含むDivergence専用回路16と、入出力回路17とが混載される。つまり、入出力回路17はDivergence専用回路16が形成されるFPGA内に設けられたインタフェース回路であり、この入出力回路17を介して汎用プロセッサ15とのデータ入出力が行われる。入出力回路17はデータ用入出力レジスタ171,制御用レジスタ172,およびデータ入出力制御回路173から構成される。データ用入出力レジスタ171は上述の入力バッファおよび出力バッファとして機能する。データ入出力制御回路173は、汎用プロセッサ15と専用回路16との間の同期を取るために、入出力レジスタ171の状態(入力データの書き込みの可否、演算結果データ読み出しの可否)をフラグによって汎用プロセッサ15に提示する。汎用プロセッサ15側では、提示されたフラグの値に応じて、入出力レジスタ171へのデータ書き込みや、入出力レジスタ171からの演算結果データの読み出しが行われる。すなわち、汎用プロセッサ15と専用回路16との間の同期を取るためには、1)汎用プロセッサ15は、Divergence専用回路16がデータを受け取ることができる状態であるかどうかを確認する、2) 1要素分の入力データが全て汎用プロセッサ15から転送されたことをDivergence専用回路16に通知する、3)入力データが全て送られてきたことを確認してDivergence専用回路16が演算を実行し、得られた結果を示すデータを所定の場所に置く、4)Divergence専用回路16が計算結果を出力したことを汎用プロセッサ15が確認してデータを回収する、という動作が必要となるが、これが、入出力レジスタ171の状態(入力レジスタに対する入力データの書き込みの可否、出力レジスタからの演算結果データの読み出しの可否)を示す上述のフラグによって実現される。

0033

入出力回路17の具体的な構成例を図15に示す。汎用プロセッサ15からはFPGA上に作られたデータ用入出力レジスタ171および制御用レジスタ172は、図15のように見える。データ用入出力レジスタ171には1 要素分のDivergence 計算に必要な計34データ(A11,A21,A31,A12,A22,A32,A13,A23,A33,u1,v1,w1,u2,v2,w2,u3,v3,w3,u4,v4,w4,u5,v5,w5,u6,v6,w6,u7,v7,w7,u8,v8,w8,rV)それぞれに対応する入力レジスタ群が用意されており、データ毎にそれを書き込むべき入力レジスタが予め決められている。このように1 要素分のDivergence 計算に必要な34データそれぞれに対応する入力レジスタを用意することにより、Divergence専用回路16においてx, y, z の3方向のデータ演算を並列に実行することが可能となる。入出力回路17内のデータ入出力制御回路173でデータ用入出力レジスタ171の入出力を制御する。但し、簡単のため図15ではクロック入力を省略してある。データ用入出力レジスタ171内のリードオンリーレジスタが出力バッフ(出力レジスタ)として用いられる。データ入出力制御回路173は、図示のような4つのコンポーネント、すなわち、入力用レジスタ制御部(data2POPERegsCtrl)401,出力用レジスタ制御部(dataFromPOPERegsCtrl)402,カウンタ(count42)403,およびリセットストール制御部(rstStallCtrl)404から構成される。また図15における符号a ̄yそれぞれは次の信号を示している。
a.accSH:汎用プロセッサのデータ受信完了確認信号, b.weout:レジスタへの書き込み許可信号,c.fillOB:出力用レジスタの状態, d.fillIn:入力用レジスタの状態, e.inform:Divergence専用回路(pope)からのデータ送信準備信号, f.rstOB:dataFromPOPERegsCtrlへのリセット信号, g.informCtrl:rstStallCtrlからの制御信号, h.rstCtrl:count42へのリセット信号, i.stlCtrl:count42へのストール信号, j.eventPOPE:Divergence専用回路(pope)へのデータ入力完了信号, k.sendStart:Divergence専用回路(pope)へのデータ送信開始通知信号, l.rstIO:data2POPERegsCtrlへのリセット信号, m.fullIB:dataFromPOPERegsCtrlからの制御信号, n.wein:レジスタへの書き込み許可信号, o.d2p_state:data2POPERegsCtrlの状態, p.lastData:最終データ書き込み通知信号, q.clk:クロック信号, r.instPOPE:Divergence専用回路(pope)の状態, s.inpX0:Divergence専用回路(pope)の入力(x方向入力データ), t.inpX1:Divergence専用回路(pope)の入力(x方向入力データ符号反転可), u.inpY0:Divergence専用回路(pope)の入力(y方向入力データ), v.inpY1:Divergence専用回路(pope)の入力(y方向入力データ 符号反転可), w.inpZ0:Divergence専用回路(pope)の入力(z方向入力データ), x.inpZ1:Divergence専用回路(pope)の入力(z方向入力データ 符号反転可), y.inpV:Divergence専用回路(pope)の入力(体積逆数データrV)。

0034

次に、各コンポーネントの詳細を説明する。
(data2POPERegsCtrl)
図16は“data2POPERegsCtrl”401を示している。data2POPERegsCtrlの入力データは、clk信号reset信号,instPOPE信号,lastData信号であり、出力データはsendStart信号,eventPOPE信号,wein信号,d2p_stateである。data2POPERegsCtrlは、専用演算器16に対して必要なデータを供給する。その際、データが破壊されないようにするために同期を取る必要がある。その機能をフラグ(full)により実装している。データ用入出力レジスタ171にはDivergence 計算に必要な計34データそれぞれに対応する入力レジスタが用意されており、フラグは汎用プロセッサ(CPU)15が1要素分のデータを全て送信し終わると同時に汎用プロセッサ(CPU)15からのlastDataによって1にセットされ、専用演算器16が全てのデータを読み出し終えると0にセットさせる。このフラグを元にして基本的には状態が遷移し、どのタイミングで計算が開始されたか等を他のコンポーネントに知らせる。データが実際に格納される入力レジスタに対する書き込み許可信号(wein)はWRITE状態でレジスタが満タンではない(full=0)の時1(アクティブステート)となる。eventPOPE信号はWRITE状態で入力レジスタが満タン(full=1)の時に1となり、コンポーネント“rstStallCtrl”の専用演算器16のリセットを強制解除する。sendStart信号はREAD0状態で1になり、コンポーネント“count42”に対しカウント開始を通知する。図17にdata2POPERegsCtrlの状態遷移を示す。専用演算器16がデータ入力可能な状態(INST8)で、入力レジスタが満タン(full=1)であれば、専用演算器16がデータを読み、計算が開始される。全てのデータを専用演算器16が読み込みフラグが0になると、汎用CPU15による次の要素の入力データの書き込みが許可される。フラグ(full)の値、つまり入力レジスタの状態は制御用レジスタ172にfullInとして設定され、制御用レジスタ172を介して汎用CPU15が読み取ることができる。ダブルバッファの場合には上述の制御は入力バッファを構成する入力レジスタ毎に行えばよい。

0035

(dataFromPOPERegsCtrl)
図18は“dataFromPOPERegsCtrl”402を示している。dataFromPOPERegsCtr402lの入力データは、clk信号,reset信号,accSH信号,inform信号であり、出力データはfullOB信号,weout信号である。dataFromPOPERegsCtrl402では専用演算器16から同期を取って正しいタイミングでデータを受け取り、出力レジスタに格納し、それを汎用CPU15に渡さなければならい。出力レジスタはdata2POPERegsCtrlと同様にフラグにより制御される。フラグはWRITE時に1にセットされる。READ時には汎用CPU15からのaccSH信号が代入される。accSH信号は汎用CPU15が専用演算器16の出力結果を取り出せた場合0となり、フラグは0にセットされる。専用演算器16の出力結果が書き込まれる出力レジスタは書き込み許可信号weoutにより書き込み制御されている。WRITE状態のときは1(書き込み可)、それ以外は0(書き込み不可)になっている。図19にdataFromPOPERegsCtrl402の状態遷移を示す。▲1▼レジスタが空で,かつ専用演算器16から次のサイクルで答えが送られてくる状態.WRITEに遷移して答えを得る。▲2▼レジスタが満タンの状態.汎用CPU15からデータが取り出されるのを待つ。▲3▼データが読み出されて空の状態.IDLEに遷移して待機する。

0036

(count42,rstStallCtrl)
図20は“count42”403と“rstStallCtrl”404を示している。“count42”403の入力データはclk、sendStart,rstCtrl,stlCtrlであり、出力データはinform,informCtrlである。count42は専用演算器16は専用演算器16が計算開始してから(これはdata2POPERegsCtrlのsendStart信号によって通知)カウントして,結果が出る2サイクル前にdataFromPOPERegsCtrlに知らせる(inform)。また専用演算器16が計算開始してからカウントして,結果が出る4サイクル前にrstStallCtrlに知らせる(informCtrl)。つまり専用演算器16は入力データの読み込み開始(計算開始)から42サイクルタイム数経過後にその入力データに対応するDivergenceを出力するように構成されているので、“count42”403が計算開始からのサイクルタイム数をカウントすることにより、専用演算器16から正しい演算結果が出力されるタイミングが判断される。これにより、計算開始から42サイクルタイム数経過後の正しい演算結果を出力レジスタに格納することが出来る。“rstStallCtrl”404の入力データはinformCtrl、 full(dataFromPOPERegsCtrlからの制御信号),rstSH(汎用CPUからのリセット信号),stlSH(汎用CPUからのストール信号),eventPOPEであり、出力データはrst(data2POPERegsCtrlへのリセット信号),stl(data2POPERegsCtrl)へのストール信号,rst(専用演算器へのリセット信号),stl(Divergenceへのストール信号),rst( count42へのリセット信号),stl(count42へのストール信号),rst(dataFromPOPERegsCtrl)へのリセット信号である。rstStallCtrl404では入出力回路を構成するコンポーネントとDivergence専用演算器16に対して,汎用CPUからのリセット,ストール及び他のコンポーネントが出力する信号を考慮して、リセット,ストール信号を生成する.コンポーネント”count42”から得たinformCtrl信号とコンポーネント”dataFromPOPERegsCtrl”のfull信号(full=1)を見て必要ならばDivergence専用演算器にstall信号を送る.また、コンポーネント”data2POPERegsCtrl”からのeventPOPE信号により専用演算器16のリセットを強制解除する。

0037

図21は汎用CPU15から見た入出力回路17のレジスタセットメモリマップの例を示している。エリア1は制御レジスタ172を示し、エリア2はデータ用レジスタ171を示している。汎用CPU15によって生成される余因子ベクトルAの9 データ,速度ベクトルν(u,v,w) の24 データ,体積の逆数(Ω)はエリア2内のレジスタに書き込まれ、また専用演算器16から出力されるDivergence演算結果Divはエリア2内のリードオンリーレジスタに書き込まれる。

発明を実施するための最良の形態

0038

なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば体積の逆数の代わりに体積を入力するように専用演算器16を構成してもよい。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。

図面の簡単な説明

0039

以上説明したように、本発明によれば、GSMAC有限要素法による数値解析処理を高速に実行することが可能となる。

図1
本発明の一実施形態に係る数値解析装置を示すブロック図。
図2
専用プロセッサモジュールの例(ボード)を示すブロック図。
図3
階層的領域分割の例を示す図。
図4
正方キャビティの例を示す図。
図5
入出力データ数と演算回数をポアソン方程式の発散の計算とそれ以外の計算とで比較した図。
図6
専用プロセッサモジュールの他の例(SOC)を示すブロック図。
図7
汎用プロセッサと専用回路の役割分担を説明する図。
図8
GSMAC−FEMの基本アルゴリズムを説明するフローチャート
図9
節点の点対称性を示す図。
図10
6面体要素の節点の配置を示す図。
図11
Divergence専用演算器の回路構成を示す図。
図12
専用演算器で実行される計算を説明するための図。
図13
汎用プロセッサと専用回路間のデータ入出力を説明する図。
図14
入出力回路の構成を模式的に示す図。
図15
入出力回路の具体的な構成を示す図。
図16
入出力回路内の入力用レジスタ制御部の構成を示す図。
図17
入力用レジスタ制御部の状態遷移を示す図。
図18
データ入出力回路内の出力用レジスタ制御部の構成を示す図。
図19
出力用レジスタ制御部の状態遷移を示す図。
図20
カウンタとリセット・ストール制御部を示す図。
図21
汎用プロセッサから見たメモリマップの例を示す図。
【符号の説明】
14…FPGAボード(専用プロセッサモジュール)、15…汎用プロセッサ、16…専用回路、17…入出力回路、171…データ用入出力レジスタ、173…データ入出力制御回路。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ