JP3764318B2 - 多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体 - Google Patents
多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP3764318B2 JP3764318B2 JP2000061128A JP2000061128A JP3764318B2 JP 3764318 B2 JP3764318 B2 JP 3764318B2 JP 2000061128 A JP2000061128 A JP 2000061128A JP 2000061128 A JP2000061128 A JP 2000061128A JP 3764318 B2 JP3764318 B2 JP 3764318B2
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- fourier transform
- dimensional
- stage
- result
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
本発明は、例えば、コンピュータにより演算される多次元のデータに対する多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体に関するものである。
【0002】
【従来の技術】
複数の演算手段を使用して、多次元フーリエ変換を並列処理する方式の例が、例えば、「水野政治、宮田裕行、二次元FFTの並列処理手法の検討、情報処理学会研究報告98-ARC-128 98-HPC-70,Vol.No.18,pp.13-18,1998」では、各演算手段に2つの演算結果送受信手段を設けて演算手段をリング型に接続し、それぞれの演算手段から時間的に同時に出力された演算結果を並列転送することにより、演算結果の転送による時間の短縮を行っている。
【0003】
また、例えば、「國枝博昭、伊藤和人、メッシュ結合マルチプロセッサシステムにおける2次元FFTアルゴリズム、電子情報通信学会論文誌A,Vol.J71-A,No.7,pp.1424-1431,1988」では、各演算手段に4つの演算結果送受信手段を設けて演算手段をメッシュ状に接続し、それぞれの演算手段から時間的に同時に出力された演算結果を並列転送することにより、演算結果の転送による時間の短縮を行っている。
【0004】
また、例えば、「丹野洲宣、武田利浩、堀口進、8隣接プロセッサ・アレイによる並列2−DFFTアルゴリズム、情報処理学会第44回(平成4年前期)全国大会講演論文集(1), pp.1-85-1-86,1985」では、各演算手段に8つの演算結果送受信手段を設けて演算手段をメッシュ状に接続し、それぞれの演算手段から時間的に同時に出力された演算結果を並列転送することにより、演算結果の転送による時間の短縮を行っている。
【0005】
【発明が解決しようとする課題】
しかしながら、上記の従来技術で書かれている方法では、1つの演算手段に対して複数の演算結果送受信手段が必要となるため、非常に多数の演算手段を用いた大規模な装置を作成する際に、演算結果を通信する通信線が膨大となり、事実上装置を構築することができなくなる、という欠点を持つ。
【0006】
また、上記の従来技術で書かれている方法での構成で装置が構築できたとしても、演算結果送受信手段と通信線が多数必要となるため、多くの費用がかかる、という欠点を持つ。
【0007】
また、上記の問題を解決するために、1つの演算手段に対して演算結果送受信手段を1つにして、例えばTCP/IPプロトコルを用いて仮想的にその1つの物理通信路上で複数の通信路を設けるような手法を採用した場合、上記の従来技術に書かれている方法では演算結果が時間的に同時に出力されるため、物理的な通信路の転送が輻湊し、転送時間が多く必要となる、という欠点を持つ。
【0008】
本発明は、上記課題に鑑みてなされたもので、通信路及び転送時間を増大させることなく多次元高速フーリエ変換並列演算をより簡易な構成で高速に演算処理することのできる多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体を提供することを目的とする。
【0011】
【課題を解決するための手段】
前述した目的を達成するために、本発明は、1次元フーリエ変換を演算する複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された1次元フーリエ変換の演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有する多次元高速フーリエ変換並列演算装置が、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算することによって行う多次元高速フーリエ変換並列演算方法であって、前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数N d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d 個の演算ステージに分解され、前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられている場合に、0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算する手順を有し、前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、前記第d組目の1次元フーリエ変換を演算する手順のそれぞれが、前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信する手順と、第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信する手順と、前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積する手順とを含み、0以上D−2以下の全てのdについて、前記第d番目の1次元フーリエ変換を演算する手順において第N番目の演算ス テージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する手順において第1番目の演算ステージの組を割り当てられていることを要旨とする。
【0012】
すなわち本発明は、多次元高速フーリエ変換を並列に演算する方法であり、演算手段で演算した演算結果は演算結果送受信手段に送られ、演算結果交換手段を通して、別の演算結果送受信手段に送られ、さらにその演算結果送受信手段に接続している演算手段に送られること、多次元フーリエ変換を次元数分の1次元フーリエ変換を演算することにより行うこと、また各1次元フーリエ変換の演算アルゴリズムとしてCooley-Tukeyの手法を用いたときに、Cooley-Tukeyの手法では、1次元フーリエ変換を演算するために、1次元フーリエ変換するデータに含まれるエレメント数(データの要素数)の素因数の数に等しい数の演算ステージに分解して演算を行うが、その1つまたは複数の演算ステージを1つまたは複数の演算手段に割り当てること、多次元フーリエ変換を行うため複数の1次元フーリエ変換を演算する際には、まず、1つ目の1次元フーリエ変換の第1ステージの演算を行い、演算結果を次の第2ステージの演算を行う演算手段に演算結果を送り、それと同時に2つめの1次元フーリエ変換の第1ステージの演算を行うこと、演算ステージの中間段階では、m番目の1次元フーリエ変換の第nステージの演算を行い、演算結果を次の第n+1ステージの演算を行う演算手段に演算結果を送り、それと同時にm+1番目の1次元フーリエ変換の第nステージの演算を行うこと、演算ステージの最終段階では、最後の演算ステージを行う演算手段に全ての1次元フーリエ変換の演算結果を蓄積しておき、全ての1次元フーリエ変換の演算結果が算出された後に、その演算手段を用いて次の次元の1次元フーリエ変換の第1ステージを演算する。
【0013】
なおCooley-Tukeyの手法は、1次元フーリエ変換を行うアルゴリズムの1つであり、このアルゴリズムにより1次元フーリエ変換を高速化することが可能となる。
【0014】
これにより、ある次元の1次元フーリエ変換を行った後、次の次元の1次元フーリエ変換を行う際に、1つの演算手段内で、ある次元の1次元フーリエ変換の最終ステージと次の次元の1次元フーリエ変換の最初のステージを行うことから、演算手段間の演算結果の転送が不要となり、全体の処理時間が短縮できる。
【0015】
1次元フーリエ変換内の演算においては、演算ステージの演算と、演算ステージ間の演算結果の転送が同時に行えるフーリエ変換演算方法のため、演算時間または転送時間を隠ぺいすることができ、全体の処理時間が短縮できる。
【0016】
また、本発明は、1次元フーリエ変換を演算する複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された1次元フーリエ変換の演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有し、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算することによって行う多次元高速フーリエ変換並列演算装置であって、前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数N d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d 個の演算ステージに分解され、前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられており、0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算するように構成され、かつ、前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、前記第d組目の1次元フーリエ変換のそれぞれを演算する際に、前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積するように構成されており、0以上D−2以下の全てのdについて、前記第d番目の1次元フーリエ変換を演算する際に第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する際に第1番目の演算ステージの組を割り当てられていることを要旨とする。
【0017】
これにより、本発明は1次元フーリエ変換内の演算においては、演算ステージの演算と、演算ステージ間の演算結果の転送が同時に行えるフーリエ変換演算方法のため、演算時間または転送時間を隠ぺいすることができ、全体の処理時間が短縮できる。
【0018】
また、本発明の多次元高速フーリエ変換並列演算装置は、1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを要旨とする。これにより、1次元フーリエ変換を行うアルゴリズムの1つであるCooley-Tukeyの手法を用いることになるので1次元フーリエ変換を高速化する。
【0021】
また、本発明は、複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有するコンピュータに、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算によって実行させる多次元高速フーリエ変換並列演算プログラムを記録した記録媒体であって、前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数N d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d 個の演算ステージに分解され、前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられている場合に、前記コンピュータに、0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算する処理を実行させ、前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、前記第d組目の1次元フーリエ変換を演算する処理のそれぞれが、前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信する処理と、第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信する処理と、前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積する処理とを含み、0以上D−2以下の全てのdについて、前記第d番目の1次元フーリエ変換を演算する処理において第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する処理において第1番目の演算ステージの 組を割り当てられていることを要旨とする。
【0022】
これにより本発明にあっては、多次元高速フーリエ変換並列演算プログラムを記録媒体に記録しているため、該記録媒体を利用して、その多次元高速フーリエ変換並列演算プログラムの流通性を高めることができる。
【0023】
さらに、本発明の多次元高速フーリエ変換並列演算プログラムを記録したコンピュータ読み取り可能な記録媒体は、1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを要旨とする。
【0024】
これにより、1次元フーリエ変換を行うアルゴリズムの1つであるCooley-Tukeyの手法を用いることになるので1次元フーリエ変換を高速化する。
【0025】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明する。
【0026】
図1は本発明の一実施の形態に係る多次元高速フーリエ変換並列演算方法が適用される多次元高速フーリエ変換並列演算装置の構成を示すブロック図である。同図に示す多次元高速フーリエ変換並列演算装置は、演算手段200,201,202,203、演算結果送受信手段210,211,212,213、演算結果交換手段220、演算結果を送受信するための通信路230,231,232,233により構成される。
【0027】
ここでは、演算手段200,201,202,203、演算結果送受信手段210,211,212,213、通信路230,231,232,233がそれぞれ4つずつ表記されているが、本実施形態は4つに限定されるものではなく、後述する図10に示すステージ数n以下であればよいものである。
【0028】
すなわち、図10に示すステージ0、〜、n−1の演算を演算手段200から203に割り当てることになる。例えば、n=8であるならば、ステージ0,1は演算手段200に、ステージ2,3は演算手段201に、ステージ4,5は演算手段202に、ステージ6,7は演算手段203に割り当てる。
【0029】
演算結果交換手段では通信路230,231,232,233は図2に示すような1方向にデータが流れるような接続を行う。ここで、300,301,302,303は前記演算手段200,201,202,203であり、310,311,312,313は前記演算結果送受信手段210,211,212,213であり、さらに330,331,332,333は演算結果を送受信するための前記通信路230,231,232,233である。
【0030】
以下、図2を参照して、1次元フーリエ変換の処理手順の一例を説明する。以下の説明では演算手段、演算結果送受信手段はそれぞれ4個とし、演算手段300ではステージ0、〜、n0 、演算手段301ではステージn0 +1、〜、n1 、演算手段302ではステージn1 +1、〜、n2 、演算手段303ではステージn2 +1、〜、n−1を行うものとする。また、演算手段300にはフーリエ変換すべきデータがロードされているものとする。
【0031】
なお、演算手段、演算結果送受信手段の数は上述したように4個に限定する必要はなく、ステージ数n以下であればよい。また、n,n0 ,n1 ,n2 ,・・・・は、1次元フーリエ変換に関する記号であり、nは全ステージ数、n0 ,n1 ,n2 ,・・・・はステージの番号を表す数字であり、0、〜、n−1の範囲にある。
【0032】
演算手段300では、ステージ0、〜、n0 の運算を行う。ステージn0 で算出された列方向1次元フーリエ変換は、演算結果送受信手段310、通信路330、演算結果送受信手段311を通して、演算手段301へ送られる。このとき、ステージn0 において列方向1次元フーリエ変換はC1 回行われるが、1回フーリエ変換が行われる毎に転送される。
【0033】
演算手段301では、ステージn0 +1、〜、n1 を行う。ステージn0 +1では、フーリエ係数を受信する毎に「ひねり係数」を乗ずる。ステージn1 で算出された列方向1次元フーリエ変換は、演算結果送受信手段311、通信路331、演算結果送受信手段312を通して、演算手段302へ送られる。このとき、ステージn1 において列方向1次元フーリエ変換はC2 回行われるが、1回フーリエ変換が行われる毎に転送される。
【0034】
演算手段302では、ステージn1 +1、〜、n2 を行う。ステージn1 +1では、フーリエ係数を受信する毎にひねり係数を乗ずる。ステージn2 で算出された列方向1次元フーリエ変換は、演算結果送受信手段312、通信路332、演算結果送受信手段313を通して、演算手段303へ送られる。このとき、ステージn2 において列方向1次元フーリエ変換はC3 回行われるが、1回フーリエ変換が行われる毎に転送される。
【0035】
演算手段303では、ステージn2 +1、〜、n−1を行う。ステージn2 +1では、フーリエ係数を受信する毎にひねり係数を乗ずる。これにより、ステージn−1で得られた行方向1次元フーリエ変換係数が、求める1次元フーリエ変換係数である。
【0036】
次に、上記の1次元フーリエ変換を用いて、エレメント数がN0 ×N1 ×…×ND-1 のD次元データをフーリエ変換してフーリエ変換係数を求める場合についての一実施の形態を示す。
【0037】
D次元データが互いに直交するX0 ,X1 ,…,XD-1 軸を用いて表されるとする。このとき、このD次元データのフーリエ変換は以下のように行う。
【0038】
ステップM1:データをX0 軸方向のN1 ×…×ND-1 個の1次元データ(X0 軸に平行な並びの1次元データ)に分割する。
【0039】
ステップM2:それぞれの1次元データをフーリエ変換し、フーリエ変換係数を算出する。
【0040】
ステップM3:算出したフーリエ変換係数を、X1 軸方向のN0 ×N2 ×…×ND-1 の1次元データ(X1 軸に平行な並びの1次元データ)に分割する。
【0041】
ステップM4:それぞれの1次元データをフーリエ変換し、フーリエ変換係数を算出する。
【0042】
ステップM5:X2 ,X3 ,…,XD-1 軸に関しても同様の操作を順次行う。最後のXD-1 軸に関して算出したフーリエ変換係数が求めるフーリエ変換係数である。
【0043】
例えば、16×16(=N0 ×N1 )の2(=D)次元データでは、図3に示すような操作を行う。まず、データをX0 軸方向の16個の1次元データ(X0 に平行な並びの1次元データ)に分割して、それぞれの1次元データをフーリエ変換し、フーリエ変換係数を算出する。
【0044】
次に、算出したフーリエ変換係数を、X1 軸方向の16個の1次元データ(X1 軸に平行な並びの1次元データ)に分割して、それぞれの1次元データをフーリエ変換し、フーリエ変換係数を算出する。X1 軸に関して算出したフーリエ変換係数が求めるフーリエ変換係数である。
【0045】
次に、多次元フーリエ変換の具体例を説明する。多次元フーリエ変換は後述するように複数の1次元フーリエ変換の実行により実現される。
【0046】
そこで、まず図4乃至図10を参照して、1次元フーリエ変換について述べ、その後、それを用いた多次元フーリエ変換についての実施の形態を述べる。
【0047】
なお、ここで図4乃至図9は、1次元データまたは1次元フーリエ変換係数における「ひねり係数」を2次元的に並べ直した様子を示し、j,kはそれらの図においては、縦方向と横方向の位置を示す。また、図4乃至図9においては、jは0、〜、P1 −1の整数、kは0、〜、C1 の整数である。
【0048】
これにより、データf、フーリエ変換係数hは、j,kで特定することができるようになる。例えば、データfがN0 個あった場合、データの添字は0、〜、N0 −1の整数になり、これが0,・・・j×C1 +k・・・N0-1 と表記できるようになる。また、ひねり係数のWの添字は、冪指数を表す。
【0049】
1次元フーリエ変換はCooley-Tukeyのアルゴリズムにより行う。エレメント数がN0 の1次元データfをフーリエ変換する場合のCooley-Tukeyのアルゴリズムによるフーリエ変換係数の算出方法を以下に示す。
【0050】
ステップS1:エレメント数N0 を素数P1 とC1 (=N0 /P1 )に分解する。
【0051】
ステップS2:このときN0 =P1 であれば、このデータをN0 (=P1 )点フーリエ変換する。そうでなければ、図4に示すように、データをC1 個ずつに分割し並べる。
【0052】
ステップS3:図5に示すように列方向について、それぞれP1 点1次元フーリエ変換する。そのフーリエ変換係数hを図6に示す。
【0053】
ステップS4:図6の各項にひねり係数Wjk=exp(−2πi×j×k)をかける。ただし、iは−1の平方根である。j,kは位置に応じた数値である。その結果を図7に示す。
【0054】
ステップS5:図8に示すように行方向について、それぞれC1 点1次元フーリエ変換係数を求めるが、このとき、図9に示すように、各行においてステップS1で示したN0 にC1 を置き換えてステップS1からステップS5を繰り返す。図9では素数P2 を用いてC2 =C1 /P2 とし、エレメント数がC2 になるような分割を行っている。最後に出力されたフーリエ変換係数が求めるフーリエ変換係数である。
【0055】
次に図10を参照して、上記算出手法を用いて、エレメント数N0 (=P1 P2 …Pn-1 ;Pi ,i=0、〜、n−1は素数でありPi =Pj であってもよい)の1次元データをフーリエ変換するときの処理手順の一例を説明する。
【0056】
まず1次元データのエレメント数N0 を素数P1 とC1 (=N0 /P1 )に分解し、エレメント数C1 ずつのP1 個データにし、図10のように並べる。そして、列方向についてそれぞれP1 点1次元フーリエ変換する。フーリエ変換係数は図10内では点線で示されている。次に各エレメントにひねり係数を乗じる。
【0057】
その次に、C1 (=P1 P2 …Pn-1 )は素数ではないので、各行についてエレメント数C1 (=P1 P2 …Pn-1 )のデータ毎に以下の処理を行う。
【0058】
まず、1次元データのエレメント数C1 を素数P2 とC2 (=C1 /P2 )に分解し、エレメント数C2 ずつのP2 個データにし、図10のように並べる。そして、列方向についてそれぞれP2 点1次元フーリエ変換する。フーリエ変換係数は図10内では点線で示されている。次に各エレメントにひねり係数を乗じる。
【0059】
以下、同様の操作を繰り返し、データのエレメント数が素因数に分解できないCn-1 に達したときに、最下行に示すように、行方向のCn-1 点1次元フーリエ変換を行ってフーリエ変換係数を算出する。この最後に算出されたフーリエ変換係数が求めるフーリエ変換係数である。
【0060】
次に、図2を参照して、多次元高速フーリエ変換並列演算装置における、エレメント数がN0 ×N1 ×…×ND-1 のD次元データを多次元フーリエ変換する際の手順を説明する。
【0061】
ここでは、N0 の素因数の数はn0 であり、N1 ,…,ND-1 については同様にn1 個,…,nD-1 個であるとする。また、全ての次元についての1次元フーリエ変換は演算手段300または303から始まり、演算手段303または300で終了するものとする。なお、演算手段300にはフーリエ変換すべきデータがロードされているものとする。
【0062】
まず、X0 軸方向のN1 ×…×ND-1 個の1次元データ(X0 軸に平行な並びの1次元データ)に分割し、それぞれの1次元データを演算手段300,301,302,303の順でN0 点1次元フーリエ変換する。このとき、演算手段300ではステージ0、〜、n0,0 −1、演算手段301ではステージn0,0 、〜、n0,1 −1、演算手段302ではステージn0,1 、〜、n0,2 −1、演算手段303ではステージn0,2 、〜、n0 −1を行うものとする。
【0063】
なお、ここでn0 、n0,0 、n0,1 は、多次元(D>1)フーリエ変換に関する記号であり、n0 はX0 軸方向の1次元データをフーリエ変換する場合の全ステージ数であり、n0,0 、n0,1 はX0 軸方向の1次元データをフーリエ変換する場合のステージの番号を表す数字であり、0、〜、n0 −1の範囲にある。
【0064】
演算手段300では、1つ目の1次元データの1次元フーリエ変換のステージ0、〜、n0,0 −1を行い、これが終了して演算結果であるフーリエ変換係数を演算手段301へ送ると同時に、2つ目の1次元データの1次元フーリエ変換のステージ0、〜、n0,0 −1を行う。さらに、3、〜、N1 ×…×ND-1 個目の1次元データも同様にして次々と演算しながら301へ演算結果を送出する。
【0065】
演算手段301では、1つ目の1次元フーリエ変換係数を演算手段300から受け取り、ステージn0,0 、〜、n0,1 −1を行う。これが終了して演算結果であるフーリエ変換係数を演算手段302へ送る。これと平行して演算手段300から2つ目の1次元フーリエ変換係数を受け取り、1つ目のステージn0,0 、〜、n0,1 1の演算が終わり次第、2つ目のステージn0,0 、〜、n0,1 −1の演算を行う。3、〜、N1 ×…×ND-1 個目の1次元データも同様にして次々と演算しながら302へ演算結果を送出する。
【0066】
演算手段302では演算手段301と同様の操作をステージn0,1 、〜、n0,2 −1について行う。
【0067】
演算手段303では、1つ目の1次元フーリエ変換係数を演算手段302から受け取り、ステージn0,2 、〜、n0 −1を行う。1つ目の1次元フーリエ変換が終了後に、この演算結果を演算手段303に記憶しておく。2、〜、N1 ×…×ND-1 個目の1次元フーリエ変換についても、終了後は演算結果を演算手段303に記憶しておく。
【0068】
次に、X1 軸方向のN0 ×N2 ×…×ND-1 個の1次元データ(X1 軸に平行な並びの1次元データ)に分割し、それぞれの1次元データを演算手段303,302,301,300というX0 軸方向の場合とは逆の順序でN1 点1次元フーリエ変換する。このとき、データの流れは図2とは逆になる。なお、演算手段303ではステージ0、〜、n1,0 −1、演算手段302ではステージn1,0 、〜、n1,1 −1、演算手段301ではステージn1,1 、〜、n1,2 −1、演算手段300ではステージn1,2 、〜、n1 −1を行うものとする。
【0069】
この場合もX0 軸方向の1次元フーリエ変換した場合と同様に、最終的な演算結果である1次元フーリエ変換係数は、演算手段300に蓄積される。
【0070】
X2 ,X3 ,…,XD-1 軸に関しても同様の操作を順次行う。最後のXD-1 軸に関して演算したフーリエ変換係数が求めるフーリエ変換係数であり、Dが奇数のときは演算手段303に、Dが偶数のときは演算手段300に蓄積される。
【0071】
図11、図12に分割処理、フーリエ変換処理、ひねり係数の乗算処理等を行う演算手順300,301,302,303内の演算処理時間と、演算結果送受信手段、演算結果交換手段、通信路による演算結果の通信時間の割り当てを示す。
【0072】
なお、図中、R1、R2、R3、R4は、それぞれ
R1;0、〜、n*,0 −1、
R2;n*,2 、〜、n* −1、
R3;n*,0 、〜、n*,1 −1、
R4;n*,1 、〜、n*,2 −1
である(但し、*は任意の数字を表す。以下、同様)。
【0073】
図11は1つの演算処理時間が1つの通信時間より長い場合の図であり、図12は1つの演算処理時間が1つの通信時間より短い場合の図である。縦軸は割り当てる項目を示し、演算手段内の処理と演算手段間の通信がある。横軸は経過時間を示す。
【0074】
図11、図12で使用しているフーリエ変換するデータの次元は奇数のものであり、この場合は最後のXD- 1軸に関する処理が演算手段303内で行われるが、偶数であれば最後のXD- 1軸に関する処理が演算手段300内で行われる。
【0075】
図11、図12では、まず、演算手段300において図10に示すステージ0、〜、n0,0 −1の1列目の処理をはじめ、処理が終了後、演算手段301へ演算結果を送出する。それと同時に2列目の処理を行う。図11、図12に示す1つの処理では、ステージ0では、列毎に1次元フーリエ変換を行うこと、ステージ1以上では列毎にひねり係数の乗算と1次元フーリエ変換を行う。
【0076】
ステージn0,0 以降も同様にして処理を進めていき、演算手段303において全ての演算処理がすむとX0 軸方向の1次元フーリエ変換が終了する。その後、X1 軸方向の1次元フーリエを行うために、変換後は演算手段303からステージ0、〜、n1,0 −1の処理をはじめる。以下、同様の操作を進め、XD-1 軸の1次元フーリエの実行終了後、全ての処理を終える。
【0077】
その効果としては、ある次元の1次元フーリエ変換を行った後、次の次元の1次元フーリエ変換を行う際に、1つの演算手段内で、ある次元の1次元フーリエ変換の最終ステージと次の次元の1次元フーリエ変換の最初のステージを行うことから、演算手段間の演算結果の転送が不要となり、演算結果の転送時間が短縮できることから、全体の処理時間が短縮できる。
【0078】
また、1次元フーリエ変換内の演算においては、演算ステージの演算と、演算ステージ間の演算結果の転送が同時に行えるフーリエ変換方法のため、演算時間または転送時間を隠ぺいすることができ、全体の処理時間が短縮できる。
【0079】
図11、図12において、黒色部分は全体の処理時間を計測する上で陽に現れる時間を表しており、1つの演算処理時間が1つの通信時間より長い場合では、図11で示すように、演算結果の転送時間が陽に現れるのは、1つの軸方向の1次元フーリエ変換当たり、3列分のみであり、その他の転送時間は演算にかかる時間で隠ぺいされる。
【0080】
また、1つの演算処理時間が1つの通信時間より短い場合では、図12で示すように、演算にかかる時間が陽に現れるのは、1つの軸方向の1次元フーリエ変換当たり、3列分のみであり、その他の演算にかかる時間は転送時間で隠ぺいされる。
【0081】
また、1回の演算結果転送において転送される演算結果の量は小さいことと、演算結果送受信手段に同時に送受信される演算結果は2つしかないことから、1つの演算手段に対する演算結果送受信手段は最大2つで最大の速度が得られる。また、図2に示すように、演算結果の流れは通信路により決まっており、各演算結果送受信手段で受信する口と転送する口が決まっていることから、全二重通信の機能がある演算結果送受信手段を使用する場合は、1つの演算手段に対する演算結果送受信手段は1つで最大の速度が得られる。
【0082】
このような多次元高速フーリエ変換並列演算は多次元高速フーリエ変換並列演算プログラムにより実現されるものであり、また該プログラムは記録媒体に記録して提供される。また該記録媒体を利用して、その多次元高速フーリエ変換並列演算プログラムの流通性を高めることができる。
【0083】
【発明の効果】
以上説明したように、1つの演算手段内で、ある次元の1次元フーリエ変換の最終ステージと次の次元の1次元フーリエ変換の最初のステージを行うことから、演算手段間の演算結果の転送が不要となり、演算結果の転送時間が短縮できることから、全体の処理時間が短縮できる。
【0084】
また、1次元フーリエ変換内の演算においては、演算ステージの演算と、演算ステージ間の演算結果の転送が同時に行えるフーリエ変換方法のため、演算時間または転送時間を隠ぺいすることができ、全体の処理時間が短縮できる。
【0085】
また、1回の演算結果転送において転送される演算結果の量は小さいことと、演算結果送受信手段に同時に送受信される演算結果は2つしかないことから、1つの演算手段に対する演算結果送受信手段は1つで十分である。
【0086】
また、演算結果の流れは通信路により決まっており、各演算結果送受信手段で受信する口と転送する口が決まっていることから、全二重通信の機能がある演算結果送受信手段を使用する場合は、1つの演算手段に対する演算結果送受信手段は1つで最大の速度が得られるという利点がある。
【図面の簡単な説明】
【図1】本発明に係る多次元高速フーリエ変換並列演算方法が適用される多次元高速フーリエ変換並列演算装置の一実施形態の概略の構成を示すブロック図である。
【図2】図1に示す一実施の形態におけるデータの流れを説明するための結線状態を示すブロック図である。
【図3】2次元フーリエ変換の処理手順を示す図である。
【図4】実施の形態におけるデータ分割を説明する図である。
【図5】実施の形態における列方向1次元フーリエ変換を説明する図である。
【図6】実施の形態における列方向1次元フーリエ変換係数を説明する図である。
【図7】実施の形態における列方向1次元フーリエ変換係数へのひねり係数の乗算を説明する図である。
【図8】実施の形態における行方向1次元フーリエ変換を説明する図である。
【図9】実施の形態における行のデータ分割を説明する図である。
【図10】実施の形態における1次元フーリエ変換処理の全体を示す図である。
【図11】1つの演算処理時間が1つの通信時間より長い場合の演算処理と通信の時間的割り当てを示す図である。
【図12】1つの演算処理時間が1つの通信時間より短い場合の演算処理と通信の時間的割り当てを示す図である。
【符号の説明】
200,201,202,203 演算手段
210,211,212,213 演算結果送受信手段
220 演算結果交換手段
230,231,232,233 通信路
300,301,302,303 演算手段
310,311,312,313 演算結果送受信手段
330,331,332 通信路
Claims (6)
- 1次元フーリエ変換を演算する複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された1次元フーリエ変換の演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有する多次元高速フーリエ変換並列演算装置が、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算することによって行う多次元高速フーリエ変換並列演算方法であって、
前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数N d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d 個の演算ステージに分解され、
前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、
前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられている場合に、
0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算する手順を有し、
前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、
前記第d組目の1次元フーリエ変換を演算する手順のそれぞれが、
前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信する手順と、
第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信する手順と、
前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に 対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積する手順とを含み、
0以上D−2以下の全てのdについて、
前記第d番目の1次元フーリエ変換を演算する手順において第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する手順において第1番目の演算ステージの組を割り当てられている
ことを特徴とする多次元高速フーリエ変換並列演算方法。 - 前記1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを特徴とする請求項1記載の多次元高速フーリエ変換並列演算方法。
- 1次元フーリエ変換を演算する複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された1次元フーリエ変換の演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有し、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算することによって行う多次元高速フーリエ変換並列演算装置であって、
前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、
当該1次元データに含まれるエレメント数N d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d 個の演算ステージに分解され、
前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、
前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられており、
0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算するように構成され、かつ、
前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、
前記第d組目の1次元フーリエ変換のそれぞれを演算する際に、
前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、
第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステ ージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、
前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積するように構成されており、
0以上D−2以下の全てのdについて、
前記第d番目の1次元フーリエ変換を演算する際に第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する際に第1番目の演算ステージの組を割り当てられている
ことを特徴とする多次元高速フーリエ変換並列演算装置。 - 前記1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを特徴とする請求項3記載の多次元高速フーリエ変換並列演算装置。
- 複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有するコンピュータに、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算によって実行させる多次元高速フーリエ変換並列演算プログラムを記録した記録媒体であって、
前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数N d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d 個の演算ステージに分解され、
前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、
前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられている場合に、
前記コンピュータに、0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算する処理を実行させ、
前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、
前記第d組目の1次元フーリエ変換を演算する処理のそれぞれが、
前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信する処理と、
第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信する処理と、
前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積する処理とを含み、
0以上D−2以下の全てのdについて、
前記第d番目の1次元フーリエ変換を演算する処理において第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する処理において第1番目の演算ステージの組を割り当てられている
ことを特徴とする多次元高速フーリエ変換並列演算プログラムを記録した記録媒体。 - 前記1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを特徴とする請求項5記載の多次元高速フーリエ変換並列演算プログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000061128A JP3764318B2 (ja) | 2000-03-06 | 2000-03-06 | 多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000061128A JP3764318B2 (ja) | 2000-03-06 | 2000-03-06 | 多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001249917A JP2001249917A (ja) | 2001-09-14 |
JP3764318B2 true JP3764318B2 (ja) | 2006-04-05 |
Family
ID=18581326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000061128A Expired - Fee Related JP3764318B2 (ja) | 2000-03-06 | 2000-03-06 | 多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3764318B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6666548B2 (ja) | 2016-03-14 | 2020-03-18 | 富士通株式会社 | 並列計算機、fft演算プログラムおよびfft演算方法 |
-
2000
- 2000-03-06 JP JP2000061128A patent/JP3764318B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001249917A (ja) | 2001-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5689282B2 (ja) | 行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム | |
US7461114B2 (en) | Fourier transform apparatus | |
US4821224A (en) | Method and apparatus for processing multi-dimensional data to obtain a Fourier transform | |
EP0902375A2 (en) | Apparatus for fast Fourier transform | |
Cheng et al. | Hardware efficient fast DCT based on novel cyclic convolution structures | |
CN113608717B (zh) | 一种数论变换计算电路、方法及计算机设备 | |
EP3789891A1 (en) | Number-theoretic transform hardware | |
CN110766128A (zh) | 卷积计算单元、计算方法及神经网络计算平台 | |
US6003056A (en) | Dimensionless fast fourier transform method and apparatus | |
Swarztrauber et al. | Vector and parallel methods for the direct solution of Poisson's equation | |
Garrido et al. | Optimum MDC FFT hardware architectures in terms of delays and multiplexers | |
JP3639207B2 (ja) | 共有メモリ型スカラ並列計算機における多次元フーリエ変換の並列処理方法 | |
JP3764318B2 (ja) | 多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体 | |
US6728742B1 (en) | Data storage patterns for fast fourier transforms | |
Cosnard et al. | Analysis of asynchronous polynomial root finding methods on a distributed memory multicomputer | |
CN115859003A (zh) | 执行fft的方法、装置及设备 | |
Grigoryan | Efficient algorithms for computing the 2-D hexagonal Fourier transforms | |
Göttfert | An acceleration of the Niederreiter factorization algorithm in characteristic 2 | |
Kekre et al. | Unified fast algorithm for most commonly used transforms using mixed radix and kronecker product | |
US6438568B1 (en) | Method and apparatus for optimizing conversion of input data to output data | |
Scherson et al. | Vector computations on an orthogonal memory access multiprocessing system | |
US20230169143A1 (en) | Method and apparatus for efficient multidimensional fast fourier transforms | |
Alnuweiri | A new class of optimal bounded-degree VLSI sorting networks | |
López et al. | Unified framework for the parallelization of divide and conquer based tridiagonal systems | |
Shoari et al. | Computation of the fast Fourier transform on the star-connected cycle networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050413 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050719 |
|
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: 20060110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060119 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090127 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100127 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110127 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |