Changes between Version 8 and Version 9 of GRAPE-DR model 450


Ignore:
Timestamp:
Apr 5, 2009 11:03:58 AM (15 years ago)
Author:
nakasato
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GRAPE-DR model 450

    v8 v9  
    1717 
    1818= GRAPE-DR model 450をつかうためのノウハウ = 
    19 == GDRLIBのマニュアル暫定版 == 
    20 GDRLIBは、LSUMP(仮称)コンパイラで生成したDDコードを、KFCR社のGRAPE-DR model 450で使うためのAPIである。もともと、GRAPE-DRでは、アセンブラからAPIを自動生成する機能があるが、あまり使いやすいとはいえないので、より直感的に使えるようなラッパーとしての役割を果たす。まず、APIの説明をした後、使い方の例を解説する。 
    21  
    22 なお、現時点ではDD演算用に特化しているため、GDRLIBとアプリケーションは、どちらもC++でコンパイルする必要がある。将来的にはより汎用的なデザインと置き換える。以下に出てくるDDやQDは、qd-2.3.7ライブラリにより定義された四倍精度、八倍精度変数のclassである。 
    23  
    24 === int GDRsetup() === 
    25 GRAPE-DRボードの利用を開始する。これによりボードなどの初期化処理がおこなわれる。正しく初期化ができた場合は0が返り値になる。(現バージョンはエラーチェックなし) 
    26  
    27 === int GDRcleanup() === 
    28 GRAPE-DRボードの利用を終了する。ダミー。 
    29  
    30 === void GDRrun(int n) === 
    31 GRAPE-DRボードでの計算を開始する。引数nは、ループ回数である。この関数は、以下にでてくるデータ転送関数を適切に実行したあとで、呼ぶことにより、実際の計算がボードで実行される。この関数はボードでの計算が終わるまでブロックする。 
    32  
    33 === int GDRwriteQD_BM(int i, int n, qd_real *p) === 
    34 BMにQD変数のデータをn個書き込む。iは書き込む場所(変数)を指定する。通常、BMデータはループの回数分だけ必要なので、nはループの回数と等しい。配列q[]のサイズはn以上でなければならない。現バージョンでは、すべてのBBに同じデータを書き込む。さらに、GRAPE-DRでは4要素のベクトル処理が基本動作であるが、この関数は4要素全てにq[]を書き込む。 
    35  
    36 === void GDRtransferBM(int n) === 
    37 BMのデータを転送する。GDRwriteQD_BM()は実際には内部バッファへのコピーしかしないので、 この間数を呼ぶことでボードへの転送がおこなわれる。この関数は転送が終わるまでブロックする。 
    38  
    39  
    40  
    41