JP7058810B2 - 信号処理システム - Google Patents

信号処理システム Download PDF

Info

Publication number
JP7058810B2
JP7058810B2 JP2021560838A JP2021560838A JP7058810B2 JP 7058810 B2 JP7058810 B2 JP 7058810B2 JP 2021560838 A JP2021560838 A JP 2021560838A JP 2021560838 A JP2021560838 A JP 2021560838A JP 7058810 B2 JP7058810 B2 JP 7058810B2
Authority
JP
Japan
Prior art keywords
phase rotation
processing system
signal processing
processor
data
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
JP2021560838A
Other languages
English (en)
Other versions
JPWO2021124376A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2021124376A1 publication Critical patent/JPWO2021124376A1/ja
Application granted granted Critical
Publication of JP7058810B2 publication Critical patent/JP7058810B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Description

本発明は、チャープz変換(chirp Z-transform,CZT)を実行するための信号処理技術に関する。
離散フーリエ変換(Discrete Fourier Transform,DFT)は、時間領域信号を周波数領域信号に変換する手法であり、音声信号処理、画像信号処理、生体信号解析及びディジタル通信などの種々の技術分野において広く使用されている。DFTを高速に演算するアルゴリズムとしては、高速フーリエ変換(Fast Fourier Transform,FFT)が広く知られている。FFTの多くは、信号長が2のべき乗に制限されるクーリー・テューキー型FFT(Cooley-Tukey FFT)であり、任意の信号長でのDFTを演算することができないという課題がある。
そこで、任意の信号長での演算を可能にするアルゴリズムとして、CZTに基づくDFTが知られている。このCZTに基づくDFTは、ブルースタインのFFT(Bluestein’s FFT)と呼ばれることがある。たとえば、非特許文献1には、CZTに基づくDFTを実装するためのハードウェア構成が開示されている。
P. A. Milder, et al.: "Hardware implementation of the discrete Fourier transform with non-power-of-two problem size", Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2010.
近年、CPU(Central Processing Unit)及びMPU(Micro Processing Unit)などの汎用プロセッサの他に、テンソル演算を実行可能なGPU(Graphics Processing Unit)などの、並列演算に特化した特定用途向けプロセッサが普及している。この種の特定用途向けプロセッサは、各々が単純に設計された多数のプロセッサコア(演算器)を実装している。
上記のクーリー・テューキー型FFTは、DFTを再帰的に分解するアルゴリズムである。前述の特定用途向けプロセッサの個々のプロセッサコアは、汎用プロセッサのプロセッサコアと比べると単純な演算機能を有するように設計されているので、クーリー・テューキー型FFTの並列化を効率的に行うように設計されていない。一方、従来のCZTに基づくDFTも、2回のFFTと1回のIFFT(逆FFT)とにより畳み込み演算を実行するアルゴリズムであることから、前述の特定用途向けプロセッサでは、従来のCZTに基づくDFTの並列化を効率的に行うことが難しい。
上記に鑑みて本発明の目的は、特定用途向けプロセッサにおいてFFTを使用せずにCZTの並列化を効率的に行うことを可能とする信号処理システムを提供することである。
本発明の一態様による信号処理システムは、複数の離散信号系列からなる入力行列と位相回転行列との行列積を演算することによりチャープz変換を実行する信号処理システムであって、並列演算を実行する複数個のプロセッサコアを含む特定用途向けのマルチコアプロセッサと、前記複数個のプロセッサコアにそれぞれ割り当てられた複数の位相回転データブロックを格納している第1のデータ記憶領域と、前記複数の離散信号系列を一時的に記憶する第2のデータ記憶領域と、前記第1のデータ記憶領域から前記複数の位相回転データブロックを読み出して前記マルチコアプロセッサに転送し、前記第2のデータ記憶領域から前記複数の離散信号系列を読み出して前記マルチコアプロセッサに転送する並列演算制御部とを備え、前記複数の位相回転データブロックの各位相回転データブロックは、連続的にアクセス可能な配列を有する複数の位相回転因子からなり、前記複数個のプロセッサコアの各プロセッサコアは、前記第1のデータ記憶領域から転送された当該複数の位相回転データブロックのうち自己に割り当てられた位相回転データブロックと、前記第2のデータ記憶領域から転送された当該複数の離散信号系列とを用いて前記行列積の一部をなす部分行列積を演算することを特徴とする。
本発明の一態様によれば、第1のデータ記憶領域に格納された位相回転データブロックは、連続的にアクセス可能な配列を有する複数の位相回転因子からなるので、並列演算制御部は、第1のデータ記憶領域にアクセスして各プロセッサコアに割り当てられた位相回転データブロックを効率良く読み出し転送することができる。これにより、複数個のプロセッサコアは、複数の部分行列積の並列演算を効率良く行うことができる。したがって、マルチコアプロセッサとして特定用途向けプロセッサが使用される場合に、FFTを使用せずにCZTの並列化を効率的に行うことが可能となる。
本発明に係る実施の形態1の信号処理システムのハードウェア構成の一例を概略的に示すブロック図である。 本発明に係る実施の形態1の信号処理システムの概略構成を示す機能ブロック図である。 位相回転行列を示す図である。 離散信号系列を有するデータブロックを概念的に示す図である。 並べ替え前後の離散信号系列を有する行データブロックを概念的に示す図である。 位相回転データブロック群を概念的に示す図である。 列データブロックの構成を概念的に示す図である。 k番目の行データブロックとm番目の列データブロックとの間の積和演算を説明するための図である。 複数の部分行列積の並列演算を説明するための図である。 入力データブロックと位相回転データブロックとの間の部分行列積の一例を説明するための図である。 CZT処理の手順を概略的に示すフローチャートである。 位相回転データ生成処理の手順を概略的に示すフローチャートである。
以下、図面を参照しつつ、本発明に係る実施の形態について詳細に説明する。なお、図面全体において同一符号を付された構成要素は、同一構成及び同一機能を有するものとする。
図1は、本発明に係る実施の形態1の信号処理システム1のハードウェア構成の一例を概略的に示すブロック図である。図1に示される信号処理システム1は、互いに独立した演算処理を実行する親機10及び子機20を有する。親機10及び子機20は、互いに連携動作して分散並列処理を実行するように構成されている。具体的には、親機10及び子機20は、複数の離散信号系列からなる入力行列と位相回転行列との行列積を演算することによりチャープz変換(以下「CZT」という。)を実行する。
親機10は、図1に示されるように、1個のプロセッサコアC0を有するプロセッサ11と、外部デバイス(図示せず)との間でディジタルデータの送受信を行う入出力インタフェース部(入出力I/F部)14と、ディジタルデータを記憶するメモリ12と、子機20との間でデータ伝送路30を介してディジタルデータの送受信を行う通信機能を有する通信インタフェース部(通信I/F部)13とを備えている。
プロセッサ11としては、たとえば、CPUなどの汎用プロセッサが使用されればよい。プロセッサ11のプロセッサコアC0は、汎用処理を実行するように設計されている。なお、本実施の形態のプロセッサ11は1個のプロセッサコアC0を有しているが、これに限定されるものではない。各々が汎用処理を実行する複数個のプロセッサコアを有するようにプロセッサ11の構成が変更されてもよい。
メモリ12は、入出力インタフェース部14により送受信されるディジタルデータを記憶する記憶媒体と、プロセッサ11で使用されるディジタルデータを一時的に記憶する一時記憶媒体と、プロセッサ11で実行されるべき信号処理プログラムのコードを格納する記憶媒体とを備えている。このようなメモリ12は、たとえば、フラッシュメモリ及びSDRAM(Synchronous Dynamic Random Access Memory)などの半導体メモリで構成されていればよい。
通信インタフェース部13は、データ伝送路30を介して子機20との間で高速にデータ通信を行うことができる機能を有する。たとえば、データ伝送路30としては、伝送ケーブルまたはローカルエリアネットワーク(Local Area Network,LAN)が挙げられる。たとえば、通信インタフェース部13は、PCI-Expressなどのシリアル転送方式に準拠した機能を有することができる。
一方、子機20は、並列演算に特化したマルチコアプロセッサ21と、親機10との間でディジタルデータの送受信を行う通信インタフェース部(通信I/F部)23と、ディジタルデータを記憶するメモリ22とを備えている。マルチコアプロセッサ21は、並列演算を実行する複数個のプロセッサコアC1,…,C1からなるマルチコアMC1と、並列演算を実行する複数個のプロセッサコアC2,…,C2からなるマルチコアMC2とを含む。
マルチコアプロセッサ21のプロセッサコアC1,C2は、プロセッサ11のプロセッサコアC0よりも行列積演算に特化するように設計されている。たとえば、マルチコアプロセッサ21として、テンソル演算を高速に行う機能を有するGPUまたはTPU(Tensor Processing Unit)が使用されればよい。このようなGPUまたはTPUでは、個々のプロセッサコアが行列積演算を高速に実行することができるように設計されている。
メモリ22は、マルチコアプロセッサ21で使用されるディジタルデータを一時的に記憶する一時記憶媒体と、マルチコアプロセッサ21で実行されるべき信号処理プログラムのコードを格納する記憶媒体とを備えている。このようなメモリ22は、たとえば、フラッシュメモリ及びSDRAMなどの半導体メモリで構成されていればよい。
図2は、本発明に係る実施の形態1の信号処理システム2の概略構成を示す機能ブロック図である。図2に示される信号処理システム2は、図1に示した信号処理システム1をより機能的に表現したものである。
図2に示される信号処理システム2は、図1の親機10に相当する親機10Fと、図1の子機20に相当する子機20Fとを備える。親機10Fは、並列演算制御部11F、メモリ12、通信インタフェース部(通信I/F部)13及び入出力インタフェース部(入出力I/F部)14を有するように構成されている。並列演算制御部11Fは、位相回転データ生成部41、データ並べ替え部42及びデータ送受部43を有する。並列演算制御部11Fのハードウェア構成は、図1のプロセッサ11により実現される。
一方、子機20Fは、マルチコアプロセッサ21F、メモリ22及び通信インタフェース部(通信I/F部)23を有するように構成されている。マルチコアプロセッサ21Fは、並列演算部51,52及びデータ送受部53を有する。並列演算部51,52の各々は、並列演算を実行する複数個のプロセッサコアを含む。このようなマルチコアプロセッサ21Fのハードウェア構成は、図1のマルチコアプロセッサ21により実現される。
親機10F及び子機20Fは、互いに連携動作して、外部デバイス(図示せず)から親機10Fの入出力インタフェース部14に入力された離散信号系列(複素信号系列)に対してCZTを実行することができる。CZTは、次式(1)で表現される。

Figure 0007058810000001
式(1)において、x(n)は、k番目の離散信号系列におけるn番目の離散信号であり、A,Wは、CZTのパラメータを示す複素数であり、X(m)は、CZTにより得られたm番目の変換信号である。ここで、kは、離散信号系列に割り当てられた番号を示す1以上の整数、nは、0~N-1の範囲内の整数、mは、0~M-1の範囲内の整数である。パラメータA,Wを適当に設定することにより、式(1)を、たとえば、離散フーリエ変換または逆離散フーリエ変換の式に変形することができる。
k番目の離散信号系列xは、次式(2)に示されるように1行N列(N次元)の入力信号ベクトルとして表現することができる。

Figure 0007058810000002
k番目の変換信号系列Xは、次式(3)に示されるように1行M列(M次元)の変換信号ベクトルとして表現することができる。

Figure 0007058810000003
今、次式(4)に示すN行N列の対角行列Pを定義し、次式(5)に示すN行M列の行列Ψを定義する。

Figure 0007058810000004

Figure 0007058810000005
対角行列P及び行列Ψを使用すれば、式(1)は次式(6)に示すように表現される。

Figure 0007058810000006
式(6)において、Gは、対角行列Pと行列Ψとの行列積から得られるN行M列の位相回転行列である。位相回転行列Gは、次式(7)に示すように表現可能である。

Figure 0007058810000007
ここで、gn,mは、位相回転行列Gのn行m列目の行列要素である。
本実施の形態の親機10F及び子機20Fは、分散並列処理により、親機10Fの入出力インタフェース部14に入力されたK個の離散信号系列x,…,xに対して一括してCZTを実行することができる。ここで、Kは、2以上の整数である。K個の離散信号系列x,…,xは、次式(8)に示すようなK行N列の入力行列Qとして表現可能である。

Figure 0007058810000008
ここで、上付き添え字「T」は転置を示す。
また、CZTにより得られたK個の変換信号系列X,…,Xは、次式(9)に示すようなK行M列の変換行列Tとして表現可能である。

Figure 0007058810000009
そして、式(6)を考慮すれば、変換行列Tは、次式(10)に示されるように入力行列Qと位相回転行列Gとの行列積として表現可能である。

Figure 0007058810000010
図3に示されるように位相回転行列Gは、D個の部分行列G,…,GD-1に分解することができる。ここで、Dは、2以上の整数である。式(10)から明らかなように、入力行列Qと位相回転行列Gとの行列積QGは、並列実行可能なD個の部分行列積QG,QG,…,QGD-1に分解することができる。後述するように、マルチコアプロセッサ21Fの複数個のプロセッサコアは、D個の部分行列積QG,QG,…,QGD-1をそれぞれ並列に演算することができる。
以下、信号処理システム2の親機10F及び子機20Fの構成について詳細に説明する。
親機10Fの入出力インタフェース部14は、外部デバイス(図示せず)からK個の離散信号系列x,…,xが入力されると、当該離散信号系列x,…,xをメモリ12のデータバッファ領域(第2のデータ記憶領域)12Aに一時的に格納する。並列演算制御部11Fのデータ並べ替え部42は、データバッファ領域12Aにおける離散信号系列x,…,xの配列を、連続的にアクセス可能な配列に並べ替える。
図4は、並べ替え後の離散信号系列x,x,…,xを有するデータブロック60を概念的に示す図である。図4に示されるようにデータブロック60は、K個の離散信号系列x,x,…,xをそれぞれ有するK個の行データブロックΩ,Ω,…,Ωで構成されている。
図5に示される行データブロックωは、並べ替え前のk番目の離散信号系列xを有する行データブロックである。この行データブロックωでは、離散信号x(n)の実数部Re[x(n)]と虚数部Im[x(n)]とが交互に配列している。このため、仮に、行列積演算のためにメモリ12内の行データブロックωから実数部Re[x(0)],Re[x(1)],…,Re[x(N-1)]を連続的に読み出そうとすれば、効率的なメモリアクセスがなされない。同様に、仮に、行列積演算のためにメモリ12内の行データブロックωから虚数部Im[x(0)],Im[x(1)],…,Im[x(N-1)]を連続的に読み出そうとすれば、効率的なメモリアクセスがなされない。
これに対し、図5に示されるように、並べ替え後の行データブロックΩは、離散信号系列xの実数部Re[x(0)],…,Re[x(N-1)]のみを有する行データブロックΩ (r)と、離散信号系列xの虚数部Im[x(0)],…,Im[x(N-1)]のみを有する行データブロックΩ (i)とで構成されている。この行データブロックΩでは、離散信号系列xの実数部Re[x(0)],…,Re[x(N-1)]が連続的に配列し、かつ離散信号系列xの虚数部Im[x(0)],…,Im[x(N-1)]が連続的に配列している。このため、実数部Re[x(0)],…,Re[x(N-1)]は、連続的にアクセス可能な配列でデータバッファ領域12Aに記憶され、虚数部Im[x(0)],…,Im[x(N-1)]も、連続的にアクセス可能な配列でデータバッファ領域12Aに記憶されている。これにより、行列積演算のために、メモリ12内の行データブロックΩ (r)から実数部Re[x(0)],…,Re[x(N-1)]を効率良く連続的に読み出してマルチコアプロセッサ21Fに転送することができる。同様に、行列積演算のためにメモリ12内の行データブロックΩ (i)から虚数部Im[x(0)],…,Im[x(N-1)]を効率良く連続的に読み出してマルチコアプロセッサ21Fに転送することができる。
次に、並列演算制御部11Fの位相回転データ生成部41は、CZTに使用されるN×M個の位相回転因子gn,m(n=0~N-1,m=0~M-1)を算出し、これら位相回転因子gn,mを連続的にアクセス可能な配列でメモリ12内の位相回転データ記憶領域(第1のデータ記憶領域)12Bに格納する。
図6は、位相回転データ記憶領域12Bにおける2次元配列の位相回転因子gn,mを有する位相回転データブロック群61を概念的に示す図である。図6に示されるように、位相回転データブロック群61は、位相回転行列Gの列要素{gn,0},{gn,1},…,{gn,M-1}(n=0~N-1)をそれぞれ有する列データブロックΓ,Γ,…,ΓM-1で構成されている。また、位相回転データブロック群61は、図3に示したD個の部分行列G,…,GD-1をそれぞれ有する位相回転データブロックB,B,…,BD-1に分割されている。これら位相回転データブロックB,B,…,BD-1は、マルチコアプロセッサ21FのD個のプロセッサコアにそれぞれ割り当てられるべきものである。
図7は、m番目の列データブロックΓの構成を概念的に示す図である。この列データブロックΓでは、位相回転行列Gのm番目の列要素{gn,m}の実数部Re[g0,m],…,Re[gN-1,m]のみを有する列データブロックΓ (r)と、m番目の列要素{gn,m}の虚数部Im[g0,m],…,Im[gN-1,m]のみを有する列データブロックΓ (i)とで構成されている。この列データブロックΓでは、m番目の列要素{gn,m}の実数部Re[g0,m],…,Re[gN-1,m]が連続的に配列し、かつm番目の列要素{gn,m}の虚数部Im[g0,m],…,Im[gN-1,m]が連続的に配列している。このため、実数部Re[g0,m],…,Re[gN-1,m]は、連続的にアクセス可能な配列で位相回転データ記憶領域12Bに記憶され、虚数部Im[g0,m],…,Im[gN-1,m]も、連続的にアクセス可能な配列で位相回転データ記憶領域12Bに記憶されている。これにより、行列積演算のために、メモリ12内の列データブロックΓ (r)から実数部Re[g0,m],…,Re[gN-1,m]を効率良く連続的に読み出してマルチコアプロセッサ21Fに転送することができる。同様に、行列積演算のために、メモリ12内の列データブロックΓ (i)から虚数部Im[g0,m],…,Im[gN-1,m]を効率良く連続的に読み出してマルチコアプロセッサ21Fに転送することができる。
図8は、k番目の行データブロックΩとm番目の列データブロックΓとの間の積和演算を説明するための図である。図8に示されるように、マルチコアプロセッサ21Fの並列演算部51または52(プロセッサコアC1またはC2)は、行データブロックΩ (r)の実数部と列データブロックΓ (r)の実数部との第1の積和演算を実行して演算結果である計算値Xk,m (rr)を算出し、行データブロックΩ (r)の実数部と列データブロックΓ (i)の虚数部との第2の積和演算を実行して演算結果である計算値Xk,m (ri)を算出し、行データブロックΩ (i)の虚数部と列データブロックΓ (r)の実数部との第3の積和演算を実行して演算結果である計算値Xk,m (ir)を算出し、行データブロックΩ (i)の虚数部と列データブロックΓ (i)の虚数部との第4の積和演算を実行して演算結果である計算値Xk,m (ii)を算出する。
次に、並列演算部51または52(プロセッサコアC1またはC2)は、減算器71を用いて、計算値Xk,m (rr)から計算値Xk,m (ii)を減算することにより変換信号X(m)の実数部Re[X(m)]を算出し、加算器72を用いて、計算値Xk,m (ri)と計算値Xk,m (ir)とを加算することにより変換信号X(m)の虚数部Im[X(m)]を算出する。
ここで、並列演算部51または52(プロセッサコアC1またはC2)が変換信号X(m)の実数部Re[X(m)]と虚数部Im[X(m)]を算出する代わりに、親機10Fの並列演算制御部11Fが、計算値Xk,m (rr),Xk,m (ii)から変換信号X(m)の実数部Re[X(m)]を算出し、計算値Xk,m (ri),Xk,m (ir)から変換信号X(m)の虚数部Im[X(m)]を算出してもよい。
図2を参照すると、親機10Fのデータ送受部43は、位相回転データ記憶領域12BからD個の位相回転データブロックB,…,BD-1を読み出して通信インタフェース部13を介して子機20Fの通信インタフェース部23に転送し、データバッファ領域12Aから入力データブロック60(K個の離散信号系列)を読み出して通信インタフェース部13を介して子機20Fの通信インタフェース部23に転送する。
マルチコアプロセッサ21Fのデータ送受部53は、親機10Fから通信インタフェース部23を介して転送された位相回転データブロックB,…,BD-1及び入力データブロック60をメモリ22に一時的に記憶させる。そして、並列演算部51または52のD個のプロセッサコアの各々は、自己に割り当てられた位相回転データブロックBと入力データブロック60とをメモリ22から読み出し、位相回転データブロックBと入力データブロック60と用いて行列積QGの一部をなす部分行列積QGを演算し、その演算結果を示すデータブロックをメモリ22に記憶させる。すなわち、並列演算部51または52のD個のプロセッサコアは、図9に示されるように、位相回転データブロックB,…,BD-1及び入力データブロック60を用いて、部分行列積QG,QG,…,QGD-1を並列に演算し、当該演算結果を示すD個のデータブロックC,C,…,CD-1をメモリ22に記憶させる。
図10は、入力データブロック60と位相回転データブロックBとの間の部分行列積QGの一例を説明するための図である。図10に示されるように、並列演算部51または52のプロセッサコアは、入力データブロック60をJ個の要素データブロックE~Eに分割し、位相回転データブロックBをJ個の要素データブロックF~Fに分割し、個々の要素データブロックE,F間の行列積演算を実行して要素データブロックHを算出する。プロセッサコアは、このようにして算出されたJ個の要素データブロックH~Hを合算することによりデータブロックCを算出することができる。このとき、プロセッサコアは、j番目の要素データブロックHをj-1番目の要素データブロックHj-1に加算する演算を再帰的に実行することによりデータブロックCを算出してもよい。
データ送受部53は、メモリ22から当該演算結果を示すD個のデータブロックC,C,…,CD-1を読み出し、当該D個のデータブロックC,C,…,CD-1を通信インタフェース部23を介して親機10Fの通信インタフェース部13に転送する。並列演算制御部11Fのデータ送受部43は、子機20Fから通信インタフェース部13を介して転送されたD個のデータブロックC,C,…,CD-1に後処理を施して変換信号系列X,X,…,Xを示す変換データを構成し、当該変換データをメモリ12の変換データ記憶領域12Cに記憶させる。入出力インタフェース部14は、変換データ記憶領域12Cから読み出した変換データを外部デバイス(図示せず)に出力する。
次に、図11及び図12を参照しつつ、CZT処理の手順について説明する。図11は、CZT処理の手順の一例を概略的に示すフローチャートであり、図12は、図11の位相回転データ生成処理の手順を概略的に示すフローチャートである。
信号処理システム2の起動後、先ず、親機10Fにおける並列演算制御部11Fの位相回転データ生成部41が位相回転データを生成する(ステップST11)。具体的には、図12を参照すると、位相回転データ生成部41は、CZTに使用される位相回転因子gn,mを算出し(ステップST31)、当該位相回転因子gn,mをメモリ12内の位相回転データ記憶領域(第1のデータ記憶領域)12Bに記憶させる(ステップST32)。次いで、CZTに必要なすべての位相回転因子gn,mが算出されていない場合には(ステップST33のNO)、位相回転データ生成部41は、新たな位相回転因子gn,mを算出し記憶させるためにステップST31,ST32を実行する。CZTに必要なすべての位相回転因子gn,mが算出された場合には(ステップST33のYES)、位相回転データ生成部41は、図11のステップST12に処理を移行させる。
図11を参照すると、ステップST12では、離散信号系列に割り当てられるべき番号kが「1」に初期化される。次に、親機10Fは、離散信号系列が入力されるまで待機する(ステップST13のNO)。離散信号系列xが入力されると(ステップST13のYES)、データ並べ替え部42は、入力された離散信号系列xを、連続的にアクセス可能な配列で並べ替えてメモリ12に記憶させる(ステップST14)。その後、番号kが設定値Kに到達しないときは(ステップST15のNO)、番号kが1だけインクリメントされて(ステップST16)、ステップST13に処理が移行する。
一方、番号kが設定値Kに到達したとき(ステップST15のYES)、親機10Fのデータ送受部43は、位相回転データ記憶領域12BからD個の位相回転データブロックB,…,BD-1を読み出して通信インタフェース部13を介して子機20Fに転送するとともに、データバッファ領域12Aから入力データブロック60(K個の離散信号系列)を読み出して子機20Fに転送する(ステップST17)。
その後、子機20Fの並列演算部51または52のD個のプロセッサコアは、位相回転データブロックB,…,BD-1及び入力データブロック60(K個の離散信号系列)を用いて、部分行列積QG,QG,…,QGD-1を並列に演算する(ステップST18)。
そして、データ送受部53は、メモリ22から当該演算結果を示すD個のデータブロックC,C,…,CD-1を読み出し、当該D個のデータブロックC,C,…,CD-1を通信インタフェース部23を介して親機10Fの並列演算制御部11Fに転送する(ステップST19)。
その後、並列演算制御部11Fのデータ送受部43は、子機20Fから転送されたD個のデータブロックC,C,…,CD-1に後処理を施して変換信号系列X,X,…,Xを示す変換データを構成し、当該変換データをメモリ12の変換データ記憶領域12Cに記憶させる(ステップST20)。入出力インタフェース部14は、変換データ記憶領域12Cから読み出した変換データを外部デバイス(図示せず)に出力する(ステップST21)。
その後、CZT処理が続行される場合には(ステップST22のYES)、ステップST12に処理が移行し、CZT処理が続行されない場合には(ステップST22のNO)、CZT処理が終了する。
以上に説明したように位相回転データ記憶領域12Bに格納された位相回転データブロックは、連続的にアクセス可能な配列を有する複数の位相回転因子からなるので、並列演算制御部11Fは、位相回転データ記憶領域12Bにアクセスしてマルチコアプロセッサ21Fの各プロセッサコアに割り当てられた位相回転データブロックを効率良く読み出し転送することができる。これにより、マルチコアプロセッサ21Fの複数個のプロセッサコアは、部分行列積QG,QG,…,QGD-1の並列演算を効率良く行うことができる。したがって、マルチコアプロセッサ21Fとして特定用途向けプロセッサが使用される場合に、FFTを使用せずにCZTの並列化を効率的に行うことが可能となる。
たとえば、パラメータAを「1」に設定し、パラメータWを次式(12)に示すWに設定すれば、信号処理システム2は、次式(11)に示す離散フーリエ変換を実行することができる。パラメータA,Wを適当に設定することにより、信号処理システム2は、逆離散フーリエ変換を実行することも可能である。

Figure 0007058810000011

Figure 0007058810000012
上記のとおり、クーリー・テューキー型FFTは、DFTを再帰的に分解するアルゴリズムであり、図1のマルチコアプロセッサ21のプロセッサコアC1,C2は、汎用的なプロセッサ11のプロセッサコアC0と比べると単純な演算機能を有するように設計されているので、クーリー・テューキー型FFTの並列化を効率的に行うように設計されていない。従来のCZTに基づくDFTも、2回のFFTと1回のIFFT(逆FFT)とにより畳み込み演算を実行するアルゴリズムであることから、マルチコアプロセッサ21のプロセッサコアC1,C2は、従来のCZTに基づくDFTの並列化を効率的に行うことが難しい。これに対し、本実施の形態は、FFTを使用せずにCZTの並列化を効率的に行うことができる。
以上、図面を参照して本発明に係る実施の形態1について述べたが、実施の形態1は本発明の例示であり、実施の形態1以外の様々な実施の形態がありうる。本発明の範囲内において、上記実施の形態の任意の構成要素の変形、または各実施の形態の任意の構成要素の省略が可能である。
本発明に係る信号処理システムは、並列演算を実行する複数個のプロセッサコアを有する特定用途向けプロセッサにおいてCZTの並列化を効率的に行うことを可能とするので、CZTに基づくアルゴリズム(たとえば、離散フーリエ変換または逆離散フーリエ変換)を特定用途向けプロセッサに実行させる用途に適している。
1,2 信号処理システム、10,10F 親機、11 プロセッサ、11F 並列演算制御部、12 メモリ、12A データバッファ領域、12B 位相回転データ記憶領域、12C 変換データ記憶領域、13,23 通信インタフェース部(通信I/F部)、14 入出力インタフェース部(入出力I/F部)、20,20F 子機、21 マルチコアプロセッサ、22 メモリ、23 通信インタフェース部(通信I/F部)、30 データ伝送路、41 位相回転データ生成部、42 データ並べ替え部、43 データ送受部、51,52 並列演算部、53 データ送受部、71 減算器、72 加算器、C0,C1,C2 プロセッサコア、MC1,MC2 マルチコア。

Claims (9)

  1. 複数の離散信号系列からなる入力行列と位相回転行列との行列積を演算することによりチャープz変換を実行する信号処理システムであって、
    並列演算を実行する複数個のプロセッサコアを含む特定用途向けのマルチコアプロセッサと、
    前記複数個のプロセッサコアにそれぞれ割り当てられた複数の位相回転データブロックを格納している第1のデータ記憶領域と、
    前記複数の離散信号系列を一時的に記憶する第2のデータ記憶領域と、
    前記第1のデータ記憶領域から前記複数の位相回転データブロックを読み出して前記マルチコアプロセッサに転送し、前記第2のデータ記憶領域から前記複数の離散信号系列を読み出して前記マルチコアプロセッサに転送する並列演算制御部と
    を備え、
    前記複数の位相回転データブロックの各位相回転データブロックは、連続的にアクセス可能な配列を有する複数の位相回転因子からなり、
    前記複数個のプロセッサコアの各プロセッサコアは、前記第1のデータ記憶領域から転送された当該複数の位相回転データブロックのうち自己に割り当てられた位相回転データブロックと、前記第2のデータ記憶領域から転送された当該複数の離散信号系列とを用いて前記行列積の一部をなす部分行列積を演算する、
    ことを特徴とする信号処理システム。
  2. 請求項1に記載の信号処理システムであって、
    前記複数の位相回転因子は、前記各位相回転データブロックにおいて、当該位相回転因子の実数部が連続的に配列し、かつ当該位相回転因子の虚数部が連続的に配列するように格納されており、
    前記複数の離散信号系列は、前記第2のデータ記憶領域において、当該離散信号系列の実数部が連続的に配列し、かつ当該離散信号系列の虚数部が連続的に配列するように並べ替えられている、
    ことを特徴とする信号処理システム。
  3. 請求項1または請求項2に記載の信号処理システムであって、前記並列演算制御部は、外部デバイスから入力された当該複数の離散信号系列を並べ替えて前記第2のデータ記憶領域に記憶させるデータ並べ替え部を含むことを特徴とする信号処理システム。
  4. 請求項1から請求項3のうちのいずれか1項に記載の信号処理システムであって、前記並列演算制御部は、前記位相回転データブロックを生成して前記第1のデータ記憶領域に記憶させる位相回転データ生成部を含むことを特徴とする信号処理システム。
  5. 請求項2に記載の信号処理システムであって、
    前記各プロセッサコアは、
    当該離散信号系列の実数部と当該位相回転因子の実数部との第1の積和演算と、
    当該離散信号系列の実数部と当該位相回転因子の虚数部との第2の積和演算と、
    当該離散信号系列の虚数部と当該位相回転因子の実数部との第3の積和演算と、
    当該離散信号系列の虚数部と当該位相回転因子の虚数部との第4の積和演算と、
    前記第1の積和演算により得られた演算結果から前記第4の積和演算により得られた演算結果を減算する演算と、
    前記第2の積和演算により得られた演算結果と前記第3の積和演算により得られた演算結果とを加算する演算と
    を実行することにより前記部分行列積を演算することを特徴とする信号処理システム。
  6. 請求項2に記載の信号処理システムであって、
    前記各プロセッサコアは、
    当該離散信号系列の実数部と当該位相回転因子の実数部との第1の積和演算と、
    当該離散信号系列の実数部と当該位相回転因子の虚数部との第2の積和演算と、
    当該離散信号系列の虚数部と当該位相回転因子の実数部との第3の積和演算と、
    当該離散信号系列の虚数部と当該位相回転因子の虚数部との第4の積和演算と
    を実行し、
    前記並列演算制御部は、
    前記第1の積和演算により得られた演算結果から前記第4の積和演算により得られた演算結果を減算する演算と、
    前記第2の積和演算により得られた演算結果と前記第3の積和演算により得られた演算結果とを加算する演算と
    を実行することを特徴とする信号処理システム。
  7. 請求項1から請求項6のうちのいずれか1項に記載の信号処理システムであって、
    前記並列演算制御部は、少なくとも1個のプロセッサコアを含み、
    前記複数個のプロセッサコアは、前記少なくとも1個のプロセッサコアよりも行列積演算を高速に実行するように設計されている、
    ことを特徴とする信号処理システム。
  8. 請求項1から請求項7のうちのいずれか1項に記載の信号処理システムであって、
    前記並列演算制御部と接続された第1の通信インタフェース部と、
    前記マルチコアプロセッサと接続された第2の通信インタフェース部と、
    前記第1の通信インタフェース部と前記第2の通信インタフェース部との間を接続するデータ伝送路と
    をさらに備えることを特徴とする信号処理システム。
  9. 請求項1から請求項8のうちのいずれか1項に記載の信号処理システムであって、前記チャープz変換は、離散フーリエ変換または逆離散フーリエ変換のいずれか一方として実行されることを特徴とする信号処理システム。
JP2021560838A 2019-12-16 2019-12-16 信号処理システム Active JP7058810B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/049081 WO2021124376A1 (ja) 2019-12-16 2019-12-16 信号処理システム

Publications (2)

Publication Number Publication Date
JPWO2021124376A1 JPWO2021124376A1 (ja) 2021-06-24
JP7058810B2 true JP7058810B2 (ja) 2022-04-22

Family

ID=76476824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021560838A Active JP7058810B2 (ja) 2019-12-16 2019-12-16 信号処理システム

Country Status (2)

Country Link
JP (1) JP7058810B2 (ja)
WO (1) WO2021124376A1 (ja)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
下馬場朋禄ほか,CUDA技術を利用したGPUコンピューティングの実際 後編,Interface,日本,CQ出版株式会社,2008年08月01日,第34巻 第8号,156-166ページ
平澤将一ほか,GPU向けソフトウェアキャッシュ機構の実装と評価,情報処理学会研究報告 平成21年度▲4▼ [CD-ROM] ,日本,社団法人情報処理学会,2009年12月15日,Vol.2009-ARC-186, No.9,1-10ページ

Also Published As

Publication number Publication date
JPWO2021124376A1 (ja) 2021-06-24
WO2021124376A1 (ja) 2021-06-24

Similar Documents

Publication Publication Date Title
CN108170639B (zh) 基于分布式环境的张量cp分解实现方法
WO2021190761A1 (en) Parallel computing scheme generation for neural networks
CN109033030B (zh) 一种基于gpu的张量分解及重构方法
CN107451097B (zh) 国产申威26010众核处理器上多维fft的高性能实现方法
CN110766128A (zh) 卷积计算单元、计算方法及神经网络计算平台
JPH01237765A (ja) ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム
US11657262B2 (en) Processing matrix operations for rate limited systems
US20180373677A1 (en) Apparatus and Methods of Providing Efficient Data Parallelization for Multi-Dimensional FFTs
Niu et al. SPEC2: Spectral sparse CNN accelerator on FPGAs
US20240232281A1 (en) Method, Apparatus, and Device for Performing FFT
JP7058810B2 (ja) 信号処理システム
JP2023070746A (ja) 情報処理プログラム、情報処理装置、及び情報処理方法
JP6810003B2 (ja) 行列単純化装置、プログラム、および行列単純化方法
Polat et al. GPU‐accelerated and mixed norm regularized online extreme learning machine
Mahmud et al. A scalable high-precision and high-throughput architecture for emulation of quantum algorithms
Liu et al. High-performance tensor learning primitives using GPU tensor cores
Hasan et al. GPU accelerated tensor computation of Hadamard product for machine learning applications
Su et al. Co-prime Array Interpolation for DOA Estimation Using Deep Matrix Iterative Network
Wang et al. An efficient architecture for floating-point eigenvalue decomposition
Takahashi et al. Performance of the block Jacobi method for the symmetric eigenvalue problem on a modern massively parallel computer
Wu et al. Accelerating deep convolutional neural network inference based on OpenCL
WO2023053222A1 (ja) データ変換装置、データ変換方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
JP2004348493A (ja) 通信隠蔽型の並列高速フーリエ変換方法
Manning et al. Parallel hierarchical clustering using rank-two nonnegative matrix factorization
Censor et al. Family constraining of iterative algorithms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211013

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220106

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: 20220315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220412

R150 Certificate of patent or registration of utility model

Ref document number: 7058810

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150