JP2022545222A - 複数のプロセッサを有するコンピュータにおける通信 - Google Patents
複数のプロセッサを有するコンピュータにおける通信 Download PDFInfo
- Publication number
- JP2022545222A JP2022545222A JP2022510938A JP2022510938A JP2022545222A JP 2022545222 A JP2022545222 A JP 2022545222A JP 2022510938 A JP2022510938 A JP 2022510938A JP 2022510938 A JP2022510938 A JP 2022510938A JP 2022545222 A JP2022545222 A JP 2022545222A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- data
- computer
- processors
- memory
- 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
- 238000004891 communication Methods 0.000 title description 5
- 230000004888 barrier function Effects 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 149
- 238000012546 transfer Methods 0.000 claims description 57
- 238000000034 method Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 32
- 238000010801 machine learning Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 16
- 230000009471 action Effects 0.000 claims description 12
- 239000000872 buffer Substances 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims 1
- 239000012634 fragment Substances 0.000 description 56
- 238000012549 training Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000002776 aggregation Effects 0.000 description 11
- 238000004220 aggregation Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 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/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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- 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/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/177—Initialisation or configuration control
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic 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/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/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
- 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
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Multi Processors (AREA)
Abstract
Description
によるものであり得、独立演算子(例えば、max)又は結合演算子=P1(N0)*P1(N1)*P1(N2)*P1(N3)が含まれ得る。次いで、allgatherパスでは、状態S3を起動させるために、各集約がすべてのプロセッサに提供され、ここでは、各プロセッサは、すべての4つの集約を保持する。S1では、「対応する」部分(例えば、P0(0)、P0(1)、P0(2)、P0(3))は異なり得るのに対して、状態S3では、各集約(例えば、r0であり、ri=f{(Pi(0),Pi(1),Pi(2),Pi(3))})はすべてのプロセッサにおいて同じであることに留意されたい。機械学習では、部分値P0、P1、P2、P3の集合はベクトルである。部分(例えば、更新された重み)のベクトルは、訓練の間にモデルの各パスにおいて生成される。状態S3での各プロセッサにおけるリダクションr0、r1、r2、r3は、完全な集約ベクトルである。機械学習の環境では、各部分は、モデルのパラメータに対する更新デルタの集合であり得る。その代替として(本明細書ではさらなる説明が行われない配列では)、各部分は、更新パラメータであり得る。
の単一のフラグメントに集約される。Y、G、B、P、Lフラグメントに対しても同様である。
とラベル付けされたデータを選択してプロセッサN1に転送する。プロセッサN1の実行ユニット420は、プロセッサN1によって保持されたインデックス値に応じて、
とラベル付けされたデータを選択してプロセッサN2に転送する。プロセッサN2の実行ユニット420は、プロセッサN2によって保持されたインデックス値に応じて、
とラベル付けされたデータを選択してプロセッサN3に転送する。プロセッサN3の実行ユニット420は、プロセッサN3によって保持されたインデックス値に応じて、
とラベル付けされたデータを選択してプロセッサN4に転送する。プロセッサN4の実行ユニット420は、プロセッサN4によって保持されたインデックス値に応じて、
とラベル付けされたデータを選択してプロセッサN5に転送する。プロセッサN5の実行ユニット420は、プロセッサN5によって保持されたインデックス値に応じて、
とラベル付けされたデータを選択してプロセッサN0に転送する。これらのデータ転送の各々は、allgather動作の第1のステップを完了する。後続のステップを実行することにより、各プロセッサ2には、集約された各フラグメントが提供される。
とラベル付けされたデータを受信し、そのインデックスに応じて、このデータをメモリ405内の場所Lに格納するという命令を実行する。プロセッサN1の実行ユニット420は、プロセッサN0から
とラベル付けされたデータを受信し、そのインデックスに応じて、このデータをメモリ405内の場所Rに格納するという命令を実行する。プロセッサN2の実行ユニット420は、プロセッサN1から
とラベル付けされたデータを受信し、そのインデックスに応じて、このデータをメモリ405内の場所Yに格納するという命令を実行する。プロセッサN3の実行ユニット420は、プロセッサN2から
とラベル付けされたデータを受信し、そのインデックスに応じて、このデータをメモリ405内の場所Gに格納するという命令を実行する。プロセッサN4の実行ユニット420は、プロセッサN3から
とラベル付けされたデータを受信し、そのインデックスに応じて、このデータをメモリ405内の場所Bに格納するという命令を実行する。プロセッサN5の実行ユニット420は、プロセッサN4から
とラベル付けされたデータを受信し、そのインデックスに応じて、このデータをメモリ405内の場所Pに格納するという命令を実行する。プロセッサN0の実行ユニット420は、プロセッサN5から
とラベル付けされたデータを受信し、そのインデックスに応じて、このデータをメモリ405内の場所Lに格納するという命令を実行する。
Claims (15)
- 複数のプロセッサを含むコンピュータであって、各プロセッサが、前記コンピュータの演算段階の間にデータに関する動作を実行し、同期バリアに続いて、前記コンピュータの交換段階の間に少なくとも1つの他のプロセッサとデータを交換するように構成され、各プロセッサは、
複数の処理ユニットと、
実行可能命令の同じセットと複数のプロセッサの中の各プロセッサを識別するインデックス値とを含むプログラムを含む少なくとも1つのストレージであって、前記プロセッサの前記インデックス値のコピーと前記実行可能命令のセットのサブセットとを格納する前記プロセッサの前記処理ユニットの少なくとも1つのメモリを含む少なくとも1つのストレージと、
前記実行可能命令のセットによって指定された計算において使用するためのデータを格納し、プロセッサの複数の処理ユニットの各々のデータメモリを含む、複数のデータメモリと、
プロセッサの複数の処理ユニットの各々の実行ユニットを含む複数の実行ユニットと、
を含み、
前記複数の実行ユニットの少なくともいくつかそれぞれが、
前記インデックス値に応じて、前記コンピュータの前記交換段階の間に、処理ユニットの前記データメモリと少なくとも1つの他のプロセッサとの間のデータ転送を実行するための動作を選択することと、
前記交換段階の間にデータ転送を実行するために選択された動作を実行することと、
を行うための実行可能命令の1つ以上のサブセットを実行するよう配置されている、
コンピュータ。 - 少なくともいくつかのプロセッサの最小のいくつかの処理ユニットについて、前記インデックス値に応じてデータ転送を実行するための動作を選択することは、データが転送される少なくとも1つの他のプロセッサを選択することを含む、請求項1に記載のコンピュータ。
- 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、前記動作は、前記インデックス値に応じて選択された前記データメモリの領域と少なくとも1つの他のプロセッサとの間でデータを転送させる、請求項1又は2に記載のコンピュータ。
- 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、前記実行ユニットは、前記インデックス値に基づく算術演算を実行することによって、データメモリの領域のアドレスを計算するように構成される、請求項3に記載のコンピュータ。
- 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、前記実行ユニットは、前記インデックス値に応じて前記実行可能命令のサブセットの少なくとも1つの命令に分岐するように構成され、前記少なくとも1つの命令は、前記実行ユニットによって実行されると、データメモリの領域と少なくとも1つの他のプロセッサとの間でデータを転送させる、請求項3に記載のコンピュータ。
- 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、前記動作は、データメモリの領域に少なくとも1つの他のプロセッサから受信されたデータを格納することを含む、請求項3~5のいずれか一項に記載のコンピュータ。
- 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、前記動作は、前記インデックス値に応じて、前記データメモリに格納されたデータを選択することと、選択されたデータを少なくとも1つの他のプロセッサに送信することとを含む、請求項1~6のいずれか一項に記載のコンピュータ。
- 最小のいくつかのプロセッサの少なくともいくつかの処理ユニットの前記実行ユニットは、データパケットを生成するために選択されたデータを処理するように構成され、
前記データパケットは、選択されたデータと、少なくとも1つの他のプロセッサのバッファのアドレスを含むヘッダと、を含む、請求項7に記載のコンピュータ。 - 前記データ転送において転送されるデータを静的にルーティングするように構成されたルーティングハードウェアを含む、請求項1~8のいずれか一項に記載のコンピュータ。
- 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、
前記動作は、少なくとも1つの他のプロセッサのそれぞれから受信されたデータと、前記データメモリに格納されたデータを組み合わせることを含み、
前記実行ユニットは、前記インデックス値に応じて、前記データメモリから前記データを選択するように構成される、請求項1~9のいずれか一項に記載のコンピュータ。 - 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、
前記データメモリは、少なくとも1つの機械学習モデルに対する複数のデルタ重みを含み、
前記データメモリと少なくとも1つの他のプロセッサのそれぞれとの間のデータ転送が、前記データメモリと少なくとも1つの他のプロセッサのそれぞれとの間の1つ又は複数のデルタ重みの転送を制御することを含む、請求項1~10のいずれか一項に記載のコンピュータ。 - 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、前記実行ユニットは、前記インデックス値に応じて、前記データメモリから1つ又は複数のデルタ重みを選択し、少なくとも1つの他のプロセッサのそれぞれに選択された1つ又は複数のデルタ重みを転送させるように構成される、請求項11に記載のコンピュータ。
- 少なくともいくつかのプロセッサの少なくともいくつかの処理ユニットについて、前記実行ユニットは、
前記インデックス値に応じて、前記データメモリから1つ又は複数のデルタ重みを選択することと、
選択された1つ又は複数のデルタ重みを、少なくとも1つの他のプロセッサから受信された1つ又は複数のデルタ重みと集約させることと、
を行うように構成される、請求項11又は12に記載のコンピュータ。 - 前記プロセッサは、システムオンチップである、請求項1に記載のコンピュータ。
- 複数のプログラムを生成するためのコンピュータ実装方法であって、各プログラムが、複数のプロセッサを含むコンピュータのプロセッサによる実行に適し、各プロセッサが、複数の処理ユニットを有し、各処理ユニットが、前記プロセッサのプログラムのサブセットを保持するための少なくとも1つのメモリと、前記プログラムの前記サブセットを実行するための実行ユニットと、データを保持するためのデータメモリとを有し、コンピュータ実装方法は、
単一の実行可能命令のセットをコンパイルすることと、
各プロセッサに対して、プロセッサと関連付けられたインデックス値を決定することと、
各プロセッサに対して、単一の命令のセット及び前記インデックス値を含むローカルプログラムを生成することと、
を含み、
前記ローカルプログラムの各サブセットは、前記ローカルプログラムがプロセッサに割り当てられると、
前記コンピュータの演算段階の間にデータに関する動作を実行することと、
前記インデックス値に応じて、前記コンピュータの交換段階の間に、処理ユニットの前記データメモリと少なくとも1つの他のプロセッサとの間のデータ転送を実行するための動作を選択することと、
同期バリアに続いて、前記交換段階の間にデータ転送を実行するために選択された動作を実行することと、
を前記プロセッサの前記実行ユニットの1つで実行させるようスケジューリングされる、
コンピュータ実装方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1919148.5A GB2590658A (en) | 2019-12-23 | 2019-12-23 | Communication in a computer having multiple processors |
GB1919148.5 | 2019-12-23 | ||
PCT/EP2020/086418 WO2021130075A1 (en) | 2019-12-23 | 2020-12-16 | Communication in a computer having multiple processors |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022545222A true JP2022545222A (ja) | 2022-10-26 |
JP7357767B2 JP7357767B2 (ja) | 2023-10-06 |
Family
ID=69322866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022510938A Active JP7357767B2 (ja) | 2019-12-23 | 2020-12-16 | 複数のプロセッサを有するコンピュータにおける通信 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11599363B2 (ja) |
EP (1) | EP3973465A1 (ja) |
JP (1) | JP7357767B2 (ja) |
KR (1) | KR20220010747A (ja) |
CN (1) | CN113994318A (ja) |
GB (1) | GB2590658A (ja) |
WO (1) | WO2021130075A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110845A (ja) * | 1992-09-25 | 1994-04-22 | Hitachi Ltd | プロセッサ間データ通信方法 |
JP2001273273A (ja) * | 2000-02-28 | 2001-10-05 | Internatl Business Mach Corp <Ibm> | マルチプロセッシング・エンジン環境用のレジスタ・パイプ |
JP2019079528A (ja) * | 2017-10-20 | 2019-05-23 | グラフコアー リミテッドGraphcore Limited | マルチタイル処理配列における同期化 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06266683A (ja) | 1993-03-12 | 1994-09-22 | Toshiba Corp | 並列処理装置 |
US5682491A (en) * | 1994-12-29 | 1997-10-28 | International Business Machines Corporation | Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier |
FR2809204B1 (fr) * | 2000-05-17 | 2003-09-19 | Bull Sa | Interface applicative multiprosseur, ne necessitant pas l'utilisation d'un systeme d'exploitation multiprocesseur |
US6738842B1 (en) * | 2001-03-29 | 2004-05-18 | Emc Corporation | System having plural processors and a uni-cast/broadcast communication arrangement |
US8316190B2 (en) * | 2007-04-06 | 2012-11-20 | Waratek Pty. Ltd. | Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping |
NL2002799C2 (en) * | 2009-04-24 | 2010-10-26 | Univ Delft Tech | Data structure, method and system for address lookup. |
US10698859B2 (en) * | 2009-09-18 | 2020-06-30 | The Board Of Regents Of The University Of Texas System | Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture |
US9122700B2 (en) * | 2011-12-20 | 2015-09-01 | Los Alamos National Security, Llc | Parallel log structured file system collective buffering to achieve a compact representation of scientific and/or dimensional data |
KR20160046331A (ko) * | 2013-08-19 | 2016-04-28 | 상하이 신하오 (브레이브칩스) 마이크로 일렉트로닉스 코. 엘티디. | 범용 유닛을 기반으로 하는 고성능 프로세스 시스템 및 방법 |
GB2569775B (en) * | 2017-10-20 | 2020-02-26 | Graphcore Ltd | Synchronization in a multi-tile, multi-chip processing arrangement |
US10963003B2 (en) * | 2017-10-20 | 2021-03-30 | Graphcore Limited | Synchronization in a multi-tile processing array |
-
2019
- 2019-12-23 GB GB1919148.5A patent/GB2590658A/en active Pending
-
2020
- 2020-04-06 US US16/840,988 patent/US11599363B2/en active Active
- 2020-12-16 JP JP2022510938A patent/JP7357767B2/ja active Active
- 2020-12-16 EP EP20830153.1A patent/EP3973465A1/en active Pending
- 2020-12-16 CN CN202080045268.0A patent/CN113994318A/zh active Pending
- 2020-12-16 KR KR1020217041489A patent/KR20220010747A/ko not_active Application Discontinuation
- 2020-12-16 WO PCT/EP2020/086418 patent/WO2021130075A1/en unknown
-
2023
- 2023-02-03 US US18/164,202 patent/US11907725B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110845A (ja) * | 1992-09-25 | 1994-04-22 | Hitachi Ltd | プロセッサ間データ通信方法 |
JP2001273273A (ja) * | 2000-02-28 | 2001-10-05 | Internatl Business Mach Corp <Ibm> | マルチプロセッシング・エンジン環境用のレジスタ・パイプ |
JP2019079528A (ja) * | 2017-10-20 | 2019-05-23 | グラフコアー リミテッドGraphcore Limited | マルチタイル処理配列における同期化 |
Also Published As
Publication number | Publication date |
---|---|
GB2590658A (en) | 2021-07-07 |
US20210191731A1 (en) | 2021-06-24 |
US11907725B2 (en) | 2024-02-20 |
KR20220010747A (ko) | 2022-01-26 |
JP7357767B2 (ja) | 2023-10-06 |
CN113994318A (zh) | 2022-01-28 |
US20230185577A1 (en) | 2023-06-15 |
WO2021130075A1 (en) | 2021-07-01 |
US11599363B2 (en) | 2023-03-07 |
GB201919148D0 (en) | 2020-02-05 |
EP3973465A1 (en) | 2022-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6797880B2 (ja) | マルチタイル、マルチチップ処理構成における同期 | |
KR102190879B1 (ko) | 프로세서 타일들 간의 동기화 | |
KR102161683B1 (ko) | 호스트 프로세서와의 동기화 | |
US10949266B2 (en) | Synchronization and exchange of data between processors | |
KR102167059B1 (ko) | 멀티-타일 프로세싱 어레이의 동기화 | |
KR102262483B1 (ko) | 복수-타일 프로세싱 구성에서의 동기화 | |
KR102253628B1 (ko) | 복수-쓰레드 프로세서에서의 복수 쓰레드들의 상태들의 결합 | |
KR20190044571A (ko) | 칩 밖으로 데이터 송신하기 | |
KR20190044526A (ko) | 컴파일러 방법 | |
CN111630505A (zh) | 深度学习加速器系统及其方法 | |
JP7357767B2 (ja) | 複数のプロセッサを有するコンピュータにおける通信 | |
JP2023519432A (ja) | 並列処理システムにおけるモデルパラメータの更新 | |
US11625357B2 (en) | Control of data transfer between processors | |
JP7503198B2 (ja) | ハードウェアオートローダ | |
US11726937B2 (en) | Control of data sending from a multi-processor device | |
US11940940B2 (en) | External exchange connectivity | |
JP7487334B2 (ja) | 処理ノード動作の制御 | |
KR20230035416A (ko) | 네트워크를 통한 호스트와 가속기 간의 통신 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230314 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230726 |
|
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: 20230912 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230926 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7357767 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |