JP2019079528A - マルチタイル処理配列における同期化 - Google Patents
マルチタイル処理配列における同期化 Download PDFInfo
- Publication number
- JP2019079528A JP2019079528A JP2018197233A JP2018197233A JP2019079528A JP 2019079528 A JP2019079528 A JP 2019079528A JP 2018197233 A JP2018197233 A JP 2018197233A JP 2018197233 A JP2018197233 A JP 2018197233A JP 2019079528 A JP2019079528 A JP 2019079528A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- tile
- tiles
- synchronization
- group
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 68
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000001360 synchronised effect Effects 0.000 claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims description 72
- 238000000034 method Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims description 2
- 239000000725 suspension Substances 0.000 claims 1
- 230000015654 memory Effects 0.000 description 39
- 230000004888 barrier function Effects 0.000 description 35
- 230000002776 aggregation Effects 0.000 description 33
- 238000004220 aggregation Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 23
- 239000010410 layer Substances 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 241001522296 Erithacus rubecula Species 0.000 description 9
- 238000013459 approach Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 241000723353 Chrysanthemum Species 0.000 description 1
- 235000005633 Chrysanthemum balsamita Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
各タイルは、機械コード命令を実行するための実行ユニットを備え、それぞれがプロセッサの命令セットにおける命令タイプの定義済みセットのインスタンスであり、前記命令セット内の各命令タイプは、対応するオペコードと、0個以上のオペランドを取り入れるための0個以上のオペランドフィールドとによって定義され、
前記相互接続は、バルク同期並列方式に従って前記タイルの一部又はすべての群間の通信を行うように動作可能であり、前記群内の各タイルは、オンタイルの計算段階とそれに続くタイル間交換段階を実行するとともに、前記群内のすべてのタイルが計算段階を完了するまで交換段階は制止され、前記群内の各タイルは、計算段階の完了時にローカル終了状態を有しており、
前記命令セットは、その計算段階の完了時に前記群内の各タイルによる実行のための同期命令を含み、前記同期命令の実行は、前記実行ユニットに同期要求を前記相互接続内のハードウェアロジックに送信させ、
前記相互接続内のロジックは、前記ローカル終了状態をグローバル終了状態に集合させるように構成され、前記群内のすべてのタイルからの同期要求を受信することによって示されるように、前記群内のすべてのタイルによる計算段階の完了に応答して、前記群内のタイルの各々上のグローバル終了状態レジスタにグローバル終了状態を記憶し、それにより、前記群内のタイルの各々上で実行されているコードの一部によってグローバル終了状態をアクセス可能にする処理システムが提供される。
各タイルは、機械コード命令を実行するためのそれぞれの実行ユニットを備え、それぞれがプロセッサの命令セットにおける命令タイプの所定のセットのインスタンスであり、命令セット内の各命令タイプは、対応するオペコードと、0個以上のオペランドを受け取るための0個以上のオペランドフィールドとによって定義され、
前記相互接続は、前記タイルの一部又はすべての群間を調整するための専用ハードウェアロジックの形態をした同期ロジックを含み、
前記命令セットは同期命令を含み、各固別なタイル上の固別な実行ユニットは、前記同期命令のインスタンスが個別の実行ユニットを介して実行される場合には、同期命令のオペコードに応答して、個別のタイルから相互接続内の同期ロジックに同期要求のインスタンスを送信させ、前記同期ロジックから受信された同期肯定応答を保留している個別のタイル上の命令発行を一時中断するように構成され、
各タイルは、個別の計算段階の完了時にタイルのローカル終了状態を記憶するためのローカル終了状態レジスタを有し、
同期ロジックは、前記群内のタイルのローカル終了状態をグローバル終了状態に集合するように構成され、
同期論理はさらに、前記群のすべてのタイルから同期要求のインスタンスを受信することに応答して、同期肯定(acknowledgement)応答を群内の各タイルに返送し、それにより、命令発行を再開させることができ、そして、群内の各タイル上でグローバル終了状態レジスタにグローバル終了状態を記憶し、群内の各タイル上で実行されているコードの一部によってグローバル終了状態へアクセス可能にするように構成される。
複数のコンテキストレジスタセットであって、各々が複数のスレッドのうちの個別の1つのプログラム状態を記憶するように配列された各コンテキストレジスタセットと、
インターリーブされたタイムスロットの反復シーケンスにおいて、複数のタイムスロットの各々で複数のワーカースレッドの個別の1つの実行をスケジュールするように配列されたスケジューラであって、前記ワーカースレッドの各々の前記プログラム状態が前記コンテキストレジスタセットの個別の1つに記憶されるスケジューラと、を備え、
前記バルク同期並列スキームに従って、群内のすべてのタイル上で全てのワーカースレッドが計算段階を完了するまで交換段階は制止され、
各タイル上のローカル終了状態は、タイル上のワーカースレッドの各々によって出力された個々の終了状態の集合体であってもよく、そして、
前記コードの一部は、タイル上で複数のスレッドの少なくとも1つを含んでもよい。
スーパーバイザスレッドは、前記タイムスロットの各々において実行することにより開始するように配列してもよく、
命令セットは、放棄命令をさらに含み、実行ユニットは、放棄命令のオペコードに応答して、放棄命令が実行されたタイムスロットを個別のワーカースレッドに放棄するように構成され、そして、
終了命令は、終了命令が実行された個別のタイムスロットをスーパーバイザスレッドに戻して、スーパーバイザスレッドが個別のスロットで実行を再開するようにしてもよい。
バルク同期並列方式に従って、相互接続を介してタイルの一部又はすべての群間で通信を行い、それにより、前記群内でタイルの各々はタイル間演算段階を実行し、前記群内の各タイルは、オンタイル計算段階を実行した後にタイル間交換段階を実行するとともに、前記群内のすべてのタイルが計算段階を完了するまで交換段階は制止され、群内の各タイルは、計算段階の完了時にローカル終了状態を有しており、
命令セットは、その計算段階の完了時に群内の各タイルによる実行のための同期命令を含み、同期命令の実行は、実行ユニットに相互接続内のハードウェアロジックへ同期要求を送信させ、そして、この方法は、
バルク同期並列方式に従って、相互接続を介してタイルの一部又はすべての群間で通信を行い、それにより、前記群内でタイルの各々はタイル間演算段階を実行し、前記群内の各タイルは、オンタイル計算段階を実行した後にタイル間交換段階を実行するとともに、前記群内のすべてのタイルが計算段階を完了するまで交換段階を保持し続け、群内の各タイルは、計算段階の完了時にローカル終了状態を有しており、
命令セットは、その計算段階の完了時に群内の各タイルによる実行のための同期命令を含み、同期命令の実行は、実行ユニットに相互接続内のハードウェアロジックへ同期要求を送信させ、そして、
この方法は、群内のすべてのタイルからの同期要求を受信することによって示されるように、群内のすべてのタイルによる計算段階の完了に応答して、ローカル終了状態をグローバル終了状態に集合させ、群内の各タイル上のグローバル終了状態レジスタにグローバル終了状態を記憶するために相互接続内のロジックをトリガし、それにより、群内の各タイル上で実行されているコードの一部によってグローバル終了状態をアクセス可能にすることを含む。
SYNCモード//モード∈{tile、chip、zone_1、zone_2}
・スーパーバイザランモードは、実行中からワーカーの終了を待機中に移行する。
・全てのワーカースレッドが非アクティブになるまで、スーパーバイザスレッドに対して命令発行を中断する。
・全てのワーカースレッドが非アクティブである場合、集合されたワーカーの終了状態は、ローカルコンセンサスレジスタ($LC)38を介して利用可能となる。
・スーパーバイザランモードは、実行中からワーカーの終了を待機中に移行する。
・全てのワーカースレッドが非アクティブになるまで、スーパーバイザスレッドに対して命令発行を中断する。
・全てのワーカースレッドが非アクティブの場合:
− 集合されたローカルワーカーの終了状態は、ローカルコンセンサスレジスタ($LC)38を介して利用可能となる。
− 内部同期参加が交換ファブリック34に通知される
− スーパーバイザは、タイル4が交換ファブリック34からの内部同期肯定応答を受信するまで、非アクティブのままである。
− システム全体の終了ステータスは、グローバルコンセンサスレジスタ($GC)42で更新される。
・スーパーバイザ実行モードは、実行中からワーカーの終了を待機中に移行する。
・全てのワーカースレッドが非アクティブになるまで、スーパーバイザスレッドに対する命令発行を中断する。
・全てのワーカースレッドが非アクティブの場合:
− 集合されたローカルワーカーの終了状態は、ローカルコンセンサスレジスタ($LC)38を介して利用可能となる。
− 外部同期参加は外部システム、例えば、上述の外部相互接続72における同期ロジックに通知される。
− スーパーバイザは、タイル4が外部システム72からの外部同期肯定応答を受信するまで、中断されたままである
システム全体の終了ステータスは、グローバルコンセンサスレジスタ($GC)42で更新される。
・1つのワーカースレッドレジスタコンテキストで起動され、「実行(run)」命令を遂行するスーパーバイザスレッドによって1つのバレルスロットで実行され、
・他のコードレット又はスーパーバイザとの通信なしで完了し(コードレットが終了したときのスーパーバイザへの返信を除く)、
・「実行」命令によって提供されるメモリポインタを介して、頂点の持続状態と、そのバレルスロットに固有なメモリ内の非持続的な作業領域とにアクセスし、そして、
・その最後の命令として「EXIT」を実行すると、使用していたバレルスロットがスーパーバイザに返され、終了命令で指定された終了状態がスーパーバイザで可視なタイルのローカル終了状態に集合される。
Claims (23)
- タイルの配列及び前記タイル間の通信のための相互接続を備える処理システムであって、
各タイルは、機械コード命令を実行するための実行ユニットを備え、それぞれが前記プロセッサの命令セットにおける命令タイプの定義済みセットのインスタンスであり、前記命令セット内の各命令タイプは、対応するオペコードと、0個以上のオペランドを取り込むための0個以上のオペランドフィールドとによって定義され、
前記相互接続は、バルク同期並列方式に従って前記タイルの一部又はすべての群間の通信を行うように動作可能であり、
前記群内の前記タイルそれぞれは、オンタイルの計算段階とそれに続くタイル間交換段階を実行するとともに、前記群内のすべての前記タイルが前記計算段階を完了するまで前記交換段階が制止され、前記群内の各タイルは、前記計算段階の完了時にローカル終了状態を有しており、
前記命令セットは、その計算段階の完了時に前記群内の各タイルによる実行のための同期命令を含み、前記同期命令の実行は、前記実行ユニットに同期要求を前記相互接続内のハードウェアロジックに送信させ、
前記相互接続内の前記ロジックは、前記ローカル終了状態をグローバル終了状態に集合させるように構成され、前記群内のすべての前記タイルからの前記同期要求を受信することによって示されるように、前記群内のすべての前記タイルによる前記計算段階の完了に応答して、前記群内の前記タイルの各々上のグローバル終了状態レジスタに前記グローバル終了状態を記憶し、それにより、前記群内の前記タイルの各々上で実行されているコードの一部によって前記グローバル終了状態をアクセス可能にする処理システム。 - 各タイル上の前記実行ユニットは、前記同期命令の実行に応答して命令発行を一時停止するように構成され、前記相互接続グループ内の前記ロジックは、前記群内のすべての前記タイルから前記同期要求を受信することに応答して、前記命令発行を再開するために前記群内の前記タイルの各々に同期肯定応答信号を返送するように構成されている、請求項1に記載の処理システム。
- 前記ローカル終了状態及び前記グローバル終了状態の各々は、単一ビットである、請求項1又は2に記載の処理システム。
- 前記集合体は、前記ローカル終了状態のブールAND、又は前記ローカル終了状態のブールORからなる、請求項3に記載の処理システム。
- 前記集合された終了状態は、前記ローカル終了状態がすべて真であるか、すべて偽であるか、又は混合されているかを示す、3値を表す少なくとも2ビットからなる、請求項1又は2に記載の処理システム。
- 前記タイル群の各々は、前記タイルの前記ローカル終了状態を表すように配列されたローカル終了状態レジスタを備える、請求項1〜5のいずれか1項に記載の処理システム。
- 前記群内の各タイルは、
複数のコンテキストレジスタセットであって、各々が複数のスレッドのうちの個別の1つのプログラム状態を記憶するように配列された各コンテキストレジスタセットと、
インターリーブされたタイムスロットの反復シーケンスにおいて、複数のタイムスロットの各々で複数のワーカースレッドの個別の1つの実行をスケジュールするように配列されたスケジューラであって、前記ワーカースレッドの各々の前記プログラム状態が前記コンテキストレジスタセットの個別の1つに記憶されるスケジューラと、を備え、
前記バルク同期並列方式に従って、前記群内のすべての前記タイル上で全ての前記ワーカースレッドが前記計算段階を完了するまで前記交換段階は制止され、
各タイル上の前記ローカル終了状態は、前記タイル上の前記ワーカースレッドの各々によって出力された個々の終了状態の集合体であり、
前記コードの一部は、前記タイル上の複数のスレッドの少なくとも1つを含む、請求項1〜6のいずれか1項に記載の処理システム。 - 前記群内の各タイルは、前記ローカル終了状態への前記個々の終了状態の前記集合体を実行するように構成されたハードウェアロジックを含む、請求項7に記載の処理システム。
- 前記命令セットは、前記ワーカースレッドの各々に含めるための終了命令を含み、前記実行ユニットは、個別の前記ワーカースレッドの個々の前記終了状態を出力し、前記終了命令の前記オペコードに応答して個別の前記ワーカースレッドを終了させるように構成されている、請求項8に記載の処理システム。
- 個々の前記終了状態及び前記ローカル終了状態の各々は単一ビットであり、個々の前記終了状態の前記集合体は、個々の前記終了状態のブールAND又は個々の前記終了状態のブールORである、請求項7〜9のいずれか1項に記載の処理システム。
- 前記ローカル終了状態は、個々の前記終了状態がすべて真であるか、すべて偽であるか、又は混合されているかを示す3値を表す少なくとも2ビットを含む、請求項7〜9のいずれか1項に記載の処理システム。
- 前記交換段階は、前記ワーカースレッドとは別個のスーパーバイザスレッドによって実行されるように配列され、前記少なくとも1つのスレッドは、前記スーパーバイザスレッドを含む、請求項7〜11のいずれか1項に記載の処理システム。
- 前記命令発行の前記一時停止は、前記同期肯定応答を保留している前記スーパーバイザスレッドからの命令の発行を少なくとも一時停止することを含む、請求項2に従属するときの請求項12に記載の処理システム。
- 各タイル上の前記コンテキストレジスタセットは、前記複数のワーカースレッドの個別の1つの前記プログラム状態を表すように配列された複数のワーカーコンテキストレジスタセットと、前記スーパーバイザスレッドのプログラム状態を表すように配列されたレジスタの追加セットからなる追加スーパーバイザコンテキストレジスタセットとを備える、請求項12又は13に記載の処理システム。
- 前記スーパーバイザスレッドは、前記タイムスロットの各々において実行することによって開始するように配置され、
前記命令セットは、放棄命令をさらに含み、前記実行ユニットは、前記放棄命令の前記オペコードに応答して、前記放棄命令が実行された前記タイムスロットを個別の前記ワーカースレッドに放棄するように構成され、そして、
前記終了命令は、前記終了命令が実行された個別の前記タイムスロットを前記スーパーバイザスレッドに戻して、前記スーパーバイザスレッドが個別の前記スロットで実行を再開する、請求項14に記載の処理システム。 - 前記コードでプログラムされたシステムであり、前記コードの一部は、有効となった前記グローバル終了状態を使用して、前記グローバル終了状態に依存する分岐判定を実行するように構成され、請求項1〜15のいずれか1項に記載の処理システム。
- グラフの各ノードが1つ以上の個別の入力エッジと1つ以上の個別の出力エッジとを有するとともに、前記ノードのうちの少なくともいくつかの前記入力エッジは、前記ノードのうちの少なくともいくつかの前記出力エッジである機械知能アルゴリズムを実行するようにプログラムされており、各ノードは、その出力エッジをその入力エッジに関連付ける個別の関数からなるとともに、各個別の関数は1つ以上の個別のパラメータによってパラメータ化され、個別の前記パラメータの各々は関連付けられたエラーを有していて、前記グラフの一部又はすべてのエラーが小さくなるにつれて前記グラフは解に向かって収束するようになっており、
前記タイルの各々は、前記グラフ内の前記ノードのサブセットを含む個別のサブグラフをモデル化し、前記ローカル終了状態の各々は、個別の前記サブグラフ内の前記ノードの1つ以上の前記パラメータにおける前記エラーが所定状態を満たすかどうかを示すために使用される、請求項1〜16のいずれか1項に記載の処理システム。 - 前記群は、前記同期命令のオペランドによって少なくとも部分的に選択される、請求項1〜17のいずれか1項に記載の処理システム。
- 前記同期命令の前記オペランドは、同じ前記チップ上のタイルのみを含むか、又は前記群内の異なるチップ上のタイルを含むかを選択する、請求項18に記載の処理システム。
- 前記同期命令の前記オペランドは、グルーピングの異なる階層レベルの中から前記群を選択する、請求項18又は19に記載の処理システム。
- 前記命令セットは不参加命令をさらに含み、前記不参加命令が実行されたタイルを前記群から脱退させる、請求項1〜20のいずれか1項に記載の処理システム。
- タイルの配列と前記タイル間の通信のための相互接続とを含む処理システムを動作させる方法であって、各タイルは、機械コード命令を実行するための実行ユニットを含み、それぞれの命令が前記プロセッサの命令セットにおける命令タイプの所定セットのインスタンスであり、前記命令セット内の各命令タイプは、対応するオペコードと、0個以上のオペランドを取り込むための0個以上のオペランドフィールドとによって定義され、前記方法は、
バルク同期並列方式に従って、前記相互接続を介して前記タイルの一部又はすべての群間で通信を行うことを含み、
前記群内で前記タイルの各々は、オンタイル計算段階を実行した後にタイル間交換段階を実行するとともに、前記群内のすべての前記タイルが前記計算段階を完了するまで前記交換段階は制止され、前記群内の各タイルは、前記計算段階の完了時にローカル終了状態を有しており、
前記命令セットは、その計算段階の完了時に前記群内の各タイルによる実行のための同期命令を含み、前記同期命令の実行は、前記実行ユニットに前記相互接続内のハードウェアロジックへ同期要求を送信させ、
前記方法はさらに、前記群内のすべての前記タイルからの前記同期要求を受信することによって示されるように、前記群内のすべての前記タイルによる前記計算段階の完了に応答して、前記ローカル終了状態をグローバル終了状態に集合させ、前記群内の前記タイルの各々のグローバル終了状態レジスタに前記グローバル終了状態を記憶させるために前記相互接続内の前記ロジックをトリガし、前記群内の前記タイルの各々上で実行されているコードの一部によって前記グローバル終了状態をアクセス可能にすることを含む方法。 - コンピュータ可読媒体上に具現化され、且つ請求項1〜21のいずれか1項に記載の前記処理システム上で実行されるように構成されたコードを含むコンピュータプログラムであって、前記コードが、各部分に前記同期命令のインスタンスを含む前記群内の前記タイルの各々上で実行するための部分を含む、コンピュータプログラム製品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1717291.7A GB2569269B (en) | 2017-10-20 | 2017-10-20 | Synchronization in a multi-tile processing arrangement |
GB1717291.7 | 2017-10-20 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019079528A true JP2019079528A (ja) | 2019-05-23 |
JP2019079528A5 JP2019079528A5 (ja) | 2019-09-05 |
JP6797881B2 JP6797881B2 (ja) | 2020-12-09 |
Family
ID=60481655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018197233A Active JP6797881B2 (ja) | 2017-10-20 | 2018-10-19 | マルチタイル処理配列における同期化 |
Country Status (10)
Country | Link |
---|---|
US (2) | US10564970B2 (ja) |
JP (1) | JP6797881B2 (ja) |
KR (1) | KR102262483B1 (ja) |
CN (1) | CN110214317B (ja) |
CA (1) | CA3021416C (ja) |
DE (1) | DE102018126004A1 (ja) |
FR (1) | FR3072800B1 (ja) |
GB (1) | GB2569269B (ja) |
TW (1) | TWI700634B (ja) |
WO (1) | WO2019076714A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020102185A (ja) * | 2018-12-21 | 2020-07-02 | グラフコアー リミテッドGraphcore Limited | コンピュータのデータ交換 |
JP2022545222A (ja) * | 2019-12-23 | 2022-10-26 | グラフコアー リミテッド | 複数のプロセッサを有するコンピュータにおける通信 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2569098B (en) * | 2017-10-20 | 2020-01-08 | Graphcore Ltd | Combining states of multiple threads in a multi-threaded processor |
US11995448B1 (en) | 2018-02-08 | 2024-05-28 | Marvell Asia Pte Ltd | Method and apparatus for performing machine learning operations in parallel on machine learning hardware |
DE102018205390A1 (de) * | 2018-04-10 | 2019-10-10 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten |
DE102018205392A1 (de) * | 2018-04-10 | 2019-10-10 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten |
US10929779B1 (en) * | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Architecture to support synchronization between core and inference engine for machine learning |
US10929778B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Address interleaving for machine learning |
US11016801B1 (en) | 2018-05-22 | 2021-05-25 | Marvell Asia Pte, Ltd. | Architecture to support color scheme-based synchronization for machine learning |
US10997510B1 (en) | 2018-05-22 | 2021-05-04 | Marvell Asia Pte, Ltd. | Architecture to support tanh and sigmoid operations for inference acceleration in machine learning |
GB2575294B8 (en) * | 2018-07-04 | 2022-07-20 | Graphcore Ltd | Host Proxy On Gateway |
CN112416053B (zh) * | 2019-08-23 | 2023-11-17 | 北京希姆计算科技有限公司 | 多核架构的同步信号产生电路、芯片和同步方法及装置 |
GB2591106B (en) | 2020-01-15 | 2022-02-23 | Graphcore Ltd | Control of data transfer between processors |
GB2596872B (en) * | 2020-07-10 | 2022-12-14 | Graphcore Ltd | Handling injected instructions in a processor |
GB2597078B (en) | 2020-07-14 | 2022-07-13 | Graphcore Ltd | Communication between host and accelerator over network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02114362A (ja) * | 1988-10-24 | 1990-04-26 | Nec Corp | 並列演算装置 |
JP2001175618A (ja) * | 1999-12-17 | 2001-06-29 | Nec Eng Ltd | 並列計算機システム |
US20110078417A1 (en) * | 2009-09-25 | 2011-03-31 | Brian Fahs | Cooperative thread array reduction and scan operations |
JP2012064215A (ja) * | 2010-09-20 | 2012-03-29 | Internatl Business Mach Corp <Ibm> | アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ |
US20160179162A1 (en) * | 2014-12-22 | 2016-06-23 | Intel Corporation | Holistic global performance and power management |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8035650B2 (en) * | 2006-07-25 | 2011-10-11 | Qualcomm Incorporated | Tiled cache for multiple software programs |
US8046727B2 (en) * | 2007-09-12 | 2011-10-25 | Neal Solomon | IP cores in reconfigurable three dimensional integrated circuits |
US8866827B2 (en) | 2008-06-26 | 2014-10-21 | Microsoft Corporation | Bulk-synchronous graphics processing unit programming |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
GB201001621D0 (en) * | 2010-02-01 | 2010-03-17 | Univ Catholique Louvain | A tile-based processor architecture model for high efficiency embedded homogenous multicore platforms |
US20120179896A1 (en) * | 2011-01-10 | 2012-07-12 | International Business Machines Corporation | Method and apparatus for a hierarchical synchronization barrier in a multi-node system |
KR101863177B1 (ko) | 2012-01-20 | 2018-05-31 | 지이 비디오 컴프레션, 엘엘씨 | 병렬 처리, 전송 디멀티플렉서 및 비디오 비트스트림을 허용하는 코딩 개념 |
US10067768B2 (en) | 2014-07-18 | 2018-09-04 | Nvidia Corporation | Execution of divergent threads using a convergence barrier |
US9348658B1 (en) * | 2014-12-12 | 2016-05-24 | Intel Corporation | Technologies for efficient synchronization barriers with work stealing support |
US9747108B2 (en) | 2015-03-27 | 2017-08-29 | Intel Corporation | User-level fork and join processors, methods, systems, and instructions |
US10310861B2 (en) * | 2017-04-01 | 2019-06-04 | Intel Corporation | Mechanism for scheduling threads on a multiprocessor |
US10672175B2 (en) * | 2017-04-17 | 2020-06-02 | Intel Corporation | Order independent asynchronous compute and streaming for graphics |
-
2017
- 2017-10-20 GB GB1717291.7A patent/GB2569269B/en active Active
-
2018
- 2018-02-01 US US15/886,099 patent/US10564970B2/en active Active
- 2018-10-11 CN CN201880004197.2A patent/CN110214317B/zh active Active
- 2018-10-11 WO PCT/EP2018/077674 patent/WO2019076714A1/en active Application Filing
- 2018-10-17 TW TW107136463A patent/TWI700634B/zh active
- 2018-10-18 FR FR1859637A patent/FR3072800B1/fr active Active
- 2018-10-19 JP JP2018197233A patent/JP6797881B2/ja active Active
- 2018-10-19 DE DE102018126004.0A patent/DE102018126004A1/de active Pending
- 2018-10-19 CA CA3021416A patent/CA3021416C/en active Active
- 2018-10-22 KR KR1020180126035A patent/KR102262483B1/ko active IP Right Grant
-
2019
- 2019-11-19 US US16/688,305 patent/US11593185B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02114362A (ja) * | 1988-10-24 | 1990-04-26 | Nec Corp | 並列演算装置 |
JP2001175618A (ja) * | 1999-12-17 | 2001-06-29 | Nec Eng Ltd | 並列計算機システム |
US20110078417A1 (en) * | 2009-09-25 | 2011-03-31 | Brian Fahs | Cooperative thread array reduction and scan operations |
JP2012064215A (ja) * | 2010-09-20 | 2012-03-29 | Internatl Business Mach Corp <Ibm> | アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ |
US20160179162A1 (en) * | 2014-12-22 | 2016-06-23 | Intel Corporation | Holistic global performance and power management |
JP2018500673A (ja) * | 2014-12-22 | 2018-01-11 | インテル コーポレイション | ホリスティックグローバルなパフォーマンス及び電力管理 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020102185A (ja) * | 2018-12-21 | 2020-07-02 | グラフコアー リミテッドGraphcore Limited | コンピュータのデータ交換 |
US11269806B2 (en) | 2018-12-21 | 2022-03-08 | Graphcore Limited | Data exchange pathways between pairs of processing units in columns in a computer |
US11561926B2 (en) | 2018-12-21 | 2023-01-24 | Graphcore Limited | Data exchange pathways between pairs of processing units in columns in a computer |
JP2022545222A (ja) * | 2019-12-23 | 2022-10-26 | グラフコアー リミテッド | 複数のプロセッサを有するコンピュータにおける通信 |
JP7357767B2 (ja) | 2019-12-23 | 2023-10-06 | グラフコアー リミテッド | 複数のプロセッサを有するコンピュータにおける通信 |
US11907725B2 (en) | 2019-12-23 | 2024-02-20 | Graphcore Limited | Communication in a computer having multiple processors |
Also Published As
Publication number | Publication date |
---|---|
KR102262483B1 (ko) | 2021-06-08 |
GB2569269A (en) | 2019-06-19 |
TWI700634B (zh) | 2020-08-01 |
KR20190044570A (ko) | 2019-04-30 |
JP6797881B2 (ja) | 2020-12-09 |
US11593185B2 (en) | 2023-02-28 |
US10564970B2 (en) | 2020-02-18 |
CN110214317A (zh) | 2019-09-06 |
WO2019076714A1 (en) | 2019-04-25 |
GB2569269B (en) | 2020-07-15 |
CA3021416C (en) | 2021-03-30 |
CA3021416A1 (en) | 2019-04-20 |
CN110214317B (zh) | 2023-05-02 |
TW201923556A (zh) | 2019-06-16 |
GB201717291D0 (en) | 2017-12-06 |
US20200089499A1 (en) | 2020-03-19 |
US20190121641A1 (en) | 2019-04-25 |
DE102018126004A1 (de) | 2019-04-25 |
FR3072800A1 (fr) | 2019-04-26 |
FR3072800B1 (fr) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6797881B2 (ja) | マルチタイル処理配列における同期化 | |
JP6698784B2 (ja) | マルチスレッドプロセッサにおけるマルチスレッドの結合状態 | |
JP6797880B2 (ja) | マルチタイル、マルチチップ処理構成における同期 | |
KR102190879B1 (ko) | 프로세서 타일들 간의 동기화 | |
KR102183118B1 (ko) | 복수-타일 프로세싱 구성에서의 동기화 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190724 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200518 |
|
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: 20201027 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6797881 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |