JP2021034020A - ワークロードのスタティックマッピングの順不同にパイプライン化された実行を可能にする方法及び装置 - Google Patents
ワークロードのスタティックマッピングの順不同にパイプライン化された実行を可能にする方法及び装置 Download PDFInfo
- Publication number
- JP2021034020A JP2021034020A JP2020104328A JP2020104328A JP2021034020A JP 2021034020 A JP2021034020 A JP 2021034020A JP 2020104328 A JP2020104328 A JP 2020104328A JP 2020104328 A JP2020104328 A JP 2020104328A JP 2021034020 A JP2021034020 A JP 2021034020A
- Authority
- JP
- Japan
- Prior art keywords
- credits
- buffer
- workload
- workload node
- threshold
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000003068 static effect Effects 0.000 title abstract description 22
- 238000013507 mapping Methods 0.000 title abstract description 7
- 239000000872 buffer Substances 0.000 claims abstract description 410
- 230000015654 memory Effects 0.000 claims abstract description 172
- 238000003860 storage Methods 0.000 claims description 58
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims 8
- 238000012545 processing Methods 0.000 description 60
- 238000004891 communication Methods 0.000 description 26
- 239000004744 fabric Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 238000013473 artificial intelligence Methods 0.000 description 10
- 230000002085 persistent effect Effects 0.000 description 10
- 238000011537 Coomassie blue staining Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009414 blockwork Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002438 flame photometric detection Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001052 transient 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- 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
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/3842—Speculative instruction execution
- G06F9/3846—Speculative instruction execution using static prediction, e.g. branch taken strategy
-
- 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
- G06F9/505—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 considering the load
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- 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/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Advance Control (AREA)
Abstract
【解決手段】コンピューティングシステムのスケジューラ500は、クレジットの第1の数をメモリ内へ読み込むワークロードインターフェース502と、クレジットの第1の数をバッファのメモリ利用可能性に関連付けられたクレジットの閾値数と比較するクレジット比較器506と、クレジットの第1の数がクレジットの閾値数に一致する場合に、1又は複数の計算ビルディングブロックの最初の一つで実行されるワークロードのワークロードノードを選択するディスパッチャ508とを含む。
【選択図】図5
Description
例えば、ワークロードインターフェース502は、スケジューラ500が関連付けられるところのCBBによって実行されるワークロードノードを受信及び/又はそうでなければ取得し得る。更に又は代替的に、ワークロードインターフェース502は他のスケジューラ、他のCBB及び/又は他のデバイスにクレジットを送信及び/又はそれらから受信し得る。さらに、ワークロードインターフェース502は、ワークロードノードへの入力バッファ及び/又はワークロードノードからの出力バッファに対応するクレジットを、バッファクレジット記録装置504内へ及び/又はそこから読み込み得る。
他の可能な項目
[項目1]
クレジットの第1の数をメモリ内へ読み込むインターフェースと、
クレジットの上記第1の数をバッファ内のメモリ利用可能性に関連付けられたクレジットの閾値数と比較する比較器と、
クレジットの上記第1の数がクレジットの上記閾値数を満たす場合に、上記1又は複数の計算ビルディングブロックの最初の一つで実行される上記ワークロードのワークロードノードを選択するディスパッチャと
を備える装置。
[項目2]
上記インターフェースは、
上記インターフェースがクレジットマネージャーからクレジットの上記第1の数を受信した場合にクレジットの上記第1の数をメモリ内へ読み込み、
上記ワークロードノードに関連付けられたデータの1又は複数のタイルが上記1又は複数の計算ビルディングブロックの上記最初の一つから上記バッファへ送信されるにつれ、上記バッファに送信された各タイルに対してクレジットを上記クレジットマネージャーに送信するものである
項目1の装置。
[項目3]
上記バッファは上記ワークロードノードに関連付けられた出力バッファであり、クレジットの上記第1の数は上記出力バッファに対応しており、クレジットの上記閾値数は上記出力バッファ内のメモリの閾値量に対応する項目1の装置。
[項目4]
上記バッファは上記ワークロードノードに関連付けられた入力バッファであり、クレジットの上記第1の数は上記入力バッファに対応しており、クレジットの上記閾値数は上記入力バッファ内のデータの閾値量に対応する項目1の装置。
[項目5]
上記バッファは第1バッファであり、クレジットの上記閾値数はクレジットの第1閾値数であり、上記比較器はクレジットの第2の数を第2バッファ内のメモリ利用可能性に関連付けられたクレジットの第2閾値数と比較するものであり、上記ディスパッチャは、(1)クレジットの上記第1の数がクレジットの上記第1閾値数を満たし、(2)クレジットの上記第2の数がクレジットの上記第2閾値数を満たす場合に、上記1又は複数の計算ビルディングブロックの上記最初の一つで実行される上記ワークロードノードを選択するものである項目1の装置。
[項目6]
上記第2バッファは上記ワークロードノードに関連付けられた入力バッファであり、クレジットの上記第2の数は上記入力バッファに対応しており、クレジットの上記第2閾値数は上記入力バッファ内のデータの閾値量に対応する項目5の装置。
[項目7]
クレジットの上記閾値数はクレジットの第1閾値数であり、上記ワークロードノードは第1ワークロードノードであり、(1)クレジットの上記第1の数がクレジットの上記第1閾値数を満たし、(2)クレジットの第2の数がクレジットの第2閾値数を満たす場合に、上記ディスパッチャは、上記1又は複数の計算ビルディングブロックの上記最初の一つで実行される上記第1ワークロードノード及び第2ワークロードノードをスケジューリングするものである項目1の装置。
[項目8]
実行された場合に、少なくとも1つのプロセッサに、
クレジットの第1の数をメモリ内へ読み込むこと、
クレジットの上記第1の数をバッファ内のメモリ利用可能性に関連付けられたクレジットの閾値数と比較すること、及び、
クレジットの上記第1の数がクレジットの上記閾値数を満たす場合に、計算ビルディングブロックで実行される上記ワークロードのワークロードノードを選択すること
を少なくとも生じせしめる命令を備える非一時的コンピュータ可読記憶媒体。
[項目9]
上記命令は実行された場合に、上記少なくとも1つのプロセッサに、
クレジットの上記第1の数がクレジットマネージャーから受信された場合にクレジットの上記第1の数をメモリ内へ読み込むこと、及び、
上記ワークロードノードに関連付けられたデータの1又は複数のタイルが上記計算ビルディングブロックから上記バッファへ送信されるにつれ、上記バッファに送信された各タイルに対してクレジットを上記クレジットマネージャーに送信することを生じせしめる項目8の非一時的コンピュータ可読記憶媒体。
[項目10]
上記バッファは上記ワークロードノードに関連付けられた出力バッファであり、クレジットの上記第1の数は上記出力バッファに対応しており、クレジットの上記閾値数は上記出力バッファ内のメモリの閾値量に対応する項目8の非一時的コンピュータ可読記憶媒体。
[項目11]
上記バッファは上記ワークロードノードに関連付けられた入力バッファであり、クレジットの上記第1の数は上記入力バッファに対応しており、クレジットの上記閾値数は上記入力バッファ内のデータの閾値量に対応する項目8の非一時的コンピュータ可読記憶媒体。
[項目12]
上記バッファは第1バッファであり、クレジットの上記閾値数はクレジットの第1閾値数であり、かつ、上記命令は実行された場合に、上記少なくとも1つのプロセッサに、
クレジットの第2の数を第2バッファ内のメモリ利用可能性に関連付けられたクレジットの第2閾値数と比較すること、
(1)クレジットの上記第1の数がクレジットの上記第1閾値数を満たし、(2)クレジットの上記第2の数がクレジットの上記第2閾値数を満たす場合に、上記計算ビルディングブロックで実行される上記ワークロードノードを選択すること
を生じせしめる項目8の非一時的コンピュータ可読記憶媒体。
[項目13]
上記第2バッファは上記ワークロードノードに関連付けられた入力バッファであり、クレジットの上記第2の数は上記第2バッファに対応しており、クレジットの第2閾値数は上記入力バッファ内のデータの閾値量に対応する項目12の非一時的コンピュータ可読記憶媒体。
[項目14]
クレジットの上記閾値数はクレジットの第1閾値数であり、上記ワークロードノードは第1ワークロードノードであり、命令は実行された場合に、上記少なくとも1つのプロセッサに、(1)クレジットの上記第1の数がクレジットの上記第1閾値数を満たし、(2)クレジットの第2の数がクレジットの第2閾値数を満たす場合に、上記計算ビルディングブロックで実行される上記第1ワークロードノード及び第2ワークロードノードをスケジューリングすることを生じせしめる項目8の非一時的コンピュータ可読記憶媒体。
[項目15]
インターフェースする手段であって、クレジットの第1の数をメモリ内へ読み込むための上記インターフェースする手段と、
比較する手段であって、クレジットの上記第1の数をバッファ内のメモリ利用可能性に関連付けられたクレジットの閾値数と比較するための上記比較する手段と、
ディスパッチする手段であって、クレジットの上記第1の数がクレジットの上記閾値数に一致する場合に、上記1又は複数の計算ビルディングブロックの最初の一つで実行される上記ワークロードのワークロードノードを選択するための上記ディスパッチする手段と
を備える装置。
[項目16]
上記インターフェースする手段は、
上記インターフェースする手段がクレジットマネージャーからクレジットの上記第1の数を受信した場合にクレジットの上記第1の数をメモリ内へ読み込み、
上記ワークロードノードに関連付けられたデータの1又は複数のタイルが上記1又は複数の計算ビルディングブロックの上記最初の一つから上記バッファへ送信されるにつれ、上記バッファに送信された各タイルに対してクレジットを上記クレジットマネージャーに送信する
ものである項目15の装置。
[項目17]
上記バッファは上記ワークロードノードに関連付けられた出力バッファであり、クレジットの上記第1の数は上記出力バッファに対応しており、クレジットの上記閾値数は上記出力バッファ内のメモリの閾値量に対応する項目15の装置。[項目18]上記バッファは上記ワークロードノードに関連付けられた入力バッファであり、クレジットの上記第1の数は上記入力バッファに対応しており、クレジットの上記閾値数は上記入力バッファ内のデータの閾値量に対応する項目15の装置。
[項目19]
上記バッファは第1バッファであり、クレジットの上記閾値数はクレジットの第1閾値数であり、上記比較する手段はクレジットの第2の数を第2バッファ内のメモリ利用可能性に関連付けられたクレジットの第2閾値数と比較するものであり、上記ディスパッチする手段は、(1)クレジットの上記第1の数がクレジットの上記第1閾値数を満たし、(2)クレジットの上記第2の数がクレジットの上記第2閾値数を満たす場合に、上記1又は複数の計算ビルディングブロックの上記最初の一つで実行される上記ワークロードノードを選択するものである項目15の装置。
[項目20]
上記第2バッファは上記ワークロードノードに関連付けられた入力バッファであり、クレジットの上記第2の数は上記入力バッファに対応しており、クレジットの上記第2閾値数は上記入力バッファ内のデータの閾値量に対応する項目19の装置。
[項目21]
クレジットの上記閾値数はクレジットの第1閾値数であり、上記ワークロードノードは第1ワークロードノードであり、(1)クレジットの上記第1の数がクレジットの上記第1閾値数を満たし、(2)クレジットの第2の数がクレジットの第2閾値数を満たす場合に、上記ディスパッチする手段は、上記1又は複数の計算ビルディングブロックの上記最初の一つで実行される上記第1ワークロードノード及び第2ワークロードノードをスケジューリングするものである項目15の装置。
[項目22]
クレジットの第1の数をメモリ内へ読み込むことと、
クレジットの上記第1の数をバッファ内のメモリ利用可能性に関連付けられたクレジットの閾値数と比較することと、
クレジットの上記第1の数がクレジットの上記閾値数に一致する場合に、上記1又は複数の計算ビルディングブロックの最初の一つで実行される上記ワークロードのワークロードノードを選択することと
を備える方法。
[項目23]
クレジットマネージャーからクレジットの上記第1の数を受信する場合にクレジットの上記第1の数をメモリ内へ読み込むことと、
上記ワークロードノードに関連付けられたデータの1又は複数のタイルが上記1又は複数の計算ビルディングブロックの上記最初の一つから上記バッファへ送信されるにつれ、上記バッファに送信された各タイルに対してクレジットを上記クレジットマネージャーに送信することと
をさらに含む項目22の方法。
[項目24]
上記バッファは上記ワークロードノードに関連付けられた出力バッファであり、クレジットの上記第1の数は上記出力バッファに対応しており、クレジットの上記閾値数は上記出力バッファ内のメモリの閾値量に対応する項目22の方法。
[項目25]
上記バッファは上記ワークロードノードに関連付けられた入力バッファであり、クレジットの上記第1の数は上記入力バッファに対応しており、クレジットの上記閾値数は上記入力バッファ内のデータの閾値量に対応する項目22の方法。
Claims (26)
- クレジットの第1の数をメモリ内へ読み込むインターフェースと、
クレジットの前記第1の数をバッファ内のメモリ利用可能性に関連付けられたクレジットの閾値数と比較する比較器と、
クレジットの前記第1の数がクレジットの前記閾値数に一致する場合に、1又は複数の計算ビルディングブロックの最初の一つで実行されるワークロードのワークロードノードを選択するディスパッチャと
を備える装置。 - 前記インターフェースは、
前記インターフェースがクレジットマネージャーからクレジットの前記第1の数を受信した場合にクレジットの前記第1の数をメモリ内へ読み込み、
前記ワークロードノードに関連付けられたデータの1又は複数のタイルが前記1又は複数の計算ビルディングブロックの前記最初の一つから前記バッファへ送信されるにつれ、前記バッファに送信された各タイルに対してクレジットを前記クレジットマネージャーに送信するものである
請求項1に記載の装置。 - 前記バッファは前記ワークロードノードに関連付けられた出力バッファであり、クレジットの前記第1の数は前記出力バッファに対応しており、クレジットの前記閾値数は前記出力バッファ内のメモリの閾値量に対応する請求項1又は2に記載の装置。
- 前記バッファは前記ワークロードノードに関連付けられた入力バッファであり、クレジットの前記第1の数は前記入力バッファに対応しており、クレジットの前記閾値数は前記入力バッファ内のデータの閾値量に対応する請求項1から3のいずれか1項に記載の装置。
- 前記バッファは第1バッファであり、クレジットの前記閾値数はクレジットの第1閾値数であり、前記比較器はクレジットの第2の数を第2バッファ内のメモリ利用可能性に関連付けられたクレジットの第2閾値数と比較するものであり、前記ディスパッチャは、(1)クレジットの前記第1の数がクレジットの前記第1閾値数を満たし、(2)クレジットの前記第2の数がクレジットの前記第2閾値数を満たす場合に、前記1又は複数の計算ビルディングブロックの前記最初の一つで実行される前記ワークロードノードを選択するものである請求項1から4のいずれか1項に記載の装置。
- 前記第2バッファは前記ワークロードノードに関連付けられた入力バッファであり、クレジットの前記第2の数は前記入力バッファに対応しており、クレジットの前記第2閾値数は前記入力バッファ内のデータの閾値量に対応する請求項5に記載の装置。
- クレジットの前記閾値数はクレジットの第1閾値数であり、前記ワークロードノードは第1ワークロードノードであり、(1)クレジットの前記第1の数がクレジットの前記第1閾値数を満たし、(2)クレジットの第2の数がクレジットの第2閾値数を満たす場合に、前記ディスパッチャは、前記1又は複数の計算ビルディングブロックの前記最初の一つで実行される前記第1ワークロードノード及び第2ワークロードノードをスケジューリングするものである請求項1から6のいずれか1項に記載の装置。
- 少なくとも1つのプロセッサに、
クレジットの第1の数をメモリ内へ読み込む手順と、
クレジットの前記第1の数をバッファ内のメモリ利用可能性に関連付けられたクレジットの閾値数と比較する手順と、
クレジットの前記第1の数がクレジットの前記閾値数に一致する場合に、計算ビルディングブロックで実行されるワークロードのワークロードノードを選択する手順と
を少なくとも実行させるためのコンピュータプログラム。 - 前記少なくとも1つのプロセッサに、
クレジットの前記第1の数がクレジットマネージャーから受信された場合にクレジットの前記第1の数をメモリ内へ読み込む手順と、
前記ワークロードノードに関連付けられたデータの1又は複数のタイルが前記計算ビルディングブロックから前記バッファへ送信されるにつれ、前記バッファに送信された各タイルに対してクレジットを前記クレジットマネージャーに送信する手順とを実行させる、請求項8に記載のコンピュータプログラム。 - 前記バッファは前記ワークロードノードに関連付けられた出力バッファであり、クレジットの前記第1の数は前記出力バッファに対応しており、クレジットの前記閾値数は前記出力バッファ内のメモリの閾値量に対応する請求項8又は9に記載のコンピュータプログラム。
- 前記バッファは前記ワークロードノードに関連付けられた入力バッファであり、クレジットの前記第1の数は前記入力バッファに対応しており、クレジットの前記閾値数は前記入力バッファ内のデータの閾値量に対応する請求項8から10のいずれか1項に記載のコンピュータプログラム。
- 前記バッファは第1バッファであり、クレジットの前記閾値数はクレジットの第1閾値数であり、かつ、前記少なくとも1つのプロセッサに、
クレジットの第2の数を第2バッファ内のメモリ利用可能性に関連付けられたクレジットの第2閾値数と比較する手順と、
(1)クレジットの前記第1の数がクレジットの前記第1閾値数を満たし、(2)クレジットの前記第2の数がクレジットの前記第2閾値数を満たす場合に、前記計算ビルディングブロックで実行される前記ワークロードノードを選択する手順と
を実行させる、請求項8から11のいずれか1項に記載のコンピュータプログラム。 - 前記第2バッファは前記ワークロードノードに関連付けられた入力バッファであり、クレジットの前記第2の数は前記第2バッファに対応しており、クレジットの第2閾値数は前記入力バッファ内のデータの閾値量に対応する請求項12に記載のコンピュータプログラム。
- クレジットの前記閾値数はクレジットの第1閾値数であり、前記ワークロードノードは第1ワークロードノードであり、前記少なくとも1つのプロセッサに、(1)クレジットの前記第1の数がクレジットの前記第1閾値数を満たし、(2)クレジットの第2の数がクレジットの第2閾値数を満たす場合に、前記計算ビルディングブロックで実行される前記第1ワークロードノード及び第2ワークロードノードをスケジューリングする手順と実行させる、請求項8から13のいずれか1項に記載のコンピュータプログラム。
- 請求項8から14のいずれか1項に記載のコンピュータプログラムを格納したコンピュータ可読記憶媒体。
- インターフェースする手段であって、クレジットの第1の数をメモリ内へ読み込むための前記インターフェースする手段と、
比較する手段であって、クレジットの前記第1の数をバッファ内のメモリ利用可能性に関連付けられたクレジットの閾値数と比較するための前記比較する手段と、
ディスパッチする手段であって、クレジットの前記第1の数がクレジットの前記閾値数に一致する場合に、1又は複数の計算ビルディングブロックの最初の一つで実行されるワークロードのワークロードノードを選択するための前記ディスパッチする手段と
を備える装置。 - 前記インターフェースする手段は、
前記インターフェースする手段がクレジットマネージャーからクレジットの前記第1の数を受信する場合にクレジットの前記第1の数をメモリ内へ読み込み、
前記ワークロードノードに関連付けられたデータの1又は複数のタイルが前記1又は複数の計算ビルディングブロックの前記最初の一つから前記バッファへ送信されるにつれ、前記バッファに送信された各タイルに対してクレジットを前記クレジットマネージャーに送信する
ものである請求項16に記載の装置。 - 前記バッファは前記ワークロードノードに関連付けられた出力バッファであり、クレジットの前記第1の数は前記出力バッファに対応しており、クレジットの前記閾値数は前記出力バッファ内のメモリの閾値量に対応する請求項16又は17に記載の装置。
- 前記バッファは前記ワークロードノードに関連付けられた入力バッファであり、クレジットの前記第1の数は前記入力バッファに対応しており、クレジットの前記閾値数は前記入力バッファ内のデータの閾値量に対応する請求項16から18のいずれか1項に記載の装置。
- 前記バッファは第1バッファであり、クレジットの前記閾値数はクレジットの第1閾値数であり、前記比較する手段はクレジットの第2の数を第2バッファ内のメモリ利用可能性に関連付けられたクレジットの第2閾値数と比較するものであり、前記ディスパッチする手段は、(1)クレジットの前記第1の数がクレジットの前記第1閾値数を満たし、(2)クレジットの前記第2の数がクレジットの前記第2閾値数を満たす場合に、前記1又は複数の計算ビルディングブロックの前記最初の一つで実行される前記ワークロードノードを選択するものである請求項16から19のいずれか1項に記載の装置。
- 前記第2バッファは前記ワークロードノードに関連付けられた入力バッファであり、クレジットの前記第2の数は前記入力バッファに対応しており、クレジットの前記第2閾値数は前記入力バッファ内のデータの閾値量に対応する請求項20に記載の装置。
- クレジットの前記閾値数はクレジットの第1閾値数であり、前記ワークロードノードは第1ワークロードノードであり、(1)クレジットの前記第1の数がクレジットの前記第1閾値数を満たし、(2)クレジットの第2の数がクレジットの第2閾値数を満たす場合に、前記ディスパッチする手段は、前記1又は複数の計算ビルディングブロックの前記最初の一つで実行される前記第1ワークロードノード及び第2ワークロードノードをスケジューリングするものである請求項16から21のいずれか1項に記載の装置。
- クレジットの第1の数をメモリ内へ読み込むことと、
クレジットの前記第1の数をバッファ内のメモリ利用可能性に関連付けられたクレジットの閾値数と比較することと、
クレジットの前記第1の数がクレジットの前記閾値数に一致する場合に、1又は複数の計算ビルディングブロックの最初の一つで実行されるワークロードのワークロードノードを選択することと
を備える方法。 - クレジットマネージャーからクレジットの前記第1の数を受信した場合にクレジットの前記第1の数をメモリ内へ読み込むことと、
前記ワークロードノードに関連付けられたデータの1又は複数のタイルが前記1又は複数の計算ビルディングブロックの前記最初の一つから前記バッファへ送信されるにつれ、前記バッファに送信された各タイルに対してクレジットを前記クレジットマネージャーに送信することと
をさらに含む請求項23に記載の方法。 - 前記バッファは前記ワークロードノードに関連付けられた出力バッファであり、クレジットの前記第1の数は前記出力バッファに対応しており、クレジットの前記閾値数は前記出力バッファ内のメモリの閾値量に対応する請求項23又は24に記載の方法。
- 前記バッファは前記ワークロードノードに関連付けられた入力バッファであり、クレジットの前記第1の数は前記入力バッファに対応しており、クレジットの前記閾値数は前記入力バッファ内のデータの閾値量に対応する請求項23から25のいずれか1項に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/542,012 US11231963B2 (en) | 2019-08-15 | 2019-08-15 | Methods and apparatus to enable out-of-order pipelined execution of static mapping of a workload |
US16/542,012 | 2019-08-15 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021034020A true JP2021034020A (ja) | 2021-03-01 |
JP2021034020A5 JP2021034020A5 (ja) | 2022-06-21 |
JP7400169B2 JP7400169B2 (ja) | 2023-12-19 |
Family
ID=68693863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020104328A Active JP7400169B2 (ja) | 2019-08-15 | 2020-06-17 | ワークロードのスタティックマッピングの順不同にパイプライン化された実行を可能にする方法及び装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11231963B2 (ja) |
JP (1) | JP7400169B2 (ja) |
KR (1) | KR20210021263A (ja) |
CN (2) | CN114895965A (ja) |
DE (1) | DE102020119519A1 (ja) |
TW (1) | TWI802800B (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10901657B2 (en) * | 2018-11-29 | 2021-01-26 | International Business Machines Corporation | Dynamic write credit buffer management of non-volatile dual inline memory module |
US11231963B2 (en) | 2019-08-15 | 2022-01-25 | Intel Corporation | Methods and apparatus to enable out-of-order pipelined execution of static mapping of a workload |
US11875247B1 (en) * | 2020-06-18 | 2024-01-16 | Amazon Technologies, Inc. | Input batching with serial dynamic memory access |
US11704058B2 (en) * | 2020-07-28 | 2023-07-18 | Samsung Electronics Co., Ltd. | Systems and methods for resource-based scheduling of commands |
US11620159B2 (en) | 2021-04-23 | 2023-04-04 | Samsung Electronics Co., Ltd. | Systems and methods for I/O command scheduling based on multiple resource parameters |
US12001701B2 (en) * | 2022-01-26 | 2024-06-04 | Western Digital Technologies, Inc. | Storage biasing for solid state drive accelerators |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0721144A (ja) * | 1993-04-12 | 1995-01-24 | Loral Rolm Mil Spec Corp | 多重プロセッサアーキテクチャにおけるプログラム自動展開方法 |
US20040268083A1 (en) * | 2003-06-27 | 2004-12-30 | Tatsunori Kanai | Information processing system including processors and memory managing method used in the same system |
US20120239833A1 (en) * | 2011-03-14 | 2012-09-20 | Kabushiki Kaisha Toshiba | Buffer management device, buffer management method, and storage device |
US20160140071A1 (en) * | 2014-11-13 | 2016-05-19 | Cavium, Inc. | Arbitrated Access To Resources Among Multiple Devices |
JP2017525047A (ja) * | 2014-07-30 | 2017-08-31 | リニア アルジェブラ テクノロジーズ リミテッド | 低電力コンピュータイメージング |
US20190050261A1 (en) * | 2018-03-29 | 2019-02-14 | Intel Corporation | Arbitration across shared memory pools of disaggregated memory devices |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2569271B (en) * | 2017-10-20 | 2020-05-13 | Graphcore Ltd | Synchronization with a host processor |
US11231963B2 (en) | 2019-08-15 | 2022-01-25 | Intel Corporation | Methods and apparatus to enable out-of-order pipelined execution of static mapping of a workload |
-
2019
- 2019-08-15 US US16/542,012 patent/US11231963B2/en active Active
-
2020
- 2020-06-17 JP JP2020104328A patent/JP7400169B2/ja active Active
- 2020-06-18 CN CN202210600897.6A patent/CN114895965A/zh active Pending
- 2020-06-18 TW TW109120637A patent/TWI802800B/zh active
- 2020-06-18 CN CN202010559855.3A patent/CN112395010A/zh active Pending
- 2020-07-15 KR KR1020200087436A patent/KR20210021263A/ko active IP Right Grant
- 2020-07-23 DE DE102020119519.2A patent/DE102020119519A1/de active Pending
-
2021
- 2021-12-23 US US17/561,500 patent/US11847497B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0721144A (ja) * | 1993-04-12 | 1995-01-24 | Loral Rolm Mil Spec Corp | 多重プロセッサアーキテクチャにおけるプログラム自動展開方法 |
US20040268083A1 (en) * | 2003-06-27 | 2004-12-30 | Tatsunori Kanai | Information processing system including processors and memory managing method used in the same system |
JP2005018620A (ja) * | 2003-06-27 | 2005-01-20 | Toshiba Corp | 情報処理システムおよびメモリ管理方法 |
US20120239833A1 (en) * | 2011-03-14 | 2012-09-20 | Kabushiki Kaisha Toshiba | Buffer management device, buffer management method, and storage device |
JP2012190415A (ja) * | 2011-03-14 | 2012-10-04 | Toshiba Corp | バッファ管理装置、バッファ管理方法及び記憶装置 |
JP2017525047A (ja) * | 2014-07-30 | 2017-08-31 | リニア アルジェブラ テクノロジーズ リミテッド | 低電力コンピュータイメージング |
US20160140071A1 (en) * | 2014-11-13 | 2016-05-19 | Cavium, Inc. | Arbitrated Access To Resources Among Multiple Devices |
US20190050261A1 (en) * | 2018-03-29 | 2019-02-14 | Intel Corporation | Arbitration across shared memory pools of disaggregated memory devices |
Also Published As
Publication number | Publication date |
---|---|
US20190370073A1 (en) | 2019-12-05 |
US20220197703A1 (en) | 2022-06-23 |
CN114895965A (zh) | 2022-08-12 |
JP7400169B2 (ja) | 2023-12-19 |
US11231963B2 (en) | 2022-01-25 |
CN112395010A (zh) | 2021-02-23 |
DE102020119519A1 (de) | 2021-02-18 |
KR20210021263A (ko) | 2021-02-25 |
US11847497B2 (en) | 2023-12-19 |
TWI802800B (zh) | 2023-05-21 |
TW202109285A (zh) | 2021-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021034020A (ja) | ワークロードのスタティックマッピングの順不同にパイプライン化された実行を可能にする方法及び装置 | |
US10942716B1 (en) | Dynamic computational acceleration using a heterogeneous hardware infrastructure | |
US9298438B2 (en) | Profiling application code to identify code portions for FPGA implementation | |
US8782645B2 (en) | Automatic load balancing for heterogeneous cores | |
JP6329274B2 (ja) | コンパイラ最適化のためのメモリ参照メタデータ | |
KR101590734B1 (ko) | 그래픽 프로세싱 유닛에서의 메모리 공유 | |
US9619298B2 (en) | Scheduling computing tasks for multi-processor systems based on resource requirements | |
US11036477B2 (en) | Methods and apparatus to improve utilization of a heterogeneous system executing software | |
CN112148293A (zh) | 用于在异构***上执行的软件的运行时多调度的方法和装置 | |
US20230333913A1 (en) | Methods and apparatus to configure heterogenous components in an accelerator | |
US10970120B2 (en) | Method and system for opportunistic load balancing in neural networks using metadata | |
EP3779778A1 (en) | Methods and apparatus to enable dynamic processing of a predefined workload | |
US20230325185A1 (en) | Methods and apparatus to accelerate matrix operations using direct memory access | |
US20190318229A1 (en) | Method and system for hardware mapping inference pipelines | |
KR20210021262A (ko) | 다수의 비동기 소비자들을 위한 방법들 및 장치들 | |
US20230136365A1 (en) | Methods and apparatus to allocate accelerator usage | |
US20230236878A1 (en) | Efficiently launching tasks on a processor | |
TWI428833B (zh) | 多執行緒處理器及其指令執行及同步方法及其電腦程式產品 | |
US20230244525A1 (en) | Methods and apparatus for an xpu-aware dynamic compute scheduling framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220613 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220613 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230516 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230807 |
|
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: 20231107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231110 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7400169 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |