JP6304230B2 - 並列処理装置、並列処理方法、および並列処理プログラム記憶媒体 - Google Patents
並列処理装置、並列処理方法、および並列処理プログラム記憶媒体 Download PDFInfo
- Publication number
- JP6304230B2 JP6304230B2 JP2015502758A JP2015502758A JP6304230B2 JP 6304230 B2 JP6304230 B2 JP 6304230B2 JP 2015502758 A JP2015502758 A JP 2015502758A JP 2015502758 A JP2015502758 A JP 2015502758A JP 6304230 B2 JP6304230 B2 JP 6304230B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processor
- unit
- collation
- program
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Description
(発明の目的)
本発明の目的は、複数の単位処理を、複数のプロセッサで、効率よく簡便に並列処理することができる、並列処理装置、並列処理方法、および並列処理プログラム記憶媒体を提供することにある。
(第1の実施形態)
[第1の実施形態の構成]
図1は、本発明の第1の実施形態の照合装置10の、全体構成を示すブロック図である。
[第1の実施形態の動作]
本実施形態の動作を、事前準備と照合処理本体に分けて説明する。
(1)事前準備
照合処理を始める前に設定されるパラメータについて説明する。
1)最大切り出しサイズNch
Nchは、ホストプロセッサ20またはコプロセッサ30で、一度に照合処理されるデータの個数の最大値である。Nchの値が大きいほど、並列処理によるオーバヘッドが小さくなる。逆に、Nchの値が小さいほど、並列処理時の負荷が均衡し、プロセッサ資源の無駄が小さくなる。
2)ホストプロセッサスレッド数Th
Thは、ホスト側単位照合手段22の実行に利用可能なホストプロセッサ20のスレッドの数である。Thの値は、典型的には、ホストプロセッサ20が備えるプロセッサコアの個数に等しい値に設定される。ホストプロセッサ20上で照合装置10以外の機能やアプリケーションが同時に実行される場合は、Thの値が、ホストプロセッサ20が備えるプロセッサコアの個数より小さく設定されることもある。
3)コプロセッサスレッド数Tc
Tcは、コプロセッサ側単位照合手段32の実行に利用可能なコプロセッサ30のスレッドの数である。典型的なTcの値は、上記のホストプロセッサ20のスレッド数Thと同様に設定される。すなわち、Tcの値は、コプロセッサ30が備えるプロセッサコアの個数に等しい値に設定される。コプロセッサ30上で照合装置10以外の機能やアプリケーションが同時に実行される場合は、Tcの値が、コプロセッサ30が備えるプロセッサコアの個数より小さく設定されることもある。
(2)照合処理本体
続いて、本実施形態の照合処理の本体部分の動作を説明する。動作の説明には、各種のデータ構造、すなわち、登録済みデータ集合23、33、進行管理表241、被照合データ保管領域242、切り出し集合Sc(後述)、途中照合結果Ri(後述)、切り出し照合結果Rch(後述)、最終照合結果領域243、が用いられる。本実施形態の理解を助けるため、これらのデータ構造の相関関係を図9に示す。
a)進行制御手段212の動作
進行制御手段212は、与えられた被照合データを照合管理手段内の被照合データ保管領域242にコピーし、進行管理表241の全要素データに「未着手」状態を示す処理状態値を設定する。
b)単位照合制御手段の動作
単位照合制御手段215、315の動作の流れを図5に示す。単位照合制御手段215は、ブロック切り出し手段214と、単位照合手段22または単位照合手段32と、結果登録手段216、を呼び出す一連の処理(ステップS501〜S506)を繰り返す。
1)ステップS501
まず単位照合制御手段215は、ブロック切り出し手段214に対し、次に処理すべきデータブロックを要求する。
1−1)ステップS401
ブロック切り出し手段214は、進行管理表241の各要素を走査し、処置状態値が「未着手状態」である要素データを、最大Nch個見つけ出す。もし「未着手状態」の要素データがNch個未満しか見つからない場合は、ブロック切り出し手段214はそれらすべてを選択する。
1−2)ステップS402
ブロック切り出し手段214は、ステップS401で見つかった最大Nch個の要素データに、「単位照合中」を示す処理状態値を設定する。ステップS401とS402の処理は、複数の単位照合制御手段、すなわち単位照合制御手段22、23から同時に呼ばれた際であっても正しく動作する必要があるため、排他制御下で実行される。ここで用いられる排他制御の機構は、ホストプロセッサ20上で正しく動作するものであればよく、排他制御の機構として、例えばmutex(ミューテックス)を用いることができる。
1−3)ステップS403
次にブロック切り出し手段214は、切り出し集合Scを作成する。切り出し集合とは、登録済みデータ集合23、33の部分集合を表現するデータ構造であり、ここでは先に選択した最大Nch個の要素データを含む集合である。図8は、切り出し集合の要素データの構造を示す図である。切り出し集合は、図8に示すように、インデクシング可能な形で要素データを保持する集合データ構造として実現される。切り出し集合の要素の値は、進行管理表241および登録済みデータ集合23、33のインデクス値である。ブロック切り出し手段214は、ここで作成した切り出し集合Scに、進行管理表241内にある被照合データ保管領域242に格納されているデータDinを添えて、呼出元の単位照合制御手段215または315にその切り出し結果を返す。
2)ステップS502〜S504
単位照合制御手段215、315は、ブロック切り出し手段から次データブロック情報、すなわち被照合データDinと切り出し集合Scを得る。そして、単位照合制御手段215、315は、切り出し集合Sc(その集合に含まれる要素数をNとする)に含まれる各インデクス値iに対し、登録済みデータ集合のi番目要素と被照合データDinとの1対1の照合処理(のべN回の照合処理)を、並列に実行する。
3)ステップS505
ステップS502〜S504の並列照合処理の結果、N個の途中照合結果Ri(i∈Sc)を得ると、単位照合制御手段215、315は、N個の途中照合結果Riに対して再帰的に結果収集手段223、323を呼び出して、N個の照合に対するただ1つの切り出し照合結果Rchを求める。ここで「再帰的な結果収集手段の呼び出し」とは、結果収集手段223、323を呼び出して照合結果を得るという操作を繰り返し、N個の途中照合結果Riから最終的に1つの切り出し照合結果Rchを求める、という手順を意味する。すなわち、単位照合制御手段215、315は、N個の照合結果Riをまず2つずつ組にし、各組に対して結果収集手段223、323を呼び出して(以降、結果収集手段223、323の呼び出し処理を「Fre」と表記する。)、N/2個の照合結果を得る。そして、単位照合制御手段215、315は、次にそれらN/2個の照合結果をさらに2つずつ組にして結果収集手段223、323を呼び出してN/4個の照合結果を得る。
4)ステップS506
最後に単位照合制御手段は、切り出し集合Scと切り出し照合結果Rchを結果登録手段216に通知(後述)した後、進行制御手段212からの次の照合処理始動の指示を待つ「待機状態」に入る。
b)結果登録手段の動作
ステップS506にて通知を受けた結果登録手段216の動作の流れを図7に示す。結果登録手段216は、単位照合制御手段215、315から呼び出されるたびに図7に示す一連の動作(S601〜S605)を行い、次の呼び出しを待つ、という動作を繰り返す。
1)ステップS601
結果登録手段216はまず、通知された切り出し集合Scの要素の値をインデクスとする進行管理表241内の要素データの各々に、「集計中状態」を示す処理状態値を設定する。
2)ステップS602
次に結果登録手段216は、最終照合結果領域243の値Raと単位照合制御手段215、315から通知された切り出し照合結果Rchを使って、結果収集手段223、323を呼び出す(Fre)。そして、結果登録手段216は、結果収集手段223、323が返した値を、改めて最終照合結果Raとして最終照合結果領域243に設定する。
3)ステップS603
続いて結果登録手段は、ステップS601で「集計中状態」とした進行管理表241内の各要素データに、「完了状態」を示す処置状態値を設定する。その結果、もし進行管理表の全要素データが「完了状態」になれば、結果登録手段は進行制御手段212に全照合処理完了を通知する。
(第2の実施形態)
本発明の第2の実施形態は、登録済みデータ集合へのアクセスに先立ってデータプリフェッチを行うものである。
1)ステップS424
図6のS401と同様に、進行管理表241から「未着手状態」である要素データが最大Nch個見つけ出され、その要素集合が切り出し集合Scとなる。
2)ステップS425
ブロック切り出し手段214が単位照合制御手段215、315に、Scの各要素データが参照している登録済みデータの各要素データのインデクス値を通知する。
3)ステップS421
ブロック切り出し手段214は単位照合制御手段215から次の要求が来るまで待機する。
4)ステップS422
ブロック切り出し手段214は、次の要求を受けると、ステップS424で準備済みの切り出し集合Scの各要素に対する進行管理表241の要素データの各々に、「単位照合中」を示す処置状態値を設定する(図6のステップS402に相当)。
5)ステップS423
ブロック切り出し手段214は、切り出し集合Scに、進行管理表241内にある被照合データ保管領域242に格納されているデータDinを添えて、呼出元の単位照合制御手段215に返す(図6のステップS403の後半に相当)。
(第3の実施形態)
本発明の第3の実施形態は、照合の本体処理は1台のコプロセッサでのみ行い、ホストプロセッサは全体制御のみを行うものである。図12は、第3の実施形態の照合装置30の全体構成を示すブロック図である。第3の実施形態の照合装置30は、第1の実施形態の照合装置10と比べ、ホストプロセッサ20側に、単位照合制御手段(図2の単位照合制御手段215)と単位照合手段(図2の単位照合手段22)が存在しない。照合装置30の他の構成は、照合装置10と同様である。
(第4の実施形態)
図13は、本発明の第4の実施形態の照合装置40の全体構成を示すブロック図である。第4の実施形態の照合装置40の特徴は、1つのホストプロセッサと複数のコプロセッサで実現されていることである。照合処理本体は、ホストプロセッサ20上の単位照合手段22に加え、各コプロセッサ30−1〜30−n(nはコプロセッサの個数)上の各単位照合手段32−1〜32−nで並列に実行される。
(第5の実施形態)
具体的な実施例として、本発明を利用して顔照合による会員照合システムを構築する例を説明する。
1)ホストプロセッサ
ホストプロセッサ920として、サーバ用マイクロプロセッサが1組使用される。例えば、一般に市販されているサーバ用プロセッサで、内部に複数コアを備えるものが使用可能である。
2)コプロセッサ
コプロセッサ930として、ホストプロセッサ920に接続可能で、OpenCLでサポートされるコプロセッサが1組使用される。例えば、市販のGPUが使用可能である。
3)NIC(ネットワークインタフェースカード)
照合装置910の外部との通信用にNIC(Network Interface Card。ネットワークインタフェースカード)915が1組使用される。例えば、市販の有線LAN用通信カードが使用可能である。
4)OS(オペレーティングシステム)
OS(Operating System。オペレーティングシステム)925として、ホストプロセッサ920上で動作するOSが使用される。市販のサーバ用プロセッサ上で動作するOSには、各種のものが市販されている。
5)OpenCL処理系
コプロセッサ930の制御機構として、ホストプロセッサ920およびコプロセッサ930上で動作する、OpenCL処理系926が使用される。このような処理系も、各種のものが市販されている。
6)記憶装置および参照データ
事前登録データやプログラムを記憶するハードディスク装置911、およびその中に記録された、登録会員の顔特徴量データ集合914が使される。登録済顔特徴量データ集合914は、会員照合システム起動時にホストプロセッサ920およびコプロセッサ930の主メモリ上に読み込まれ、メモリ上登録済データ集合923、933として参照される。
1)ステップS521
単位照合制御スレッド943は、照合管理ライブラリ942内のブロック切り出し機能952を呼び出して、単位照合制御スレッド943が動作しているホストプロセッサ920で次に処理すべきブロックの集合Scと被照合データDinを得る。S521の処理は、図5のステップS501に相当する処理である。
2)ステップS522
単位照合制御スレッド943は、単位照合制御スレッド943が動作しているホストプロセッサ920上でTh個のスレッドを作業スレッドとして作成する。スレッドは、OSやそのOSに関連する既存のミドルウェアが提供するスレッドライブラリ、例えば、POSIX(Portable Operating System Interface)スレッドやOpenMP(Open Multiprocessing。登録商標)を用いて作成される。Thは、第1の実施形態におけるホスト側単位照合手段22の実行に利用可能なホストプロセッサ20のスレッドの数に相当するもので、本実施形態では単位照合プラグイン922の実行に利用可能なホストプロセッサ920のスレッドの数である。単位照合制御スレッド943は、S522で作成されたTh個のスレッドの各々に、次のステップS523の処理を行わせた後、Th個のスレッド処理の完了を同期させてから、ステップS525の処理へ進む。
3)ステップS523
単位照合制御スレッド943は、部分結果Rjを初期化した後、部分集合Sc[j]の各要素iに対し、次の処理(3−1)、(3−2)を実行する。
(3−1)単位照合制御スレッド943は、iを引数としてデータアクセス関数Fdaを呼び出し、さらに、データアクセス関数Fdaの返値とDinを引数として照合処理関数Fmaを呼び出し、照合処理関数Fmaの返値をRtmpとする。
(3−2)単位照合制御スレッド943は、RjとRtmpを引数として結果収集関数Freを呼び出し、関数Freの返値を再びRjにセットする。
4)ステップS525
単位照合制御スレッド943は、ステップS523で求めた各Rjに対し再帰的に結果収集関数Freを適用し、与えられたScに対する最良の照合結果Rchを求める。
5)ステップS526
単位照合制御スレッド943は、照合管理ライブラリ942内の結果登録機能953を呼び出して、ステップS521で与えられたScに対する最良照合結果を登録する。S526の処理は、図5のステップS505に相当する処理である。
1’)コプロセッサ側ステップS521
単位照合制御スレッド961は、対ホスト通信ライブラリ962を介してホストプロセッサ920側の照合管理ライブラリ942内のブロック切り出し機能952を呼び出す。
5’)コプロセッサ側ステップS526
単位照合制御スレッド961は、対ホスト通信ライブラリ962を介してホストプロセッサ920側の照合管理ライブラリ942内の結果登録機能953を呼び出す。
(第6の実施形態)
第1ないし第5の実施形態における照合処理とは、2つの情報の一致の有無を判定したり、類似度を求めたりする処理である。第1ないし第5の実施形態の説明から明らかなように、本発明において照合処理の具体的内容、例えば一致の有無の判定方法、類似度の定義や計算方法は重要ではない。本発明は、「2つの情報の集合」に対して複数回繰り返される所定の「単位処理」を実行する際に、並列処理が可能となるように情報の集合を分割し、複数回の単位処理を、複数のプロセッサを用いて並列に処理する技術に関するものである。例えば、「2つの情報の集合」、「単位処理」とは、それぞれ、第1の実施形態における、切り出し集合および被照合データ、1対1照合処理である。このように、第1の実施形態における単位処理とは、対象処理の全体をなす照合処理が並列分割され、並列処理される処理である。
(第7の実施形態)
図18は、第7の実施形態の並列処理装置160の構成を示すブロック図である。第7の実施形態の並列処理装置160は、2つのデータ集合の要素データを入力とする単位処理を並列に実行する。
(付記1)
データ集合に含まれるデータを入力として実行される単位処理を規定した第1のプログラムを、入力されたデータに対して実行し、第1の結果を出力する第1のプロセッサと、
前記単位処理を規定した第2のプログラムを、入力された2つのデータに対して実行し、第2の結果を出力する第2のプロセッサと、
前記第1のプロセッサおよび前記第2のプロセッサの性能または機能を示す所定の指標に基づいて、前記データ集合から第1の部分集合および第2の部分集合を選択する選択手段と、
前記第1の部分集合に含まれる第1のデータを前記第1のプロセッサに入力する第1のプロセッサ制御手段と、
前記第2の部分集合に含まれる第2のデータを前記第2のプロセッサに入力する第2のプロセッサ制御手段と、を備え、
前記第1のプロセッサおよび前記第2のプロセッサによって、前記第1のプログラムおよび前記第2のプログラムは並列に実行される
ことを特徴とする並列処理装置。
(付記2)
前記第1のプログラムおよび前記第2のプログラムは、第1の前記データ集合に含まれるデータおよび第2の前記データ集合に含まれるデータを入力として実行される前記単位処理を規定し、
前記選択手段は、前記指標に基づいて、前記第1のデータ集合から前記第1の部分集合および前記第2の部分集合を選択し、前記第2のデータ集合から第3の部分集合および第4の部分集合を選択し、
前記第1のプロセッサ制御手段は、前記第1の部分集合に含まれる前記第1のデータおよび前記第3の部分集合に含まれる第3のデータを前記第1のプロセッサに入力し、
前記第2のプロセッサ制御手段は、前記第2の部分集合に含まれる前記第2のデータおよび前記第4の部分集合に含まれる第4のデータを前記第2のプロセッサに入力する、
ことを特徴とする付記1に記載の並列処理装置。
(付記3)
前記指標は、前記第1のプロセッサおよび前記第2のプロセッサを用いて並列に実行可能な処理の数である
ことを特徴とする付記1または2に記載の並列処理装置。
(付記4)
所定の判断基準に基づいて、前記第1の結果または前記第2の結果を最終結果として出力する出力手段を備える
ことを特徴とする付記1ないし3のいずれか1項に記載の並列処理装置。
(付記5)
前記第1のプログラムおよび第2のプログラムは、第1の前記データ集合に含まれるデータおよび少なくとも2個のデータを含む第2の前記データ集合に含まれるデータを入力として実行される前記単位処理を規定し、
前記選択手段は、前記指標に基づいて、前記第2のデータ集合から第3の部分集合および第4の部分集合を選択し、
前記第1のプロセッサ制御手段は、前記第1のデータ集合に含まれる前記第1のデータおよび前記第3の部分集合に含まれる第3のデータを前記第1のプロセッサに入力し、
前記第2のプロセッサ制御手段は、前記第2のデータ集合に含まれる前記第2のデータおよび前記第4の部分集合に含まれる第4のデータを前記第2のプロセッサに入力し、
前記単位処理は、前記第1のデータ集合に含まれる被照合データである前記第1のデータと予め登録された前記第2のデータ集合に含まれる登録済データである前記第2のデータとの照合、および入力された前記被照合データである前記第3のデータと前記登録済データである前記第4のデータとの照合を行い、前記被照合データと前記登録済データとの一致の度合いを示す照合スコアを算出する照合処理であり、
前記照合スコアが最も高い前記登録済データを前記最終結果として出力する出力手段をさらに備える
ことを特徴とする付記1に記載の並列処理装置。
(付記6)
前記第1のプロセッサは、所定の第3のプログラムを実行することによって、
前記照合処理の進行状況を管理する照合管理手段と、
前記登録済データ集合から、未照合の前記登録済みデータの集合を、ブロックとして選び出すブロック切り出し手段と、
前記出力手段からの前記最終結果を得て、前記進行状況を前記照合管理手段に伝えるとともに、前記登録済データ集合の全体についての前記照合スコアが最高である前記登録済データを求める結果登録手段と、
前記ブロック切り出し手段、前記結果登録手段と、コプロセッサ上の前記結果登録手段との間の通信を行う第1の通信手段と
を実現し、
前記第2のプロセッサは、所定の第4のプログラムを実行することによって、
1組のデータ間の照合処理を行う単位照合手段と、
前記ブロックの各データと前記被照合データとの前記照合処理を実行し、前記ブロック内での最高の前記照合スコアを前記最終結果として求める単位照合制御手段と
を実現し、
前記第1のプロセッサおよび前記第2のプロセッサは、前記ブロック内の前記登録済みデータと前記被照合データとの照合を並列処理する
ことを特徴とする付記5に記載の並列処理装置。
(付記7)
前記第1のプロセッサおよび上で所定の仕様に沿って前記照合処理を行う第1の単位照合手段と、
前記第2のプロセッサ上で前記仕様に沿って前記照合処理を行う第2の単位照合手段と、
前記第1のプロセッサ上にあって前記登録済データ集合の各データと前記被照合データとの照合処理の進行状況を管理する照合管理手段と、を備え、
前記選択手段は、前記第1のプロセッサ上にあって前記登録済データ集合から1つないし複数の未照合のデータの集合をブロックとして選び出すと、
前記第1のプロセッサ制御手段は、前記選び出したブロックの各データと前記被照合データを前記第1のプロセッサに与えて並列に前記照合処理を行わせ、前記ブロック内での最高照合スコアを第1の結果として求め、
前記第2のプロセッサ制御手段は、前記選び出したブロックの各データと前記被照合データを前記第2のプロセッサに与えて並列に前記照合処理を行わせ、前記ブロック内での最高照合スコアを第2の結果として求め、
前記出力手段は、前記第1の結果および第2の結果に基づいて、前記最終結果を求める
ことを特徴とする付記6に記載の並列処理装置。
(付記8)
前記第1のプロセッサ制御手段は、前記第1の部分集合から、前記第1のプロセッサへ入力する前記第2のデータを先読みし、
前記第2のプロセッサ制御手段は、前記第2の全体集合から、前記第2のプロセッサへ入力する前記第2のデータを先読みする
ことを特徴とする、付記1ないし7のいずれか1項に記載の並列処理装置。
(付記9)
前記第1のプログラムは、所定の共通言語を用いて前記データ処理の手順が規定された共通プログラムから、前記第1のプロセッサ用の第1の言語を用いたプログラムに変換されたものであり、
前記第2のプログラムは、前記共通プログラムから前記第2のプロセッサ用の第2の言語を用いたプログラムに変換されたものである
ことを特徴とする付記5ないし8のいずれか1項に記載の並列処理装置。
(付記10)
並列処理装置に備えられた第1のプロセッサおよび第2のプロセッサの性能または機能を示す所定の指標に基づいて、データ集合から第1の部分集合および第2の部分集合を選択し、
前記第1の部分集合に含まれる第1のデータを前記第1のプロセッサに入力し、
前記第2の部分集合に含まれる第2のデータを前記第2のプロセッサに入力し、
前記データ集合に含まれるデータを入力として実行される単位処理を規定した第1のプログラムを、前記第1のプロセッサを用いて、前記第1のデータに対して実行して第1の結果を出力し、
前記単位処理を規定した第2のプログラムを、前記第2のプロセッサを用いて、前記第2のデータに対して前記第1のプログラムと並列に実行して第2の結果を出力する
ことを特徴とする並列処理方法。
(付記11)
データ集合に含まれるデータを入力として実行される単位処理を規定した第1のプログラムを入力されたデータに対して実行し、第1の結果を出力する第1のプロセッサ、および前記単位処理を規定した第2のプログラムを入力されたデータに対して実行し、第2の結果を出力する第2のプロセッサを含む並列処理装置に備えられたプロセッサを、
前記第1のプロセッサおよび前記第2のプロセッサの性能または機能を示す所定の指標に基づいて、前記データ集合から第1の部分集合および第2の部分集合を選択する選択手段、および
前記第1の部分集合に含まれる第1のデータを前記第1のプロセッサに入力する第1のプロセッサ制御手段、または
前記第2の部分集合に含まれる第2のデータを前記第2のプロセッサに入力する第2のプロセッサ制御手段として機能させるための並列処理プログラムであって、
前記第1のプロセッサおよび前記第2のプロセッサによって、前記第1のプログラムおよび前記第2のプログラムは並列に実行される並列処理プログラム
を格納することを特徴とする非一時的な記憶媒体。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2013年2月26日に出願された日本出願特願2013−035789を基礎とする優先権を主張し、その開示の全てをここに取り込む。
122 第2のデータ
123 第3のデータ
124 第4のデータ
131 第1の結果
132 第2の結果
133 最終結果
151 第1の部分集合
152 第2の部分集合
153 第3の部分集合
154 第4の部分集合
Claims (7)
- データ集合に含まれるデータを入力として実行される単位処理を規定した第1のプログラムを、入力されたデータに対して実行し、第1の結果を出力する第1のプロセッサと、
前記単位処理を規定した第2のプログラムを、入力されたデータに対して実行し、第2の結果を出力する第2のプロセッサと、
前記第1のプロセッサおよび前記第2のプロセッサの性能または機能を示す所定の指標に基づいて、複数の前記データ集合のうちの1つである第1のデータ集合から第1の部分集合および第2の部分集合を選択する選択手段と、
前記第1の部分集合に含まれる第1のデータを前記第1のプロセッサに入力する第1のプロセッサ制御手段と、
前記第2の部分集合に含まれる第2のデータを前記第2のプロセッサに入力する第2のプロセッサ制御手段と、を備え、
前記第1のプロセッサおよび前記第2のプロセッサによって、前記第1のプログラムおよび前記第2のプログラムは並列に実行され、
前記第1のプログラムおよび前記第2のプログラムは、前記第1のデータ集合に含まれるデータおよび少なくとも2個のデータを含む、複数の前記データ集合のうちの前記第1のデータ集合とは異なる第2のデータ集合に含まれるデータを入力として実行される前記単位処理を規定し、
前記選択手段は、前記指標に基づいて、前記第2のデータ集合から第3の部分集合および第4の部分集合を選択し、
前記第1のプロセッサ制御手段は、前記第1のデータ集合に含まれる前記第1のデータおよび前記第3の部分集合に含まれる第3のデータを前記第1のプロセッサに入力し、
前記第2のプロセッサ制御手段は、前記第2の部分集合に含まれる前記第2のデータおよび前記第4の部分集合に含まれる第4のデータを前記第2のプロセッサに入力し、
前記単位処理は、前記第1のデータ集合に含まれる被照合データである前記第1のデータと予め登録された前記第2のデータ集合に含まれる登録済データである前記第3のデータとの照合、および入力された前記被照合データである前記第2のデータと前記登録済データである前記第4のデータとの照合を行い、前記被照合データと前記登録済データとの一致の度合いを示す照合スコアを算出する照合処理であり、
前記照合スコアが最も高い前記登録済データを最終結果として出力する出力手段をさらに備える
並列処理装置。 - 前記指標は、前記第1のプロセッサおよび前記第2のプロセッサを用いて並列に実行可能な処理の数である
ことを特徴とする請求項1に記載の並列処理装置。 - 前記第1のプロセッサは、所定の第3のプログラムを実行することによって、
前記照合処理の進行状況を管理する照合管理手段と、
前記第2のデータ集合である登録済データ集合から、未照合の前記登録済みデータの集合を、ブロックとして選び出すブロック切り出し手段と、
前記出力手段からの前記最終結果を得て、前記進行状況を前記照合管理手段に伝えるとともに、前記登録済データ集合の全体についての前記照合スコアが最高である前記登録済データを求める結果登録手段と、
前記ブロック切り出し手段、前記結果登録手段と、コプロセッサ上の前記結果登録手段との間の通信を行う第1の通信手段と
を実現し、
前記第2のプロセッサは、所定の第4のプログラムを実行することによって、
1組のデータ間の照合処理を行う単位照合手段と、
前記ブロックの各データと前記被照合データとの前記照合処理を実行し、前記ブロック内での最高の前記照合スコアを前記最終結果として求める単位照合制御手段と
を実現し、
前記第1のプロセッサおよび前記第2のプロセッサは、前記ブロック内の前記登録済みデータと前記被照合データとの照合を並列処理する
ことを特徴とする請求項1に記載の並列処理装置。 - 前記第1のプロセッサ上で所定の仕様に沿って前記照合処理を行う第1の単位照合手段と、
前記第2のプロセッサ上で前記仕様に沿って前記照合処理を行う第2の単位照合手段と、
前記第1のプロセッサ上にあって前記登録済データ集合の各データと前記被照合データとの照合処理の進行状況を管理する照合管理手段と、を備え、
前記選択手段は、前記第1のプロセッサ上にあって前記登録済データ集合から1つないし複数の未照合のデータの集合をブロックとして選び出すと、
前記第1のプロセッサ制御手段は、前記選び出したブロックの各データと前記被照合データを前記第1のプロセッサに与えて並列に前記照合処理を行わせ、前記ブロック内での最高照合スコアを第1の結果として求め、
前記第2のプロセッサ制御手段は、前記選び出したブロックの各データと前記被照合データを前記第2のプロセッサに与えて並列に前記照合処理を行わせ、前記ブロック内での最高照合スコアを第2の結果として求め、
前記出力手段は、前記第1の結果および第2の結果に基づいて、前記最終結果を求める
ことを特徴とする請求項3に記載の並列処理装置。 - 前記第1のプログラムは、所定の共通言語を用いて前記データ処理の手順が規定された共通プログラムから、前記第1のプロセッサ用の第1の言語を用いたプログラムに変換されたものであり、
前記第2のプログラムは、前記共通プログラムから前記第2のプロセッサ用の第2の言語を用いたプログラムに変換されたものである
ことを特徴とする請求項1ないし4のいずれか1項に記載の並列処理装置。 - 並列処理装置に備えられた第1のプロセッサおよび第2のプロセッサの性能または機能を示す所定の指標に基づいて、複数のデータ集合のうちの1つである第1のデータ集合から第1の部分集合および第2の部分集合を選択し、
前記第1の部分集合に含まれる第1のデータを前記第1のプロセッサに入力し、
前記第2の部分集合に含まれる第2のデータを前記第2のプロセッサに入力し、
前記データ集合に含まれるデータを入力として実行される単位処理を規定した第1のプログラムを、前記第1のプロセッサを用いて、前記第1のデータに対して実行して第1の結果を出力し、
前記単位処理を規定した第2のプログラムを、前記第2のプロセッサを用いて、前記第2のデータに対して前記第1のプログラムと並列に実行して第2の結果を出力し、
前記第1のプログラムおよび前記第2のプログラムは、前記第1のデータ集合に含まれるデータおよび少なくとも2個のデータを含む、複数の前記データ集合のうちの前記第1のデータ集合とは異なる第2のデータ集合に含まれるデータを入力として実行される前記単位処理を規定し、
前記指標に基づいて、前記第2のデータ集合から第3の部分集合および第4の部分集合を選択し、
前記第1のデータ集合に含まれる前記第1のデータおよび前記第3の部分集合に含まれる第3のデータを前記第1のプロセッサに入力し、
前記第2の部分集合に含まれる前記第2のデータおよび前記第4の部分集合に含まれる第4のデータを前記第2のプロセッサに入力し、
前記単位処理は、前記第1のデータ集合に含まれる被照合データである前記第1のデータと予め登録された前記第2のデータ集合に含まれる登録済データである前記第3のデータとの照合、および入力された前記被照合データである前記第2のデータと前記登録済データである前記第4のデータとの照合を行い、前記被照合データと前記登録済データとの一致の度合いを示す照合スコアを算出する照合処理であり、
前記照合スコアが最も高い前記登録済データを最終結果として出力する
並列処理方法。 - データ集合に含まれるデータを入力として実行される単位処理を規定した第1のプログラムを入力されたデータに対して実行し、第1の結果を出力する第1のプロセッサ、および前記単位処理を規定した第2のプログラムを入力されたデータに対して実行し、第2の結果を出力する第2のプロセッサを含む並列処理装置に備えられたプロセッサを、
前記第1のプロセッサおよび前記第2のプロセッサの性能または機能を示す所定の指標に基づいて、複数の前記データ集合のうちの1つである第1のデータ集合から第1の部分集合および第2の部分集合を選択する選択手段、および
前記第1の部分集合に含まれる第1のデータを前記第1のプロセッサに入力する第1のプロセッサ制御手段、または
前記第2の部分集合に含まれる第2のデータを前記第2のプロセッサに入力する第2のプロセッサ制御手段として機能させるための並列処理プログラムであって、
前記第1のプロセッサおよび前記第2のプロセッサによって、前記第1のプログラムおよび前記第2のプログラムは並列に実行され、
前記第1のプログラムおよび前記第2のプログラムが、前記第1のデータ集合に含まれるデータおよび少なくとも2個のデータを含む、複数の前記データ集合のうちの前記第1のデータ集合とは異なる第2のデータ集合に含まれるデータを入力として実行される前記単位処理を規定し、
前記選択手段が、前記指標に基づいて、前記第2のデータ集合から第3の部分集合および第4の部分集合を選択し、
前記第1のプロセッサ制御手段が、前記第1のデータ集合に含まれる前記第1のデータおよび前記第3の部分集合に含まれる第3のデータを前記第1のプロセッサに入力し、
前記第2のプロセッサ制御手段が、前記第2の部分集合に含まれる前記第2のデータおよび前記第4の部分集合に含まれる第4のデータを前記第2のプロセッサに入力するように、それぞれ機能させ、
前記単位処理は、前記第1のデータ集合に含まれる被照合データである前記第1のデータと予め登録された前記第2のデータ集合に含まれる登録済データである前記第3のデータとの照合、および入力された前記被照合データである前記第2のデータと前記登録済データである前記第4のデータとの照合を行い、前記被照合データと前記登録済データとの一致の度合いを示す照合スコアを算出する照合処理であり、
前記照合スコアが最も高い前記登録済データを最終結果として出力する出力手段として機能させるための並列処理プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013035789 | 2013-02-26 | ||
JP2013035789 | 2013-02-26 | ||
PCT/JP2014/000946 WO2014132608A1 (ja) | 2013-02-26 | 2014-02-24 | 並列処理装置、並列処理方法、および並列処理プログラム記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2014132608A1 JPWO2014132608A1 (ja) | 2017-02-02 |
JP6304230B2 true JP6304230B2 (ja) | 2018-04-04 |
Family
ID=51427887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015502758A Active JP6304230B2 (ja) | 2013-02-26 | 2014-02-24 | 並列処理装置、並列処理方法、および並列処理プログラム記憶媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10025603B2 (ja) |
JP (1) | JP6304230B2 (ja) |
WO (1) | WO2014132608A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10878657B2 (en) | 2018-07-25 | 2020-12-29 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
US11521460B2 (en) | 2018-07-25 | 2022-12-06 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
JP7301825B2 (ja) | 2017-11-17 | 2023-07-03 | オムニセル, インコーポレイテッド | 温度制御された分配引き出し |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6453685B2 (ja) * | 2015-03-26 | 2019-01-16 | ルネサスエレクトロニクス株式会社 | 演算制御装置、演算制御方法及び演算制御プログラム |
JP6701650B2 (ja) * | 2015-09-14 | 2020-05-27 | 富士ゼロックス株式会社 | 情報処理装置および画像形成装置 |
TWI760880B (zh) * | 2020-10-07 | 2022-04-11 | 瑞昱半導體股份有限公司 | 與儲存裝置相關的傳輸控制電路、資料傳輸系統及操作資料傳輸系統的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332664A (ja) | 1993-03-23 | 1994-12-02 | Toshiba Corp | 表示制御システム |
JPH0844678A (ja) | 1994-07-29 | 1996-02-16 | Canon Inc | 画像処理装置及びシステム |
JP2001126030A (ja) | 1999-10-26 | 2001-05-11 | Nec Corp | パターン認識方法及びパターン認識装置 |
JP2003243988A (ja) | 2002-02-20 | 2003-08-29 | Tadahiro Omi | データ処理装置 |
JP2005018626A (ja) * | 2003-06-27 | 2005-01-20 | Ip Flex Kk | 並列処理システムの生成方法 |
JP2006262311A (ja) | 2005-03-18 | 2006-09-28 | Toshiba Corp | 情報記録装置及び情報記録方法 |
JP5343523B2 (ja) | 2008-11-17 | 2013-11-13 | 富士通株式会社 | ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム |
JP2010134669A (ja) | 2008-12-04 | 2010-06-17 | Mitsubishi Electric Corp | 3次元物体照合装置及び3次元物体照合方法 |
JP2011197803A (ja) * | 2010-03-17 | 2011-10-06 | Ricoh Co Ltd | プログラム実行制御方法 |
-
2014
- 2014-02-24 JP JP2015502758A patent/JP6304230B2/ja active Active
- 2014-02-24 US US14/767,981 patent/US10025603B2/en active Active
- 2014-02-24 WO PCT/JP2014/000946 patent/WO2014132608A1/ja active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7301825B2 (ja) | 2017-11-17 | 2023-07-03 | オムニセル, インコーポレイテッド | 温度制御された分配引き出し |
JP7301825B6 (ja) | 2017-11-17 | 2023-07-24 | オムニセル, インコーポレイテッド | 温度制御された分配引き出し |
US10878657B2 (en) | 2018-07-25 | 2020-12-29 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
US11455864B2 (en) | 2018-07-25 | 2022-09-27 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
US11521460B2 (en) | 2018-07-25 | 2022-12-06 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
Also Published As
Publication number | Publication date |
---|---|
US10025603B2 (en) | 2018-07-17 |
JPWO2014132608A1 (ja) | 2017-02-02 |
WO2014132608A1 (ja) | 2014-09-04 |
US20160004543A1 (en) | 2016-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11210760B2 (en) | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling | |
US11334796B2 (en) | Optimized compute hardware for machine learning operations | |
JP6304230B2 (ja) | 並列処理装置、並列処理方法、および並列処理プログラム記憶媒体 | |
US11544545B2 (en) | Structured activation based sparsity in an artificial neural network | |
EP3399418B1 (en) | Fine-grain compute communication execution for deep learning frameworks | |
Awan et al. | S-caffe: Co-designing mpi runtimes and caffe for scalable deep learning on modern gpu clusters | |
US11615297B2 (en) | Structured weight based sparsity in an artificial neural network compiler | |
US20180322387A1 (en) | Hardware implemented point to point communication primitives for machine learning | |
US11551028B2 (en) | Structured weight based sparsity in an artificial neural network | |
US20200279133A1 (en) | Structured Sparsity Guided Training In An Artificial Neural Network | |
Ling et al. | Design and implementation of a CUDA-compatible GPU-based core for gapped BLAST algorithm | |
US20230177328A1 (en) | Hardware implemented point to point communication primitives for machine learning | |
CN116806340A (zh) | 确定用于对象分类的一个或更多个神经网络 | |
CN116342372A (zh) | 使用一个或更多个神经网络的图像生成 | |
Huang et al. | Strassen’s algorithm reloaded on GPUs | |
Yang et al. | A performance model for GPU architectures that considers on-chip resources: Application to medical image registration | |
Gajdoš et al. | GPU based parallelism for self-organizing map | |
CN111324439A (zh) | 用于向量单元的密码引擎和调度方法 | |
Zhu et al. | A GPU-based high-throughput image retrieval algorithm | |
Bistaffa et al. | Optimising memory management for belief propagation in junction trees using GPGPUs | |
Gómez-Luna et al. | Load balancing versus occupancy maximization on graphics processing units: The generalized hough transform as a case study | |
Condello et al. | An OpenCL-based feature matcher | |
Wang et al. | Hetrocv: Auto-tuning framework and runtime for image processing and computer vision applications on heterogeneous platform | |
Choi et al. | Overlapped Data Processing Scheme for Accelerating Training and Validation in Machine Learning | |
Alqudami et al. | Adaptive discrete cosine transform-based image compression method on a heterogeneous system platform using Open Computing Language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170620 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170807 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171227 |
|
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: 20180206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6304230 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |