JP2021039658A - Ac並列化回路、ac並列化方法及び並列情報処理装置 - Google Patents

Ac並列化回路、ac並列化方法及び並列情報処理装置 Download PDF

Info

Publication number
JP2021039658A
JP2021039658A JP2019161972A JP2019161972A JP2021039658A JP 2021039658 A JP2021039658 A JP 2021039658A JP 2019161972 A JP2019161972 A JP 2019161972A JP 2019161972 A JP2019161972 A JP 2019161972A JP 2021039658 A JP2021039658 A JP 2021039658A
Authority
JP
Japan
Prior art keywords
circuit
lap
calculation
parallel
node
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.)
Pending
Application number
JP2019161972A
Other languages
English (en)
Inventor
学尚 秋間
Hisanao Akima
学尚 秋間
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019161972A priority Critical patent/JP2021039658A/ja
Priority to US16/997,992 priority patent/US11144317B2/en
Priority to EP20193087.2A priority patent/EP3792762A1/en
Priority to CN202010904474.4A priority patent/CN112445527A/zh
Publication of JP2021039658A publication Critical patent/JP2021039658A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • 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
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • 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
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】現在の周回実行の停止と未確定値の推測を高速に行うこと。【解決手段】AND回路20が、ACイネーブルと比較器19の出力の論理積を計算し、計算結果を停止ビットとしてノード#(m−1)へ出力する。また、推測回路22が、完了シグナル#(m−1)を1に設定し、データ#(m−1)に推測値を設定する。そして、AND回路20の出力に基づいて、マルチプレクサ15が、キャッシュメモリ14の完了シグナル#(m−1)及びデータ#(m−1)、又は、推測回路22が生成した完了シグナル#(m−1)及び推測値#(m−1)を選択してコア16に出力する。【選択図】図2

Description

本発明は、AC並列化回路、AC並列化方法及び並列情報処理装置に関する。
プログラムの並列化を妨げる要因の1つに、ループ繰越依存性(loop-carried dependency)がある。ループ繰越依存性とは、ループ実行において以前の周回(iteration)の結果に依存して新たな周回の計算が行われることである。ループ繰越依存性がある場合、任意の順番で周回実行を行うような並列化は行えない。
ただし、周回内には、ループ繰越依存性があるために逐次実行が必要な部分(シーケンシャルコード:sequential code)だけでなく、ループ繰越依存性がなく並列実行が可能な部分(パラレルコード:parallel code)もある。したがって、シーケンシャルコードの実行順序を守った上でのループ実行の並列化は可能である。
プログラムを、周回毎に例えばスレッドを割り当て、マルチスレッドで並列化する場合、ある周回を実行するスレッドと次の周回を実行するスレッドの間で、ループ繰越依存性のある変数の値を同期する必要がある。同期に要する時間がシーケンシャルコードの実行時間と同程度かそれ以上となる場合や、多数のスレッド間で同期を取る必要がある場合には、同期時間が全体のボトルネックとなる。
このため、同期時間を短縮するための技術として、リングキャッシュ・アーキテクチャがある。リングキャッシュ・アーキテクチャでは、コアがリング上に配置され、現在の周回の実行を担当するコアは、シーケンシャルコードの実行が完了すると、直ちに完了シグナルとデータ(実行結果)を次の周回の実行を担当するコアに送信する。完了シグナルとデータは必要になるまでコアに隣接したメモリにキャッシュされるため、必要になってから完了シグナルの確認とデータの要求を行う場合と比べて、同期時間を短縮することができる。
なお、ループの並列実行に関連する従来技術として、ループの終了条件の判定が処理しているデータに依存していて、どの繰り返しを実行した時に終了条件を満たすかが、あらかじめわからないループを並列に実行できる情報処理装置がある。この情報処理装置は、並列に実行中の命令処理装置で一番若い繰り返しを実行している命令処理装置に優先権を持たせる。そして、この情報処理装置は、メモリへのデータ転送や、ループ終了時に終了条件を検出した命令処理装置以外の命令処理装置での処理の中断を、優先権を持っている命令処理装置に限定する。このようにすることで、この情報処理装置は、どの命令処理装置がループの終了条件を検出しても処理の追い越しが起こらず、逐次的に実行した場合と同じ動作を行なうことを保証して、ループの並列実行を行う。
特開平5−127904号公報
リングキャッシュ・アーキテクチャをさらに高速化するため、現在の周回におけるシーケンシャルコードの実行完了を待たずに次の周回の実行を開始するAC(approximate computing)並列化が考えられる。AC並列化の導入には、シーケンシャルコードの実行時間を短縮する効果と、ループ繰越依存性のある変数の同期を省略する効果がある。
しかしながら、AC並列化の導入には、現在の周回実行の停止と、同期を省略したことで未確定となった変数の値の推測を速やかに行うことが課題となる。停止及び推測を行うか否かの判定や推測値の定義及び保存のためのオーバーヘッドが大きいと、AC並列化の効果を低減させてしまうか、あるいは、AC並列化を適用しない場合よりも遅くなってしまう可能性がある。
本発明は、1つの側面では、現在の周回実行の停止と未確定値の推測を高速に行うことを目的とする。
1つの態様では、AC並列化回路は、ループ繰越依存性のある計算において自装置が担当する周回の1つ前の周回の計算を行う装置に計算の停止を指示する停止信号を送信する送信回路を有する。また、前記AC並列化回路は、前記送信回路が前記停止信号を送信した場合に前記1つ前の周回の計算結果として演算回路に提供される推測値を生成する推測回路を有する。
1つの側面では、本発明は、現在の周回実行の停止と未確定値の推測を高速に行うことができる。
図1は、実施例に係る並列処理システムの構成を示す図である。 図2は、ノードの構成を示す図である。 図3は、並列処理システムの効果を説明するための図である。
以下に、本願の開示するAC並列化回路、AC並列化方法及び並列情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る並列処理システムの構成について説明する。図1は、実施例に係る並列処理システムの構成を示す図である。図1に示すように、実施例に係る並列処理システム1は、ノード#0〜ノード#n(nは正の整数)で表される(n+1)台のノード10と検査装置30とを有する。ノード#0〜ノード#nはリング状に接続される。すなわち、並列処理システム1は、リングキャッシュ・アーキテクチャの並列処理システムである。並列処理システム1では、ループ繰越依存性のあるプログラムの周回毎にスレッドが割り当てられ、プログラムがマルチスレッドで並列実行される。
ノード10は、スレッドを実行する情報処理装置である。例えば、ノード#0は周回が1のスレッド#0を実行し、・・・、ノード#(m−1)は周回がmのスレッド#(m−1)を実行し、ノード#mは周回が(m+1)のスレッド#mを実行する。また、ノード#(m+1)は周回が(m+2)のスレッド#(m+1)を実行し、・・・、ノード#nは周回が(n+1)のスレッド#nを実行する。
各ノード10は、スレッドの処理が完了すると、完了シグナルに1を設定し、データに計算結果を設定して、完了シグナルとデータを次のノード10に送信する。例えば、ノード#(m−1)は、スレッド#(m−1)の処理が完了すると、完了シグナルに1を設定し、データに計算結果を設定して、完了シグナルとデータをノード#mに送信する。ノード#mは、スレッド#mの処理が完了すると、完了シグナルに1を設定し、データに計算結果を設定して、完了シグナルとデータをノード#(m+1)に送信する。ノード#nは、スレッド#nの処理が完了すると、完了シグナルに1を設定し、データに計算結果を設定して、完了シグナルとデータをノード#0に送信する。
また、各ノード10は、2つ前のノード10がスレッドの処理を完了して1つ前のノード10がスレッドの処理を開始すると、クロックのカウントを開始する。そして、カウント数が所定の閾値になると、停止(kill)ビットを1に設定し、1つ前のノード10に停止ビットを送信して、スレッドを停止させる。すなわち、並列処理システム1は、AC並列化を行う。
例えば、ノード#mは、カウント数が所定の閾値になると、停止ビットを1に設定し、ノード#(m−1)に停止ビットを送信する。ノード#(m+1)は、カウント数が所定の閾値になると、停止ビットを1に設定し、ノード#mに停止ビットを送信する。ノード#0は、カウント数が所定の閾値になると、停止ビットを1に設定し、ノード#nに停止ビットを送信する。
このように、ノード10は、2つ前のノード10がスレッドの処理を完了して1つ前のノード10がスレッドの処理を開始すると、クロックのカウントを開始する。そして、ノード10は、カウント数が所定の閾値になると、停止ビットを1に設定し、1つ前のノード10に停止ビットを送信する。
したがって、ノード10は、1ビットの情報を1つ前のノード10に送信するだけで、1つ前のノード10のスレッドの停止を高速に行うことができる。なお、LSI配置配線問題、リソグラフィパターン作成問題、配送計画問題などある程度の誤差が許容される最適化問題では、AC並列化により、処理速度を向上することができる。
検査装置30は、各ノード10と接続され、スレッドの処理を完了したときの待ちカウント数を各ノード10から取得し、待ちカウント数を表示する。ここで、待ちカウント数は、1つ前のノード10がスレッドの処理を開始した時点から自ノード10がスレッドの処理を完了したときまでのクロック数である。
また、検査装置30は、並列処理システム1がAC並列化を行ったときと行わなかったときの待ちカウント数を比較して表示することで、AC並列化の有効性の検証を支援する。
次に、ノード10の構成について説明する。図2は、ノード10の構成を示す図である。なお、図2は、ノード#mの構成を示すが、他のノード10も同様の構成を有する。図2に示すように、ノード10は、Rx11と、マルチプレクサ12と、Tx13と、キャッシュメモリ14と、マルチプレクサ15と、コア16と、待ち数レジスタ17と、待ちカウンタ18と、比較器19と、AND回路20とを有する。また、ノード10は、停止シグナル生成回路21と、推測回路22と、ラッチ23とを有する。
Rx11は、ノード#(m−1)から完了シグナル及びデータを受信し、受信した完了シグナル及びデータをマルチプレクサ12に出力する。Rx11は、完了シグナル#m及びデータ#m以外の完了シグナル及びデータを受信する。ここで、完了シグナル#m及びデータ#mは、ノード#mが生成する完了シグナル及びデータである。
マルチプレクサ12は、パスに基づいて、Rx11からの完了シグナル及びデータ、又は、コア16からの完了シグナル#m及びデータ#mを選択して、Tx13及びキャッシュメモリ14に出力する。ここで、パスは、Rx11からの完了シグナル及びデータ、又は、コア16からの完了シグナル#m及びデータ#mの選択に用いられる制御信号である。パスが1の場合には、Rx11からの完了シグナル及びデータが選択され、パスが0の場合には、コア16からの完了シグナル#m及びデータ#mが選択される。
Tx13は、マルチプレクサ12が出力した完了シグナル及びデータをノード#(m+1)へ送信する。
キャッシュメモリ14は、マルチプレクサ12が出力した完了シグナル及びデータを記憶する。すなわち、キャッシュメモリ14は、完了シグナル#0〜完了シグナル#nと、データ#0〜データ#nを記憶する。
マルチプレクサ15は、AND回路20の出力に基づいて、キャッシュメモリ14が記憶する完了シグナル#(m−1)及びデータ#(m−1)、又は、推測回路22が生成した完了シグナル#(m−1)及び推測値#(m−1)を選択してコア16に出力する。
コア16は、キャッシュメモリ14が記憶する完了シグナル#(m−1)が1であることを検出すると、データ#(m−1)を用いてスレッド#mを実行する。そして、コア16は、スレッド#mの実行を完了すると、完了シグナル#mに1を設定し、データ#mに実行結果を設定して、完了シグナル#m及びデータ#mをマルチプレクサ12へ出力するとともに、完了シグナル#mをラッチ23に出力する。
また、コア16は、AC並列化を行う場合、ACイネーブルを1に設定してAND回路20へ出力する。また、コア16は、待ち数レジスタ17に待ち数を設定する。ここで、待ち数は、AC並列化において、ノード#(m−1)の処理開始からノード#mの処理開始までのクロック数である。また、コア16は、停止シグナル生成回路21が停止シグナルを出力すると、スレッド#mの実行を停止する。
待ち数レジスタ17は、待ち数を記憶する。待ちカウンタ18は、完了シグナル#(m−2)が1に設定されてキャッシュメモリ14に記憶されると、クロックのカウントを開始する。比較器19は、待ちカウンタ18のカウント数と待ち数レジスタ17が記憶する待ち数を比較し、待ちカウンタ18のカウント数が待ち数になるとAND回路20に1を出力する。
AND回路20は、比較器19の出力とACイネーブルの論理積をとり、結果をノード#(m−1)へ停止ビットとして出力するとともに、マルチプレクサ15へ制御入力として出力する。AND回路20の出力が1の場合には、ノード#(m−1)の処理開始から所定の時間が経過し、AC並列化を行う場合であるので、ノード#(m−1)はスレッド#(m−1)を停止し、マルチプレクサ15は推測回路22の出力を選択する。
停止シグナル生成回路21は、ノード#(m+1)から停止ビットを受信し、停止ビットが1であることを検出すると、停止シグナルを生成してコア16に出力する。コア16は、停止シグナルを検出すると、スレッド#mを停止する。
推測回路22は、完了シグナル#(m−1)を1に設定し、データ#(m−1)に推測値を設定する。推測回路22は、推測値として、例えば0や前回の値を用いる。あるいは、推測回路22は、推測値として、過去の値の最大値、最小値、中間値、移動平均値などを用いてもよい。過去の値は、キャッシュメモリ14に記憶される。このように、推測回路22が、データ#(m−1)に推測値を設定するので、並列処理システム1は、データ#(m−1)の推測を高速に行うことができる。
ラッチ23は、完了シグナル#mをイネーブル信号として待ちカウンタ18の値を保持する。ラッチ23に保持された待ちカウント数は、検査装置30により読み出される。
次に、並列処理システム1の効果について説明する。図3は、並列処理システム1の効果を説明するための図である。図3(a)は、従来の実行時間の例を示し、図3(b)は、実施例の実行時間の例を示す。
図3(a)に示すように、従来は、スレッド#0は、パラレルコードとシーケンシャルコードを実行後、完了シグナルとデータをスレッド#1に送信し、パラレルコードを実行して処理を終了する。また、スレッド#1は、パラレルコードを実施後、ストールし、スレッド#0から完了シグナルとデータを受信すると、シーケンシャルコードを実行し、完了シグナルとデータをスレッド#2に送信し、パラレルコードを実行して処理を終了する。また、スレッド#2は、パラレルコードを実施後、ストールし、スレッド#1から完了シグナルとデータを受信すると、シーケンシャルコードを実行し、完了シグナルとデータをスレッド#3に送信し、パラレルコードを実行して処理を終了する。
一方、図3(b)に示すように、実施例では、スレッド#0は、パラレルコードとシーケンシャルコードを実行後、完了シグナルとデータをスレッド#1に送信し、パラレルコードを実行して処理を終了する。また、スレッド#1は、パラレルコードを実施後、ストールし、スレッド#0から完了シグナルとデータを受信すると、シーケンシャルコードを実行する。完了シグナルの受信から所定の時間が経過すると、スレッド#1は、スレッド#2により停止される。また、スレッド#2は、パラレルコードを実施後、ストールし、スレッド#1が完了シグナルを受信して所定の時間が経過すると、スレッド#1に停止信号を送信するとともに、推測値を用いてシーケンシャルコードを実行する。そして、スレッド#2は、完了シグナルとデータをスレッド#3に送信し、パラレルコードを実行して処理を終了する。
図3(a)と比較すると、図3(b)では、スレッド#1のシーケンシャルコード実行時間が短縮され、スレッド#1とスレッド#2の間のデータの同期に必要な完了シグナル及びデータの送信時間と受信時間が省略される。したがって、並列処理システム1は、実行時間を短縮することができる。
上述してきたように、実施例では、ノード#mの待ちカウンタ18が、完了シグナル#(m−2)が1に設定されてキャッシュメモリ14に記憶されると、クロックのカウントを開始する。そして、比較器19が、待ちカウンタ18のカウント数と待ち数レジスタ17が記憶する待ち数を比較し、待ちカウンタ18のカウント数が待ち数になるとAND回路20に1を出力する。AND回路20は、ACイネーブルと比較器19の出力の論理積を計算し、計算結果を停止ビットとしてノード#(m−1)へ出力する。
また、推測回路22が、完了シグナル#(m−1)を1に設定し、データ#(m−1)に推測値を設定する。そして、AND回路20の出力に基づいて、マルチプレクサ15が、キャッシュメモリ14の完了シグナル#(m−1)及びデータ#(m−1)、又は、推測回路22が生成した完了シグナル#(m−1)及び推測値#(m−1)を選択してコア16に出力する。
したがって、ノード#mは、ノード#(m−1)で動作するスレッド#(m−1)を停止するか否かの判定と、停止すると判定した場合の停止指示を高速に行うとともに、ノード#(m−1)の計算結果の推測を高速に行うことができる。
また、実施例では、ノード#mの停止シグナル生成回路21が、ノード#(m+1)から停止ビットを受信し、停止ビットが1の場合に、スレッド#mの停止信号を生成し、コア16に出力する。したがって、ノード#mは、ノード#(m+1)の指示に基づいて、スレッド#mを速やかに停止することができる。
また、実施例では、ノード#mのラッチ23が、完了シグナル#mをイネーブル信号として待ちカウンタ18の値を保持するので、ノード#mは、AC並列化の有効性の検証に有用なデータを提供することができる。
また、実施例では、スレッドを実行する場合について説明したが、ノード10は、他の処理単位を実行してもよい。また、実施例では、コア16がスレッドの処理を実行する場合について説明したが、他の演算装置がスレッドの処理を実行してもよい。
1 並列処理システム
10 ノード
11 Rx
12 マルチプレクサ
13 Tx
14 キャッシュメモリ
15 マルチプレクサ
16 コア
17 待ち数レジスタ
18 待ちカウンタ
19 比較器
20 AND回路
21 停止シグナル生成回路
22 推測回路
23 ラッチ
30 検査装置

Claims (7)

  1. ループ繰越依存性のある計算において自装置が担当する周回の1つ前の周回の計算を行う装置に計算の停止を指示する停止信号を送信する送信回路と、
    前記送信回路が前記停止信号を送信した場合に前記1つ前の周回の計算結果として演算回路に提供される推測値を生成する推測回路と
    を有することを特徴とするAC並列化回路。
  2. 前記送信回路は、
    前記1つ前の周回の計算の開始時にカウントを開始するカウンタ回路と、
    前記カウンタ回路のカウント数と所定の閾値を比較し、該カウント数が該所定の閾値になると前記停止信号を送信する比較回路と
    を有することを特徴とする請求項1に記載のAC並列化回路。
  3. 前記演算回路は、前記比較回路が送信する停止信号に基づいて、前記推測回路が提供する推測値を用いて自装置が担当する周回の計算を行うことを特徴とする請求項2に記載のAC並列化回路。
  4. 自装置が担当する周回の1つ後の周回の計算を行う装置から停止信号を受信すると前記演算回路に計算の停止を指示する指示回路をさらに有することを特徴とする請求項3に記載のAC並列化回路。
  5. 自装置が担当する周回の計算を前記演算回路が完了した時の前記カウント数を記憶する記憶回路をさらに有することを特徴とする請求項3に記載のAC並列化回路。
  6. ループ繰越依存性のある計算において自装置が担当する周回の1つ前の周回の計算を行う装置に計算の停止を指示する停止信号を送信し、
    前記1つ前の周回の計算結果の推測値として生成された推測値を前記停止信号を送信した場合に演算回路に提供する
    ことを特徴とするAC並列化方法。
  7. ループ繰越依存性のある計算において担当する周回の計算を行う演算部と、
    前記計算において前記担当する周回の1つ前の周回の計算を行う装置に計算の停止を指示する停止信号を送信する送信部と、
    前記送信部が前記停止信号を送信した場合に前記1つ前の周回の計算結果として前記演算部に提供される推測値を生成する推測部と
    を有することを特徴とする並列情報処理装置。
JP2019161972A 2019-09-05 2019-09-05 Ac並列化回路、ac並列化方法及び並列情報処理装置 Pending JP2021039658A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019161972A JP2021039658A (ja) 2019-09-05 2019-09-05 Ac並列化回路、ac並列化方法及び並列情報処理装置
US16/997,992 US11144317B2 (en) 2019-09-05 2020-08-20 AC parallelization circuit, AC parallelization method, and parallel information processing device
EP20193087.2A EP3792762A1 (en) 2019-09-05 2020-08-27 Approximate computing parallelization circuit, approximate computing parallelization method, and parallel information processing device
CN202010904474.4A CN112445527A (zh) 2019-09-05 2020-09-01 近似计算并行化电路和方法以及并行信息处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019161972A JP2021039658A (ja) 2019-09-05 2019-09-05 Ac並列化回路、ac並列化方法及び並列情報処理装置

Publications (1)

Publication Number Publication Date
JP2021039658A true JP2021039658A (ja) 2021-03-11

Family

ID=72266212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019161972A Pending JP2021039658A (ja) 2019-09-05 2019-09-05 Ac並列化回路、ac並列化方法及び並列情報処理装置

Country Status (4)

Country Link
US (1) US11144317B2 (ja)
EP (1) EP3792762A1 (ja)
JP (1) JP2021039658A (ja)
CN (1) CN112445527A (ja)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05127904A (ja) 1991-11-05 1993-05-25 Matsushita Electric Ind Co Ltd 情報処理装置及びコード生成装置
US6748518B1 (en) * 2000-06-06 2004-06-08 International Business Machines Corporation Multi-level multiprocessor speculation mechanism
EP1856871A1 (fr) * 2005-03-08 2007-11-21 France Telecom S.A. Procede de reception iteratif d'un signal multiporteuse a annulation d'interference, recepteur et programme d'ordinateur correspondants
WO2007014404A1 (de) * 2005-08-04 2007-02-08 On Demand Microelectronics Ag Digitale rechnereinrichtung mit parallelverarbeitung
US7991981B2 (en) * 2008-02-01 2011-08-02 International Business Machines Corporation Completion of asynchronous memory move in the presence of a barrier operation
US7921278B2 (en) * 2008-03-10 2011-04-05 International Business Machines Corporation Early exit processing of iterative refinement algorithm using register dependency disable
US8176299B2 (en) * 2008-09-24 2012-05-08 Apple Inc. Generating stop indicators based on conditional data dependency in vector processors
WO2010043401A2 (en) * 2008-10-15 2010-04-22 Martin Vorbach Data processing device
WO2012086148A1 (ja) * 2010-12-21 2012-06-28 パナソニック株式会社 コンパイル装置、コンパイルプログラム及びループ並列化方法
US8412888B2 (en) * 2011-01-06 2013-04-02 International Business Machines Corporation Cache-based speculation of stores following synchronizing operations
US9830158B2 (en) * 2011-11-04 2017-11-28 Nvidia Corporation Speculative execution and rollback
CN104115113B (zh) * 2011-12-14 2018-06-05 英特尔公司 用于循环剩余掩码指令的系统、装置和方法
US9038042B2 (en) * 2012-06-29 2015-05-19 Analog Devices, Inc. Staged loop instructions
US9424039B2 (en) * 2014-07-09 2016-08-23 Intel Corporation Instruction for implementing vector loops of iterations having an iteration dependent condition
CN105159654B (zh) * 2015-08-21 2018-06-12 中国人民解放军信息工程大学 基于多线程并行的完整性度量散列算法优化方法
US10394641B2 (en) * 2017-04-10 2019-08-27 Arm Limited Apparatus and method for handling memory access operations
US11023234B2 (en) * 2017-04-12 2021-06-01 Oracle International Corporation Method and system for restructuring of collections for synchronization
GB2569844B (en) * 2017-10-20 2021-01-06 Graphcore Ltd Sending data off-chip

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SIMONE CAMPANONI ET AL: "HELIX-UP: Relaxing program semantics to unleash parallelization", 2015 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), JPN6023024550, 7 February 2015 (2015-02-07), US, pages 235 - 245, XP032741969, ISSN: 0005086459, DOI: 10.1109/CGO.2015.7054203 *
SIMONE CAMPANONI ET AL:: "HELIX-RC: an architecture-compiler co-design for automatic parallelization of irregular programs", ACM SIGARCH COMPUTER ARCHITECTURE NEWS, vol. 42, no. 3, JPN6023024551, 14 June 2014 (2014-06-14), US, pages 217 - 228, XP032619376, ISSN: 0005086458, DOI: 10.1109/ISCA.2014.6853215 *

Also Published As

Publication number Publication date
EP3792762A1 (en) 2021-03-17
US20210072988A1 (en) 2021-03-11
US11144317B2 (en) 2021-10-12
CN112445527A (zh) 2021-03-05

Similar Documents

Publication Publication Date Title
US11023413B2 (en) Synchronization in a multi-tile, multi-chip processing arrangement
US11586483B2 (en) Synchronization amongst processor tiles
US11106510B2 (en) Synchronization with a host processor
US10949266B2 (en) Synchronization and exchange of data between processors
CA3021412C (en) Compiler method
KR102167059B1 (ko) 멀티-타일 프로세싱 어레이의 동기화
CA3021414C (en) Instruction set
US20190354370A1 (en) Combining states of multiple threads in a multi-threaded processor
JP3983447B2 (ja) データ駆動型情報処理装置
KR102228502B1 (ko) 컴퓨터 프로세싱의 타이밍 제어
JP2021039658A (ja) Ac並列化回路、ac並列化方法及び並列情報処理装置
US11176066B2 (en) Scheduling messages
US11599363B2 (en) Communication in a computer having multiple processors
Kakugawa et al. A self-stabilizing token circulation with graceful handover on bidirectional ring networks
JP2015194844A (ja) 情報処理装置及び制御方法
WO2015136686A1 (ja) 情報処理装置及び方法
JPS62237573A (ja) 巡回演算制御機構を有するベクトル処理装置
JP2007048092A (ja) 同期判定装置及び同期判定方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230620

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231219