JP2020517030A - ディープラーニング加速化のためのデータ構造記述子 - Google Patents
ディープラーニング加速化のためのデータ構造記述子 Download PDFInfo
- Publication number
- JP2020517030A JP2020517030A JP2019556709A JP2019556709A JP2020517030A JP 2020517030 A JP2020517030 A JP 2020517030A JP 2019556709 A JP2019556709 A JP 2019556709A JP 2019556709 A JP2019556709 A JP 2019556709A JP 2020517030 A JP2020517030 A JP 2020517030A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- fabric
- vector
- instruction
- processing
- 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
- 238000013135 deep learning Methods 0.000 title abstract description 97
- 230000015654 memory Effects 0.000 claims abstract description 411
- 239000004744 fabric Substances 0.000 claims abstract description 366
- 238000012545 processing Methods 0.000 claims abstract description 348
- 239000013598 vector Substances 0.000 claims abstract description 322
- 238000000034 method Methods 0.000 claims abstract description 231
- 238000004364 calculation method Methods 0.000 claims abstract description 125
- 239000000872 buffer Substances 0.000 claims abstract description 87
- 238000001994 activation Methods 0.000 claims description 231
- 230000004913 activation Effects 0.000 claims description 230
- 238000013528 artificial neural network Methods 0.000 claims description 192
- 230000036961 partial effect Effects 0.000 claims description 69
- 230000004044 response Effects 0.000 claims description 63
- 230000008569 process Effects 0.000 claims description 60
- 230000010354 integration Effects 0.000 claims description 22
- 230000001537 neural effect Effects 0.000 claims description 5
- 230000006872 improvement Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 abstract description 4
- 210000002569 neuron Anatomy 0.000 description 160
- 238000003860 storage Methods 0.000 description 95
- 230000006854 communication Effects 0.000 description 90
- 238000004891 communication Methods 0.000 description 90
- 238000012549 training Methods 0.000 description 85
- 239000003086 colorant Substances 0.000 description 72
- 230000002441 reversible effect Effects 0.000 description 62
- 238000007667 floating Methods 0.000 description 35
- 230000008878 coupling Effects 0.000 description 32
- 238000010168 coupling process Methods 0.000 description 32
- 238000005859 coupling reaction Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 31
- 238000013507 mapping Methods 0.000 description 27
- 230000035508 accumulation Effects 0.000 description 26
- 238000009825 accumulation Methods 0.000 description 26
- 230000003068 static effect Effects 0.000 description 21
- 238000006243 chemical reaction Methods 0.000 description 16
- 238000001152 differential interference contrast microscopy Methods 0.000 description 16
- 230000000977 initiatory effect Effects 0.000 description 12
- 238000010606 normalization Methods 0.000 description 12
- 230000000903 blocking effect Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 8
- 235000008694 Humulus lupulus Nutrition 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 7
- 238000009826 distribution Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 241001522296 Erithacus rubecula Species 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000004321 preservation Methods 0.000 description 4
- 102100033045 G-protein coupled receptor 4 Human genes 0.000 description 3
- 101000871138 Homo sapiens G-protein coupled receptor 4 Proteins 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000001976 improved effect Effects 0.000 description 3
- 210000002364 input neuron Anatomy 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000007480 spreading Effects 0.000 description 3
- 238000003892 spreading Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 230000017105 transposition Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 235000013599 spices Nutrition 0.000 description 2
- 102100024406 60S ribosomal protein L15 Human genes 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 101001117935 Homo sapiens 60S ribosomal protein L15 Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008867 communication pathway Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000007876 drug discovery Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000009349 indirect transmission Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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/82—Architectures of general purpose stored program computers data or demand driven
- G06F15/825—Dataflow computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/324—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
-
- 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/3802—Instruction prefetching
-
- 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
- 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
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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/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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/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/047—Probabilistic or stochastic 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
Abstract
Description
本願のタイプにより許される限り、本願は、全て、本願の有効出願日までに本願と同一の所有者により所有される以下の出願をあらゆる目的のためにこの参照により組み込む:
2018年4月17日付で出願された第一発明者Sean LIE及び名称MICROTHREADING FOR ACCELERATED DEEP LEARNINGのPCT出願第PCT/IB2018/052640号明細書(代理人整理番号CS−17−08PCT)、
2018年4月16日付で出願された第一発明者Sean LIE及び名称TASK SYNCHRONIZATION FOR ACCELERATED DEEP LEARNINGのPCT出願第PCT/IB2018/052638号明細書(代理人整理番号CS−17−06PCT)、
2018年4月15日付で出願された第一発明者Sean LIE及び名称WAVELET REPRESENTATION FOR ACCELERATED DEEP LEARNINGのPCT出願第PCT/IB2018/052610号明細書(代理人整理番号CS−17−03PCT)、
2018年4月15日付で出願された第一発明者Sean LIE及び名称NEURON SMEARING FOR ACCELERATED DEEP LEARNINGのPCT出願第PCT/IB2018/052607号明細書(代理人整理番号CS−17−01PCT)、
2018年4月15日付で出願された第一発明者Sean LIE及び名称DATAFLOW TRIGGERED TASKS FOR ACCELERATED DEEP LEARNINGのPCT出願第PCT/IB2018/052606号明細書(代理人整理番号CS−17−02PCT)、
2018年4月13日付けで出願された第一発明者Sean LIE及び名称FLOATING−POINT UNIT STOCHASTIC ROUNDING FOR ACCELERATED DEEP LEARNINGの国際出願第PCT/IB2018/052602号(代理人整理番号CS−17−11PCT)、
2018年4月11日付けで出願された第一発明者Sean LIE及び名称MICROTHREADING FOR ACCELERATED DEEP LEARNINGの米国仮特許出願第62/655,826号(代理人整理番号CS−17−08)、
2018年4月9日付けで出願された第一発明者Sean LIE及び名称BACKPRESSURE FOR ACCELERATED DEEP LEARNINGの米国仮特許出願第62/655,210号(代理人整理番号CS−17−21)、
2018年4月5日付けで出願された第一発明者Sean LIE及び名称TASK ACTIVATING FOR ACCEERATED DEEP LEARNINGの米国仮特許出願第62/652,933号(代理人整理番号CS−17−22)、
2018年2月23日付けで出願された第一発明者Sean LIE及び名称ACCELERATED DEEP LEARNINGの米国特許出願第15/903,340号(代理人整理番号CS−17−13NP)、
2018年2月23日付けで出願された第一発明者Sean LIE及び名称ACCELERATED DEEP LEARNINGの国際出願第PCT/IB2018/051128号(代理人整理番号CS−17−13PCT)
2018年2月9日付で出願された第一発明者Sean LIE及び名称FABRIC VECTORS FOR DEEP LEARNING ACCELERATIONの米国仮特許出願第62/628,784号(整理番号CS−17−05)、
2018年2月9日付で出願された第一発明者Sean LIE及び名称DATA STRUCTURE DESCRIPTORS FOR DEEP LEARNING ACCELERATIONの米国仮特許出願第62/628,773号(整理番号CS−17−12)、
2017年11月1日付で出願された第一発明者Sean LIE及び名称NEURON SMEARING FOR ACCELERATED DEEP LEARNINGの米国仮特許出願第62/580,207号(整理番号CS−17−01)、
2017年8月8日付で出願された第一発明者Sean LIE及び名称DATAFLOW TRIGGERED TASKS FOR ACCELERATED DEEP LEARNINGの米国仮特許出願第62/542,645号(整理番号CS−17−02)、
2017年8月8日付で出願された第一発明者Sean LIE及び名称TASK SYNCHRONIZATION FOR ACCELERATED DEEP LEARNINGの米国仮特許出願第62/542,657号(整理番号CS−17−06)、
2017年6月19日付で出願された第一発明者Sean LIE及び名称WAVELET REPRESENTATION FOR ACCELERATED DEEP LEARNINGの米国仮特許出願第62/522,065号(整理番号CS−17−03)、
2017年6月19日付で出願された第一発明者Sean LIE及び名称CONTROL WAVELET FOR ACCELERATED DEEP LEARNINGの米国仮特許出願第62/522,081号(整理番号CS−17−04)、
2017年6月15日付で出願された第一発明者Michael Edwin JAMES及び名称INCREASED CONCURRENCY AND EFFICIENCY OF DEEP NETWORK TRAINING VIA CONTINUOUS PROPAGATIONの米国仮特許出願第62/520,433号(整理番号CS−17−13B)、
2017年6月11日付で出願された第一発明者Sean LIE及び名称ACCELERATED DEEP LEARNINGの米国仮特許出願第62/517,949号(整理番号CS−17−14B)、
2017年4月17日付で出願された第一発明者Sean LIE及び名称ACCELERATED DEEP LEARNINGの米国仮特許出願第62/486,372号(整理番号CS−17−14)、
2017年4月14日付けで出願された第一発明者Sean LIE及び名称FLOATING−POINT UNIT STOCHASTIC ROUNDING FOR MACHINE LEARNINGの米国仮特許出願第62/485,638号(代理人整理番号CS−17−11)、並びに
2017年2月23日付で出願された第一発明者Michael Edwin JAMES及び名称INCREASED CONCURRENCY AND EFFICIENCY OF DEEP NETWORK TRAINING VIA CONTINUOUS PROPAGATIONの米国仮特許出願第62/462,640号(整理番号CS−17−13)。
本発明の1若しくはそれ以上の実施形態の詳細な説明を以下に、本発明の選択された細部を図示する添付図と共に提供する。本発明について実施形態に関連して説明する。本明細書における実施形態は、単なる例示であることが理解され、本発明は明らかに、本明細書における実施形態のいずれか又は全てに限定されず、本発明は、多くの代替、変更、及び均等物を包含する。説明での単調さを回避するために、様々な言葉のラベル(最初、最後、特定の、様々な、さらに、他の、特定の、選択、幾つか、及び顕著な等)が、別個の組の実施形態に適用されることがあり、本明細書で使用される場合、そのようなラベルは明らかに、品質又は任意の形態の嗜好又は偏見を意味するものではなく、単に別個の組を好都合に区別することが意味される。開示されるプロセスの幾つかの演算の順序は、本発明の範囲内で変更可能である。複数の実施形態がプロセス、システム、及び/又はプログラム命令特徴の変形を説明するように機能する場合は常に、所定又は動的に決定される基準に従って、複数のマルチ実施形態にそれぞれ対応する複数の動作モードの1つの静的及び/又は動的選択を実行する他の実施形態も考えられる。本発明の完全な理解を提供するために、以下の説明では、多くの特定の詳細が記載される。詳細は説明のために提供され、本発明は、詳細の幾つか又は全てなしで、特許請求の範囲に従って実施することができる。明確にするために、本発明に関連する当技術分野で既知の技術材料は、本発明が不必要に曖昧にならないように、詳細に説明しなかった。
導入部は、詳細な説明のより素早い理解を促進するためだけに包含され、本発明は、導入部に提示される概念(明白な例がある場合、明白な例を含む)に限定されず、任意の導入部の段落は必ずしも、趣旨全体の要約図であり、網羅的又は制限的な説明であることは意味されない。例えば、以下の導入部は、スペース及び編成により特定の実施形態のみに制限された概説情報を提供する。本明細書の残り全体を通して考察される、特許請求の範囲が最終的に描かれる実施形態を含め、多くの他の実施形態がある。
本明細書において定義される様々な簡略略語(例えば、頭字語)の少なくとも幾つかは、本明細書で使用される特定の要素を指す。
詳細な説明を結論付けるに当たり、以下は、本明細書に記載される概念による様々な実施形態タイプの追加説明を提供する少なくとも幾つかの、「EC」(組合せ例)として明示的に列挙されるものを含む実施例の集まりであり、これらの例は相互に排他的、網羅的、又は限定を意味せず、本発明はこれらの実施例に限定されず、発行される特許請求の範囲及びそれらの均等物内の可能な全ての変更及び変形を包含する。
メモリと、
命令を復号化する手段であって、命令はオペランドフィールドを有するものである、復号化する手段と、
少なくとも部分的にオペランドフィールドに基づいてオペランド記述子にアクセスする手段と、
オペランド記述子を復号化して、オペランド記述子が参照する複数のタイプの特定の1つを特定する手段と、
オペランド記述子及び特定のタイプに従ってオペランドにアクセスする手段と
を有し、
タイプは、ファブリックタイプ及びメモリタイプを有し、
計算要素は、ファブリックルータを有する処理要素に含まれ、処理要素は、各計算要素及び各ファブリックルータをそれぞれ有する処理要素のファブリックの1つであり、
処理要素は、各ファブリックルータに結合されたファブリックを介して相互接続され、
処理要素のファブリックは、データフローベースの処理及び命令ベースの処理を実行することができ、
処理要素のファブリックは、ウェーハスケール集積を介して実施され、
特定のタイプがファブリックタイプである場合、オペランドはファブリックを介してアクセスされ、
特定のタイプがメモリタイプである場合、オペランドはメモリを介してアクセスされる計算要素。
オペランド記述子により記述されるアクセスパターンに従って、繰り返しに十分なベクトルのデータ要素にアクセスすることを介して命令の繰り返しを実行する手段を有するものである計算要素。
ストール及びマイクロスレッド処理が可能ではないことを示すマイクロスレッド処理情報に応答して、計算要素をストールさせる手段を有するものである計算要素。
ストール及びマイクロスレッド処理が可能であることを示すマイクロスレッド処理情報に応答して、計算要素が第1の命令の処理を保留し、第2の命令を処理に選択する手段を有するものである計算要素。
計算要素において、命令を復号化する工程であって、命令はオペランドフィールドを有する、復号化する工程と、
計算要素において、少なくとも部分的にオペランドフィールドに基づいてオペランド記述子にアクセスする工程と、
計算要素において、オペランド記述子を復号化して、オペランド記述子が参照する複数のタイプの特定の1つを特定する工程と、
計算要素において、オペランド記述子及び特定のタイプに従ってオペランドにアクセスする工程と
を含み、
タイプは、ファブリックタイプ及びメモリタイプを有し、
計算要素は、ファブリックルータを有する処理要素に含まれ、処理要素は、各計算要素及び各ファブリックルータをそれぞれ有する処理要素のファブリックの1つであり、
処理要素は、各ファブリックルータに結合されたファブリックを介して相互接続され、
処理要素のファブリックは、データフローベースの処理及び命令ベースの処理を実行することができ、
処理要素のファブリックは、ウェーハスケール集積を介して実施され、
特定のタイプがファブリックタイプである場合、オペランドはファブリックを介してアクセスされ、
特定のタイプがメモリタイプである場合、オペランドは計算要素のメモリを介してアクセスされる方法。
オペランド記述子により記述されるアクセスパターンに従って、繰り返しに十分なベクトルのデータ要素にアクセスすることを介して命令の繰り返しを実行する工程を含むものである方法。
ストール及びマイクロスレッド処理が可能ではないことを示すマイクロスレッド処理情報に応答して、計算要素がストールする工程を含むものである方法。
ストール及びマイクロスレッド処理が可能であることを示すマイクロスレッド処理情報に応答して、計算要素が第1の命令の処理を保留し、第2の命令を処理に選択する工程を含むものである方法。
処理要素のファブリックであって、各処理要素は、計算要素に結合されたファブリックルータを有し、処理要素のファブリックは、データフローベースの処理及び命令ベースの処理を実行することができ、処理要素のファブリックは、ウェーハスケール集積を介して実施されるものである、処理要素のファブリック
を有し、
各処理要素は選択的に、少なくとも部分的に処理要素のそれぞれのファブリックルータを介して処理要素の他のものとファブリックパケットを通信することができ、
各計算要素はメモリを有し、
命令を復号化することであって、命令はオペランドフィールドを有するものである、復号化することと、
少なくとも部分的にオペランドフィールドに基づいてオペランド記述子にアクセスすることと、
オペランド記述子を復号化して、オペランド記述子が参照する複数のタイプの特定の1つを特定することであって、複数のタイプはファブリックタイプ及びメモリタイプを有するものである、復号化して特定することと、
オペランド記述子及び特定のタイプに従ってオペランドにアクセスすることと
を行うことができ、
オペランドのアクセスは、特定のタイプがファブリックタイプである場合、計算要素に結合されたファブリックルータのそれぞれを介し、
オペランドのアクセスは、特定のタイプがメモリタイプである場合、メモリを介するシステム。
命令を復号化する工程であって、命令はオペランドフィールドを有する、復号化する工程と、
少なくとも部分的にオペランドフィールドに基づいてオペランド記述子にアクセスする工程と、
オペランド記述子を復号化して、オペランド記述子が参照する複数のタイプの特定の1つを特定する工程と、
オペランド記述子及び特定のタイプに従ってオペランドにアクセスする工程と
を含み、
タイプは、ファブリックタイプ及びメモリタイプを有する方法。
繰り返しに十分なベクトルのデータ要素にアクセスすることに従って命令の繰り返しを実行する工程を含み、アクセスパターンに従ってオペランドにアクセスする工程は、オペランド記述子により記述されるものである方法。
ストライド情報を1若しくはそれ以上のストライド記憶ロケーションから読み出す工程を含むものである方法。
ストール及びマイクロスレッド処理が可能ではないことを示すマイクロスレッド処理情報に応答して、計算要素がストールする工程を含むものである方法。
ストール及びマイクロスレッド処理が可能であることを示すマイクロスレッド処理情報に応答して、計算要素が第1の命令の処理を保留し、第2の命令を処理に選択する工程を含むものである方法。
処理要素のファブリックであって、各処理要素は、ファブリックルータ及び計算要素を有するものである、処理要素のファブリック
を有し、
各処理要素は選択的に、少なくとも部分的に処理要素のファブリックルータを介して処理要素の他のものとファブリックパケットを通信することができ、
各計算要素は、
命令を復号化することであって、命令は1若しくはそれ以上のオペランドフィールドを有するものである、復号化することと、
少なくとも部分的にオペランドフィールドにそれぞれ基づいて、1若しくはそれ以上のオペランド記述子のそれぞれにアクセスすることと、
各オペランド記述子を復号化して、各オペランド記述子が参照する複数のタイプの対応する特定のそれぞれ1つを特定することと、
各オペランド記述子及び対応する特定の各タイプに従って各オペランドにアクセスすることと
を行うことができ、
タイプはファブリックタイプ及びメモリタイプを有するシステム。
オペランド記述子を記憶ロケーションに書き込む工程であって、オペランド記述子は複数のタイプの特定の1つを指定するものである、書き込む工程と、
オペランド記述子及び特定のタイプに従ってオペランドにアクセスする工程と
を含み、
タイプはファブリックタイプ及びメモリタイプを有する方法。
ディープ・ラーニング・アクセラレータ・ハードウェア要素及びソフトウェア要素を有するニューラル・ネットワーク・トレーニング及び推論に関連する実施形態について本明細書に記載する(例えば、図1〜図4及び「ディープ・ラーニング・アクセラレータ概説」セクション参照)。ディープ・ラーニング・アクセラレータは、ハードウェア処理要素を有する(例えば、図5〜図8並びに「ファブリック概説」及び「処理要素:計算要素及びルータ」セクション参照)。ディープ・ラーニング・アクセラレータは、タスク開始及びタスクブロック/ブロック解除(例えば、図9A〜図9C並びに「タスク開始」及び「タスクのブロック及びブロック解除」セクション参照)、ニューロンからプロセッサ要素へのマッピング及び関連するデータフロー(例えば、図10A及び図10B並びに「高レベルデータフロー」セクション参照)、タスク状態機械及びクローズアウト(例えば、図11及び図12並びに「一例の作業負荷及び例示的なタスク」セクション参照)、ウェーブレット処理(例えば、図13A〜図16及び「ウェーブレット」セクション参照)、ニューロンスメアリング(例えば、図17〜図20及び「ニューロンスメアリング」セクション参照)、ファブリックベクトル、メモリベクトル、及び関連するデータ構造記述子(例えば、図21A〜図24及び「ベクトル及びデータ構造記述子」セクション参照)、並びに命令フォーマット(例えば、図25A〜図25C及び「命令フォーマット」セクション参照)を含むタスク等の様々な技法を実施及び/又は使用する。ディープ・ラーニング・アクセラレータのハードウェア処理要素は、ストール時、仕事を実行することができる(例えば、図26及び「マイクロスレッド処理」セクション参照)。ディープ・ラーニング・アクセラレータは、様々なシナリオで使用可能である(例えば、図27A〜図28E及び「ディープ・ラーニング・アクセラレータの使用例」セクション参照)。ディープ・ラーニング・アクセラレータは任意選択で、任意選択な確率的丸めを用いた浮動小数点を提供する(例えば、図29、図30A〜図30D、及び図31並びに「浮動小数点演算の状況及び確率的丸め演算」セクション参照)。ディープ・ラーニング・アクセラレータは、大規模ディープ・ニューラル・ネットワークに拡張可能である(例えば、「大規模ディープ・ラーニング・ネットワークへの拡張可能性」セクション参照)。ディープ・ラーニング・アクセラレータは、様々な実施形態において意図される(例えば、「他の実施形態の詳細」セクション参照)。ディープ・ラーニング・アクセラレータは様々に実施可能である(例えば、「実施技法例」セクション参照)。
図1は、ニューラル・ネットワーク・システム100として、ディープ・ラーニング・アクセラレータを使用するニューラル・ネットワーク・トレーニング及びインターフェースのシステムの一実施形態の選択された細部を図示する。概念的に、ニューラルネットワークは、ディープ・ラーニング・アクセラレータを使用してトレーニングされる。次に、トレーニングの1若しくはそれ以上の結果(例えば、重み)を推論に使用する。例えば、トレーニングは、ニューラルネットワークのニューロンをディープ・ラーニング・アクセラレータのPEにマッピングすることを含む。次に、トレーニングデータがPEに適用される。PEはトレーニングデータを処理し(例えば、順方向パス、デルタパス、及びチェインパスを介して)、トレーニングが完了するまで、重みを更新する。次に、重みは推論に使用される。
図4に図示されるように、ディープ・ラーニング・アクセラレータの一実施形態は、ファブリックを介して互いに結合された複数のPEを有する。各PEはCE(例えば、計算を実行する)及びルータ(例えば、ファブリックについての情報の移動を管理及び/又は実施する)を含む。
図5は、ディープ・ラーニング・アクセラレータのPE500としてPEの一実施形態の選択された細部を図示する。PE500はルータ510と、計算要素520とを有する。ルータ510は選択で及び/又は条件付きで、結合511〜516を介して他のPE(例えば、論理的及び/又は物理的に隣接するPE)とPE500との間でウェーブレットを通信(例えば、送受信)する。結合511〜516は、結合上のウェーブレットの双方向通信を強調するために、双方向矢印として図示されている。背圧情報はまた、背圧が対応するウェーブレット情報の逆方向で結合上を送信される。ルータ510は選択で及び/又は条件付きで、オフランプ(Off Ramp)521を介してPE500(例えば、計算要素520)にウェーブレットを通信し、オンランプ(On Ramp)522を介してPE500(例えば、計算要素520)からウェーブレットを通信する。オフランプ521は、結合上のウェーブレットの単方向通信(例えば、ルータ510から計算要素520へ)を強調するために、単方向矢印として図示されている。背圧情報はまた、ウェーブレット情報の逆方向(例えば、計算要素520からルータ510へ)に結合上を送信される。オンランプ522は、結合上のウェーブレットの単方向通信(例えば、計算要素520からルータ510へ)を強調するために、単方向矢印として図示されている。背圧情報はまた、ウェーブレット情報の逆方向(例えば、ルータ510から計算要素520へ)において結合上を送信される。
図9Aは、フロー900としてタスク開始のウェーブレットを処理する一実施形態の選択された細部を図示する。概念的には、処理は、タスクの命令のフェッチ及び実行を開始するアドレスを特定することによってタスクを開始することを含む。アドレスは、少なくとも部分的にウェーブレットが含む情報に基づいて特定される。
様々な実施形態及び/又は使用状況では、CE800の命令セットは、ブロック命令及びブロック解除命令並びに特にタスク同期に有用なアクティベーション演算(例えば、アクティベーション命令)を実行することができる命令を有する。図2のPE上のタスクSW260は、ブロック命令及びブロック解除命令並びにアクティベーション演算を実行することができる命令を使用して、選択的に、様々な目的に合うようにファブリック演算の様々な態様をローカルに整形することができる。例えば、PE上のタスクSW260は、これらの命令を使用して、1若しくはそれ以上のタスクの計算及び/又は通信の調整、データフロー制御、タスク内及びタスク間の依存性及び/又は優先度の管理、概ね等しい平均生成率及び平均消費率を有するようにキューを間接的に管理するためのタスク活動のスロットル調整(ストール/再開)並びに多様な待ち時間の複数のソース及び/又はパスから集まる中間データを同期させるソフトウェアインターロックの実施(例えば、ニューラルネットワーク層の境界付近の順方向及び/又は逆方向パス計算において生じるような、この態様は図11、図12、及び図28A〜図28Eに様々に示される)の1若しくはそれ以上を実行することができる。
図10A及び図10Bは、例えば、図1の配置サーバ150で実行される図2のニューロンからPEへのマッピングSW212により決定される、プロセッサ要素の各組に1つのニューロンの複数のインスタンスをマッピングする一実施形態において生じる高レベルデータフローの選択された細部を図示する。図10Aは、図17等のより大規模なニューラルネットワークの内部ニューラルネットワーク部分1040を抽象的に図示する。ニューラルネットワーク部分1040は、第1のニューロン層(左側)に3つのニューロンを有し、第2のニューロン層(右側)に3つのニューロンを有する。第1のニューロン層は、ニューロンA 1041、ニューロンB 1042、及びニューロンC 1043を含む。第2のニューロン層は、ニューロンD 1044、ニューロンE 1045、及びニューロンF 1046を含む。ニューロンA 1041からのアクティベーションaA 1061、ニューロンB 1042からのアクティベーションaB 1062、及びニューロンC 1043からのアクティベーションaC 1063はそれぞれ、それぞれ非ゼロである場合、第2のニューロン層にブロードキャストされ、図示されるようにトポロジに従って、ニューロンD 1044、ニューロンE 1045、及びニューロンF 1046に通信される。ニューロンD 1044からのアクティベーションaD 1064、ニューロンE 1045からのアクティベーションaE 1065、及びニューロンF 1046からのアクティベーションaF 1066はそれぞれ、それぞれ非ゼロである場合、次の層(図示せず)にブロードキャストされる。非ゼロアクティベーションのみがブロードキャストされるため、ゼロアクティベーションに無駄な計算が使用されない。このようにして、アクティベーションの疎性はウェーハにわたり累積されて、効率を改善し、消費電力を低減する。
概念上、ディープ・ラーニング・アクセラレータ400(図4)は、プログラマブル計算ファブリックである(例えば、図5〜図8及び「処理要素:計算要素及びルータ」セクション参照)。例えば、各PE499要素の計算要素は、タスクの一連の命令を実行することができ(概念上、図2のPE上のタスクSW260の命令の実行の全て又は任意の部分に対応する等)、各PE499の各ルータ要素は、PE間でウェーブレットをルーティングするように構成可能である。プログラマブル計算ファブリックは、様々な様式で作業負荷を計算ファブリックにマッピングできるようにする。以下に記載するのは、計算ファブリックへの作業負荷の一例の高レベルマッピングであり、計算ファブリックにより実施される様々な技法及びメカニズムを図示する。
図13Aは、スパースウェーブレット1301としてスパースウェーブレットの一実施形態の選択された細部を図示する。スパースウェーブレット1301は、スパース・ウェーブレット・ペイロード1302と、カラー1324とを有する。スパース・ウェーブレット・ペイロード1302は、インデックス1321と、スパースデータ1322と、制御ビット1320とを有する。インデックス1321は、下位インデックスビット1321.1と、上位インデックスビット1321.2とを有する。
図17は、ニューラルネットワーク1700としてニューラルネットワークの一実施形態の選択された細部を示す。ネットワーク1700は、3つの部分:入力レイヤ1710と、内部レイヤ1720と、出力レイヤ1740とを有する。各レイヤは複数のニューロンを有する。入力レイヤ1710は、ニューロンN11 1711、N12 1712、及びN13 1713を有する。内部レイヤ1720は、ニューロンN21 1721、N22 1722、N23 1723、及びN24 1724の第1のレイヤを有し、それに続けてニューロンN31 1731、N32 1732、及びN33 1733の第2のレイヤを有する。出力レイヤ1740はニューロンN41 1741及びN42 1742を有する。
様々な実施形態及び/又は使用状況では、それぞれがデータ要素の1若しくはそれ以上をそれぞれ有する1若しくはそれ以上のベクトルの処理が実行される。ベクトルは様々にメモリ(例えば、図8のメモリ854又はDストア848等のPEのCEの)から読み取られ、メモリに書き込まれ、ファブリックから受信され、又はファブリックに送信される。メモリから読み取られたベクトル又はメモリに書き込まれたベクトルは、「メモリベクトル」と呼ばれることもある。ファブリックから受信したベクトル又はファブリックに送信されたベクトル(例えば、ウェーブレットとして)は、「ファブリックベクトル」と呼ばれることがある。DSRからのDSD(及びXDSRからのXDXD)は、メモリベクトルのアドレス指定パターン及びファブリックベクトルのアクセスパターンの決定に使用可能である。
最初の数字が「8」の図25A〜図25Cの説明での各要素識別子は、図8の要素を指し、簡潔にするために、その他の点では図8の要素であるものとして特に識別されない。
図26は、マイクロスレッド処理命令フロー2600としてマイクロスレッド処理された命令に従った処理の選択された細部を図示する。幾つかの実施形態では、フロー2600の動作はCE(例えば、CE800)により実行される。様々な実施形態及び/又は使用状況では、フロー2600は観念上、図23のフロー2300、図21Aのファブリック入力データ構造記述子2100、及び図21Bのファブリック出力データ構造記述子2120に関連する。
様々な実施形態及び/又は使用状況では、本明細書の他の箇所に記載されるように、PEのファブリック(例えば、ウェーハスケール集積を介して実施され、例えば、図4に図示されるような)等のディープ・ラーニング・アクセラレータは、ニューラルネットワークのトレーニング及び/又はトレーニングされたニューラルネットワークに関して推論を実行するのに使用可能である。トレーニングは、幾つかの状況では、トレーニング刺激に応答してニューラルネットワークの重みを決定することを含む。確率勾配降下(Stochastic Gradient Descent:SGD)、ミニバッチ勾配降下(Mini−Batch Gradient Descent:MBGD)、連続伝搬勾配降下(Continuous Propagation Gradient Descent:CPGD)、及びリバース・チェック・ポイント(Reverse CheckPoint:RCP)等の様々な技法がトレーニングに使用可能である。以下、CPGDを他の技法と対比し、次に、SGD、MBGD、CPGD、及びRCPのそれぞれについてより詳細に説明する。
幾つかの状況では、FP計算により、数フォーマットにより表現可能なものよりも高い精度を有する値が生成される。例えば、丸めなしの場合、FP乗算結果は入力の精度の2倍である。丸めは、追加の精度の除去に使用され、例えば、結果は数フォーマットと同じ精度である。IEEE754規格は、5つの異なる(決定論的)丸めモードを記載している。2つのモードは最近値に丸めるが、均衡を破るために異なるルールが用いられる。幾つかの計算のデフォルトモードは、最近に丸められ、均衡はULPにおいて「0」を有する最近値に丸められる。第2のモードは最近に丸められ、均衡はゼロから離れて丸められる。3つのモードは特定のルールに従って丸められる。ゼロへの丸めは切り捨てに等しく、単にULP後の全てのビットを除去する。無限への丸めは切り上げに等しく、負の無限大への丸めは切り下げに等しい。IEEE754FP算術は時折、5つの丸めモードの1つに従って実行されることがある。
ディープ・ニューラル・ネットワーク(DNN)を実施するハードウェアアーキテクチャの評価における考慮事項は、DNNに関連付けられた重みの記憶要件と比較したハードウェアの記憶容量である。重みは、ニューラルネットワークのパラメータの一例である。しかしながら、順方向部分和、アクティベーション(これに限定されるものではないが、層出力を含む)、及び他の実施オーバーヘッド(例えば、畳み込みの)に求められる追加の記憶は、幾つかの状況では、重みの記憶要件と比較してささやかである。学術的及び産業的ベンチマークの状況では、人気のあるDNNにはLeNet−5、AlexNet、VGG−16、GoogLeNet(v1)、及びResNet−50がある。人気のあるDNNは4層から50層の範囲であり、全層にわたり合計で341k〜15.5GのMAC(乗累算)演算を必要とし、60k〜138Mの重みを必要とする。各重みが16ビット精度を必要とすると仮定すると、任意のあるDNNは、トレーニング後、重みだけで120kB〜276MBの記憶要件を有する。32ビット精度の場合、要件は2倍になる。トレーニング中、例えば、勾配累積、デルタ部分和、層エラー、及び複製重みのために追加の記憶が必要とされる。幾つかのトレーニング方法(例えば、ミニバッチ)では、重みは複数回複製され、それに従って重み記憶要件を増大させる。
図1〜図31に関して説明した実施形態及び使用状況は概念的に、プログラマブルである、例えば、命令に従ってデータを処理するCEを有するPEに関する。部分的又は全体的に接続されている、例えば、命令なしで動作可能な1若しくはそれ以上の固定回路処理要素に従ってデータを処理するCEの1若しくはそれ以上を有する他の実施形態も考えられる。特定の例として、特定のCEは、LSTMユニットの全て又は一部を実施するハードウェア論理ユニット回路を有する。特定のCEは、他のPEを有するファブリックで動作可能な特定のPE内のルータを有する。他のPEの幾つかは、特定のPEと同様又は同一であり、他のPEの幾つかは、図4のPE499と同様又は同一である。
幾つかの実施形態では、加速化ディープラーニング、加速化ディープラーニングの確率的丸め、加速化ディープラーニングのマイクロスレッド処理、加速化ディープラーニングのタスクアクティベーション、加速化ディープラーニングの背圧、加速化ディープラーニングのデータ構造記述子及びファブリックベクトル、加速化ディープラーニングのニューロンスメアリング、加速化ディープラーニングのタスク同期、加速化ディープラーニングのデータフロー・トリガー・タスク、加速化ディープラーニングの制御ウェーブレット、及び/又は加速化ディープラーニングのウェーブレット表現のいずれかに実行される動作及び/又は関連付けられた構造の全て又は任意の部分及びプロセッサ、マイクロプロセッサ、システムオンチップ、特定用途向け集積回路、ハードウェアアクセラレータ、又は上記動作の全て又は部分を提供する他の回路の部分の様々な組合せが、コンピュータシステムによる処理と互換性がある用途により指定される。仕様は、ハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、又はレイアウト記述等の様々な記述に従う。記述例には、Verilog、VHDL、SPICE、PSpice等のSPICEバリアント、IBIS、LEF、DEF、GDS−II、OASIS、又は他の記述がある。様々な実施形態では、処理は、1若しくはそれ以上の集積回路への包含に適する論理及び/又は回路を生成、検証、又は指定するための解釈、コンパイル、シミュレーション、及び合成の任意の組合せを含む。各集積回路は、様々な実施形態によれば、様々な技術による設計及び/又は製造と互換性がある。技法は、プログラマブル技法(フィールド又はマスクプログラマブル・ゲート・アレイ集積回路等)、セミカスタム技法(全体的又は部分的にセルベースの集積回路等)、及びフルカスタム技法(実質的に専用の集積回路等)、それらの任意の組合せ、又は集積回路の設計及び/又は製造と互換性がある任意の他の技法を含む。
特定の選択は、説明において、テキスト及び図面を準備するに当たり単に好都合であるため、行われ、逆の指示がない限り、選択はそれ自体、記載される実施形態の構造又は動作に関して追加情報を伝達するものとして解釈されるべきではない。選択の例には、図の付番に使用される名称の特定の編成又は割り当て及び実施形態の特徴及び要素の識別及び参照に使用される要素識別子(例えば、呼称又は数値指示子)の特定の編成又は割り当てがある。
110 結合サーバ
111 LAN
112 100Gb
113 配置
114 重み
115 重み
120 ディープ・ラーニング・アクセラレータ
121 FPGAs
122 PEs
123 結合
130 自律車両
131 CPUs
132 CRM
133 IEs
135 カメラ
140 携帯電話
141 CPUs
142 CRM
143 IEs
145 カメラ
150 配置サーバ
151 CPUs
152 CRM
160 接続サーバ
161 CPUs
162 CRM
164 NICs
180 インターネット
200 ニューラル・ネットワーク・ソフトウェア
210 配置サーバSW
212 ニューロンからPEへのマッピングSW
220 接続サーバSW
224 100Gb NICドライバ
225 トレーニング情報プロバイダSW
226 重み受信機SW
230 自律車両SW
232 ビデオカメラSW
233 推測エンジンSW
234 ナビゲートSW
240 携帯電話SW
242 静止カメラSW
243 推測エンジンSW
244 掲示SW
250 FPGA上の種々SW
260 PE上のタスクSW
300 ニューラル・ネットワーク・トレーニング/推論、全体
310 ニューロン配置
320 FPGA初期化
330 PE初期化
340 トレーニングデータ=>PE
350 順方向パス、デルタパス、チェインパス、重み更新
360 トレーニング完了?
370 重み出力
380 重みを推論に使用
400 ディープ・ラーニング・アクセラレータ
401 順方向
402 デルタ
403 チェイン
410 ASIC
411 ASIC
412 ウェーハ
420 I/O FPGA
430 北結合
431 東結合
432 南結合
433 西結合
497 特定のPE
498 特定のPE
499 PE
500 PE
510 ルータ
511 西
512 西スキップ
513 北
514 東スキップ
515 東
516 南
520 計算要素
521 オフランプ
522 オンランプ
600 ルータ
610 データイン
611 スキップX+
612 スキップX−
613 X+
614 X−
615 Y+
616 Y−
617 オンランプ
620 データアウト
621 スキップX+
622 スキップX−
623 X+
624 X−
625 Y+
626 Y−
627 オフランプ
630 ストールアウト
631 スキップX+
632 スキップX−
633 X+
634 X−
635 Y+
636 Y−
637 オンランプ
640 ストールイン
641 スキップX+
642 スキップX−
643 X+
644 X−
645 Y+
646 Y−
647 オフランプ
650 データキュー
651 書き込みデコーダ
652 アウト
653 発信元
654 スケジュール済みルータ
656 ストール生成
657 ストール
660 制御情報
661 宛先
662 送信元
670 Src
710 ウェーブレットイングレス
711 ウェーブレットを待つ
712 ウェーブレットを受信
713 ウェーブレット=>ルータQ
740 背圧情報を生成し提供、全体
741 PEのCE
742 PEのルータ
743 開始
744 閾値を超える入力Qを判断
745 入力Qに関連するカラーを特定
746 ストール/使用可能をルータに提供
747 ストール/使用可能に従ってウェーブレットをCEに提供
748 終わり
750 背圧情報の生成及び提供、全体
751 PEのルータ
752 PEのCE
753 近傍のルータ
755 開始
756 閾値を超えるデータキューを判断
757 カラーソースをチェック
758 CE、近傍のストール/使用可能カラーを判断
759 ストール/使用可能をCE、近傍に提供
760 ストール/使用可能に従ってウェーブレットをルータに提供
761 ストール/使用可能に従ってウェーブレットをルータに提供
762 終わり
780 ストール処理、全体
781 PEのCE
782 開始
783 満杯出力Qを特定
784 出力Qに関連付けられたカラーを特定
785 満杯出力Qに関連付けられたカラーの処理をストール
786 終わり
800 CE
812 終了
820 オフランプ
822 ハッシュ
824 Qdistr
830 ピッカー
834 PC
836 I配列
837 オンランプ
840 デコーダ
842 RF
844 D配列
845 UT状態
846 DSRs
847 オフランプ
848 Dストア
852 データパス
854 メモリ
859 出力キュー
859.0 出力Q0
859.N 出力QN
860 オンランプ
890 ベース
896 スケジューリング情報
897 入力Q
897.0 入力Q0
897.N 入力QN
898 アクティブビット
898.0 アクティブビット0
898.N アクティブビットN
899 ブロックビット
899.0 ブロックビット0
899.N ブロックビットN
900 タスク初期化のウェーブレット処理、全体
901 開始
902 タスク開始に使用可能なウェーブレットを選択
903 制御/データ?
904 (カラー*4)をベースレジスタに追加して、命令アドレスを形成
905 メモリの命令アドレスから命令をフェッチ
906 フェッチされた命令を実行
908 終了せず
909 終了
910 下位インデックスビットをベースレジスタに追加して、命令アドレスを形成
919 終わり
920 タスクアクティベーション、全体
921 開始
923 カラーの演算をアクティベート
924 カラーをアクティベート
925 ピッカーはカラーを選択
926 タスクを開始、カラーを非アクティベーション
929 終わり
940 ブロック及びブロック解除命令処理フロー、全体
941 開始
942 命令をフェッチし実行
943 ブロック命令?
944 カラーをブロック
945 ブロック解除命令?
946 カラーをブロック解除
947 命令を実行
949 終わり
1040 ニューラルネットワーク部分
1041 (ニューロン)A
1042 (ニューロン)B
1043 (ニューロン)C
1044 (ニューロン)D
1045 (ニューロン)E
1046 (ニューロン)F
1060 処理要素アレイ部分
1061 (アクティベーション)aA
1062 (アクティベーション)aB
1063 (アクティベーション)aC
1064 (アクティベーション)aD
1065 (アクティベーション)aE
1066 (アクティベーション)aF
1070 PE0
1071 PE1
1072 PE2
1073 PE3
1074 PE4
1075 PE5
1076 PE6
1077 PE7
1078 PE8
1080 (重み)wAD
1081 (重み)wAE
1082 (重み)wAF
1083 (重み)wBD
1084 (重み)wBE
1085 (重み)wBF
1086 (重み)wCD
1087 (重み)wCE
1088 (重み)wCF
1090 PSA
1091 PSA
1092 PSA
1101 f_rxact:acc
1102 f_rxact:close
1103 f_psum:prop
1104 f_txact:tx
1111 前の層からのアクティベーション
1112 前の層からのクローズアウト
1113 フロー
1114 ウェイク
1115 再スケジュール
1116 Psum開始
1121 次の層へのアクティベーション
1122 次の層へのクローズアウト
1130 Psumプロップ
1131 Psumプロップ
1200 活性化累積/クローズアウト及び部分和計算/クローズアウト、全体
1201 開始
1202 アクティベーションを受信
1203 アクティベーションを累積
1204 アクティベーションクローズアウトを受信
1205 部分和リングを開始
1206 部分和を受信
1207 部分和を計算
1208 部分和を送信
1209 アクティベーションを送信
1210 クローズアウトを送信
1211 終わり
1301 スパースウェーブレット
1302 スパース・ウェーブレット・ペイロード
1320 制御ビット
1321 インデックス
1321.1 下位インデックスビット
1321.2 上位インデックスビット
1322 スパースデータ
1324 カラー
1331 高密度ウェーブレット
1332 高密度ウェーブレットペイロード
1340 制御ビット
1343.1 高密度データ
1343.2 高密度データ
1344 カラー
1400 ウェーブレット作成フロー、全体
1401 開始
1402 PEを初期化
1403 発信元を設定
1404 宛先(ファブリック)DSRを設定
1405 宛先DSRを有する命令をフェッチ/復号化
1406 DSRを読み取る
1407 キュー/メモリから(次の)発信元データ要素を読み取る
1408 データ要素をウェーブレットとして出力キューに提供
1409 まだデータ要素があるか?
1411 ウェーブレットをファブリックに送信
1412 ファブリックからウェーブレットを受信
1410 終わり
1420 送信PEのCE
1430 送信PEのルータ
1440 受信PEのルータ
1500 ウェーブレット受信フロー、全体
1501 開始
1502 PEを初期化
1503 ルータにおいてウェーブレットを受信
1504 他のPEへ?
1505 ウェーブレットを出力に送信
1506 ローカルCEへ?
1507 ウェーブレットをピッカーキューに書き込む
1510 終わり
1520 受信PEのルータ
1530 受信PEのCE
1600 ウェーブレット消費フロー、全体
1601 開始
1602 ピッカーは処理するウェーブレットを選択
1603 命令をフェッチし実行
1604 終わり
1700 ニューラルネットワーク
1710 入力レイヤ
1711 N11
1712 N12
1713 N13
1720 内部レイヤ
1721 N21
1721.1, 1721.2 それぞれ1/2 N21部分
1722 N22
1722.1, 1722.2 それぞれ1/2 N22部分
1723 N23
1723.1, 1723.2 それぞれ1/2 N23部分
1724 N24
1724.1, 1724.2 それぞれ1/2 N24部分
1731 N31
1731.1, 1731.2, 1731.3, 1731.4 それぞれ1/4 N31部分
1732 N32
1732.1, 1732.2, 1732.3, 1732.4 それぞれ1/4 N32部分
1733 N33
1740 出力レイヤ
1741 N41
1742 N42
1791 通信
1791.1 通信部分
1792 通信
1792.1 通信部分
1793 通信
1793.1 通信部分
1820 PE0
1821 PE1
1822 PE2
1823 PE3
1824 PE4
1825 PE5
1910 in0
1911 in1
1912 in2
1913 in3
1914 in4
1915 in5
1920 out0
1921 out1
1922 out2
1923 out3
1924 out4
1925 out5
1930.1 1/2ローカル計算
1930.2 1/2ローカル計算
1940.1 1/2ローカル記憶
1940.2 1/2ローカル記憶
1950.1 追加の計算
1950.2 追加の計算
1960.1 追加の記憶
1960.2 追加の記憶
1970 追加の通信
2000 ウェーハ部分
2040,2041,2043,2044 それぞれ隣接PE間の結合
2050,2051,2052,2053,2054,2055,2056,2057 それぞれ隣接PE間の結合の部分
2060 通信
2100 ファブリック入力データ構造記述子
2101 長さ
2102 UTID(マイクロスレッド識別子)
2103 UE(マイクロスレッドイネーブル)
2104 SW(SIMD幅)
2105 AC(カラー活性化)
2106 Term(制御ウェーブレット時にマイクロスレッドを終了)
2107 CX(制御ウェーブレット変換イネーブル)
2108 US(マイクロスレッド・スパース・モード)
2109 タイプ
2110 SS(シングルステップ)
2111 SA(アドレス保存/条件付きシングル・ステップ・モード)
2112 SC(カラー指定,通常モード)
2113 SQ(キュー指定,通常モード)
2114 CH(カラー,ハイビット)
2120 ファブリック出力データ構造記述子
2121 長さ
2122 UTID(マイクロスレッド識別子)
2123 UE(マイクロスレッドイネーブル)
2124 SW(SIMD幅)
2125 AC(カラー活性化)
2126 カラー
2127 C(出力制御ビット)
2128.1 インデックスロー
2128.2 インデックスハイ
2129 タイプ
2130 SS(シングルステップ)
2131 SA(アドレス保存/条件付きシングル・ステップ・モード)
2132 WLI(ウェーブレットインデックス選択)
2140 1Dメモリデータ構造記述子
2141 長さ
2142 ベースアドレス
2149 タイプ
2150 SS(シングルステップ)
2151 SA(アドレス保存/条件付きシングル・ステップ・モード)
2152 WLI(ウェーブレットインデックス選択)
2153 ストライド
2160 4Dメモリデータ構造記述子
2161 長さ
2161.1 長さ下位ビット
2161.2 長さ上位ビット
2162 ベースアドレス
2169 タイプ
2170 SS(シングルステップ)
2171 SA(アドレス保存/条件付きシングル・ステップ・モード)
2172 WLI(ウェーブレットインデックス選択)
2180 循環メモリ・バッファ・データ構造記述子
2181 長さ
2182 ベースアドレス
2184 SW(SIMD幅)
2188 FW(FIFOラップビット)
2189 タイプ
2190 SS(シングルステップ)
2191 SA(アドレス保存/条件付きシングル・ステップ・モード)
2192 WLI(ウェーブレットインデックス選択)
2210 循環メモリバッファ拡張データ構造記述子
2211 タイプ
2212 開始アドレス
2213 終了アドレス
2214 FIFO
2215 カラープッシュ(活性化)
2216 カラーポップ(活性化)
2240 4Dメモリベクトル拡張データ構造記述子
2241 タイプ
2242 次元
2243 DF(次元フォーマット)
2244.1 ストライド選択(次元について)1
2244.2 ストライド選択(次元について)2
2244.3 ストライド選択(次元について)3
2244.4 ストライド選択(次元について)4
2245 ストライド
2300 データ構造記述子フロー、全体
2301 開始
2302 DSRを設定
2303 DSRを用いて命令をフェッチ/復号化
2304 DSRを読み取る
2305 (任意選択)XDSRを設定
2306 (任意選択)XDSRを読み取る
2310 (次の)ソースデータ要素をキュー/メモリから読み取る
2310A キュー/メモリから(次の)発信元データ要素を読み取る
2311 データ要素に対して(次の)演算を実行
2312 (次の)宛先データ要素をキュー/メモリに書き込む
2313 データ要素がまだあるか?
2316 終わり
2400 データ構造記述子復号化フロー、全体
2401 開始
2410 ファブリックベクトル
2411 タイプ=ファブリック?
2412 DSDを介してアクセス
2420 メモリベクトル
2421 タイプ=XDSR?
2422 DSDを介して指定されたXDSRを読み取る
2423 タイプ=4Dベクトル?
2424 (任意選択)ストライドレジスタを読み取る
2427 DSDを介して1Dにアクセス
2428 XDSDを介して4Dにアクセス
2429 XDSDを介して循環バッファにアクセス
2499 終わり
2510 複数オペランド命令
2511 命令タイプ
2512 演算コード
2513 オペランド0符号化
2513.1 オペランド0タイプ
2513.2 オペランド0
2514 オペランド1符号化
2514.1 オペランド1タイプ
2514.2 オペランド1
2515 終了
2520 1発信元0宛先オペランド命令
2521 命令タイプ
2522 演算コード
2523 オペランド1符号化
2523.1 オペランド1タイプ
2523.2 オペランド1
2524 即値
2525 終了
2530 即値命令
2531 命令タイプ
2532 演算コード
2533.2 オペランド0
2534.1 即値ロー
2534.2 即値ハイ
2534 即値
2600 マイクロスレッド処理された命令フロー、全体
2603 ストール?
2605 ストール解決?
2606 マイクロスレッド処理が可能?
2607 マイクロスレッド処理された命令の情報を保存
2608 次の命令を実行
2609 ストール解決?
2610 (次の)ソースデータ要素をキュー/メモリから読み出す
2711 第1の順方向パス
2712 第2の順方向パス
2721 第1の逆方向パス
2722 第2の逆方向パス
2731 ミニバッチサイズ(N)
2732 オーバーヘッド
2733 更新間隔(U)
2751 順方向パス
2761 逆方向パス
2765 順方向パス
2766 逆方向パス
2767 重み更新使用
2771 順方向パス
2781 逆方向パス
2785 活性化記憶
2786 再計算された活性化の記憶
2801 前のレイヤ
2802 後続レイヤ
2803 前のレイヤ
2804 後続レイヤ
2810 計算
2811 F
2812 B
2815 記憶
2816 A
2817 W
2818 W
2820 計算
2821 F
2822 B
2825 記憶
2826 A
2827 W
2828 W
2829 A
2830 計算
2835 記憶
2840 計算
2845 記憶
2881 A1,t
2882 A2,t
2883 A3,t
2884 A'2,t
2891 Δ1,t
2892 Δ2,t
2893 Δ3,t
2894 Δ'1,t
2895 Δ'2,t
2896 Δ'3,t
2900 プロセッサ
2901 浮動小数点ユニット(FPU)
2911 乗算器
2912 累積器
2913 正規化器
2914 インクリメンタ
2915 指数DP (データパス)
2920 命令復号化論理
2921 乱数生成器(RNGs)
2922 Nビット加算器
2925 FP制御レジスタ
2925.1 静的丸めモードビット
2925.2 静的RNGビット
2925.3 FTZ(ゼロにフラッシュ)
2925.4 最大充足
2925.5 最小充足
2950 命令
2951 Src A
2952 Src B
2953 即値結果
2954 Src C
2955 仮数
2955.1 先行ゼロ
2955.2 他のビット
2956 正規化仮数
2957.1 N最上位下位ビット
2958 丸めを受ける仮数ビット
2961 RNGセレクタ
2962 Nビット乱数
2963 キャリービット
2964 確率的に丸められた仮数
2965 確率的に丸められた指数
3002.1 最小精度単位 (ULP)
3003 下位ビット
3003.2 最下位下位ビット
3021 丸めモードビット
3022 RNGビット
3023 演算コードビット
3024 ソースビット
3025 宛先ビット
3100 開始
3110 FP乗累積命令を復号化
3120 FP乗累積演算を実行
3130 結果を正規化
3140 確率的丸め?
3141 いいえ
3142 はい
3150 結果の仮数を決定論的に丸める
3160 Nビット乱数を選択
3170 Nビット乱数及びN最上位下位ビットを加算
3180 キャリー?
3181 いいえ
3182 はい
3190 ULPを増分
3198 丸められた結果を提供
3199 終わり
この出願の発明に関連する先行技術文献情報としては、以下のものがある(国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む)。
(先行技術文献)
(特許文献)
(特許文献1) 国際公開第2017/048655号
(特許文献2) 米国特許出願公開第2015/0378734号明細書
(特許文献3) 米国特許第8,311,057号明細書
(特許文献4) 米国特許第5,481,688号明細書
(特許文献5) 米国特許第7,814,303号明細書
(非特許文献)
(非特許文献1) XlAO−WEI SHEN et al.,‘An Efficient Network−on−Chip Router for Dataflow Architecture’,In: Journal of Computer Science and Technology,volume 32,January 2017,pages 11−25,DOI 10.1007/s11390−017−1703−5 <URL: https://link.springer.com/content/pdf/10.1007%2Fsl1390−017−1703−5.pdf>
Claims (45)
- 計算要素であって、
メモリと、
命令を復号化する手段であって、前記命令はオペランドフィールドを有するものである、復号化する手段と、
少なくとも部分的に前記オペランドフィールドに基づいてオペランド記述子にアクセスする手段と、
前記オペランド記述子を復号化して、前記オペランド記述子が参照する複数のタイプの特定の1つを特定する手段と、
前記オペランド記述子及び前記特定のタイプに従ってオペランドにアクセスする手段と
を有し、
前記タイプは、ファブリックタイプ及びメモリタイプを有し、
前記計算要素は、ファブリックルータを有する処理要素に含まれ、前記処理要素は、各計算要素及び各ファブリックルータをそれぞれ有する処理要素のファブリックの1つであり、
前記処理要素は、各ファブリックルータに結合されたファブリックを介して相互接続され、
前記処理要素のファブリックは、データフローベースの処理及び命令ベースの処理を実行することができ、
前記処理要素のファブリックは、ウェーハスケール集積を介して実装され、
前記特定のタイプが前記ファブリックタイプである場合、前記オペランドは前記ファブリックを介してアクセスされ、
前記特定のタイプが前記メモリタイプである場合、前記オペランドは前記メモリを介してアクセスされる計算要素。 - 請求項1記載の計算要素において、前記タイプが前記ファブリックタイプである場合、前記オペランド記述子には前記ファブリックのファブリック仮想チャネルが関連付けられるものである計算要素。
- 請求項1記載の計算要素において、さらに、
前記オペランド記述子により記述されるアクセスパターンに従って前記命令の繰り返しを実行する手段であって、ベクトルの前記繰り返しに十分なデータ要素にアクセスすることを介して実行するものである、実行する手段を有するものである計算要素。 - 請求項3記載の計算要素において、前記アクセスパターンは、ファブリックベクトル、一次元メモリベクトル、四次元メモリベクトル、及び循環メモリバッファの1つである計算要素。
- 請求項1記載の計算要素において、前記オペランドにアクセスする手段は、前記タイプが前記ファブリックタイプであり、前記オペランドがソースである場合、前記ファブリックに結合された入力キューからデータ要素を読み出すことができるものである計算要素。
- 請求項1記載の計算要素において、前記オペランドにアクセスする手段は、前記タイプが前記ファブリックタイプであり、前記オペランドがデスティネーション(宛先)である場合、前記ファブリックに結合された出力キューにデータ要素を書き込むことができるものである計算要素。
- 請求項1記載の計算要素において、前記オペランドにアクセスする手段は、前記タイプが前記メモリタイプであり、前記オペランドがソースである場合、前記メモリから読み出すことができるものである計算要素。
- 請求項1記載の計算要素において、前記オペランドにアクセスする手段は、前記タイプが前記メモリタイプであり、前記オペランドがデスティネーション(宛先)である場合、前記メモリに書き込むことができるものである計算要素。
- 請求項1記載の計算要素において、前記オペランドがベクトルである場合、前記オペランド記述子は、前記ベクトルの長さを記述する情報を有するものである計算要素。
- 請求項1記載の計算要素において、前記計算要素は前記命令を実行することができ、前記オペランド記述子は、前記オペランドがベクトルであり、前記ベクトルの要素へのアクセスのストールがある場合に前記計算要素がいかに動作すべきかを記述するマイクロスレッド処理情報を有するものである計算要素。
- 請求項10記載の計算要素において、さらに、
前記ストール及びマイクロスレッド処理が可能ではないことを示す前記マイクロスレッド処理情報に応答して、前記計算要素をストールさせる手段を有するものである計算要素。 - 請求項10記載の計算要素において、前記命令は第1の命令であり、さらに、
前記ストール及びマイクロスレッド処理が可能であることを示す前記マイクロスレッド処理情報に応答して、前記計算要素が前記第1の命令の処理を保留にし、第2の命令を処理に選択する手段を有するものである計算要素。 - 請求項1記載の計算要素において、前記オペランドはベクトルであり、前記オペランド記述子は、前記ベクトルのいくつの要素を並列処理するかを示すものである計算要素。
- 請求項1記載の計算要素において、前記オペランド記述子は、前記オペランドがベクトルであり、前記ベクトルの要素を伝達する制御ファブリックパケットが受信される場合、処理を終了すべきか否かのインジケータを有するものである計算要素。
- 請求項1記載の計算要素において、前記オペランド記述子は、前記命令の完了に応答して選択的にアクティベートする仮想チャネルのインジケータを有するものである計算要素。
- 請求項1記載の計算要素において、前記命令の実行は、ニューラルネットワークのアクティベーションの計算、ニューラルネットワークのアクティベーションの部分和の計算、ニューラルネットワークのエラーの計算、ニューラルネットワークの勾配推定の計算、及びニューラルネットワークの重みの更新の1若しくはそれ以上の少なくとも部分を実行するものである計算要素。
- 請求項1記載の計算要素において、前記オペランドは、ニューラルネットワークの重み、ニューラルネットワークのアクティベーション、ニューラルネットワークのアクティベーションの部分和、ニューラルネットワークのエラー、ニューラルネットワークの勾配推定、及びニューラルネットワークの重み更新の1若しくはそれ以上の少なくとも部分を有するものである計算要素。
- 請求項1記載の計算要素において、前記オペランドは、ベクトル、行列、及びテンソルの1若しくはそれ以上の少なくとも部分を有するものである計算要素。
- 方法であって、
計算要素において、命令を復号化する工程であって、前記命令はオペランドフィールドを有する、復号化する工程と、
前記計算要素において、少なくとも部分的に前記オペランドフィールドに基づいてオペランド記述子にアクセスする工程と、
前記計算要素において、前記オペランド記述子を復号化して、前記オペランド記述子が参照する複数のタイプの特定の1つを特定する工程と、
前記計算要素において、前記オペランド記述子及び前記特定のタイプに従ってオペランドにアクセスする工程と
を含み、
前記タイプは、ファブリックタイプ及びメモリタイプを有し、
前記計算要素は、ファブリックルータを有する処理要素に含まれ、前記処理要素は、各計算要素及び各ファブリックルータをそれぞれ有する処理要素のファブリックの1つであり、
前記処理要素は、各ファブリックルータに結合されたファブリックを介して相互接続され、
前記処理要素のファブリックは、データフローベースの処理及び命令ベースの処理を実行することができ、
前記処理要素のファブリックは、ウェーハスケール集積を介して実装され、
前記特定のタイプが前記ファブリックタイプである場合、前記オペランドは前記ファブリックを介してアクセスされ、
前記特定のタイプが前記メモリタイプである場合、前記オペランドは前記計算要素の前記メモリを介してアクセスされる方法。 - 請求項19記載の方法において、前記タイプが前記ファブリックタイプである場合、前記オペランド記述子には前記ファブリックのファブリック仮想チャネルが関連付けられるものである方法。
- 請求項19記載の方法において、さらに、
前記オペランド記述子により記述されるアクセスパターンに従って、前記命令の繰り返しを実行する工程であって、ベクトルの前記繰り返しに十分なデータ要素にアクセスすることを介して実行するものである、実行する工程を含むものである方法。 - 請求項21記載の方法において、前記アクセスパターンは、ファブリックベクトル、一次元メモリベクトル、四次元メモリベクトル、及び循環メモリバッファの1つである方法。
- 請求項19記載の方法において、前記タイプが前記ファブリックタイプであり、前記オペランドがソースである場合、前記オペランドにアクセスする工程は、前記ファブリックに結合された入力キューからデータ要素を読み出すことを含むものである方法。
- 請求項19記載の方法において、前記タイプが前記ファブリックタイプであり、前記オペランドがデスティネーション(宛先)である場合、前記オペランドにアクセスする工程は、前記ファブリックに結合された出力キューにデータ要素を書き込むことを含むものである方法。
- 請求項19記載の方法において、前記タイプが前記メモリタイプであり、前記オペランドがソースである場合、前記オペランドにアクセスする工程は、前記計算要素に含まれる前記メモリから読み出すことを含むものである方法。
- 請求項19記載の方法において、前記タイプが前記メモリタイプであり、前記オペランドがデスティネーション(宛先)である場合、前記オペランドにアクセスする工程は、前記計算要素に含まれる前記メモリに書き込むことを含むものである方法。
- 請求項19記載の方法において、前記オペランドはベクトルであり、前記オペランド記述子は、前記ベクトルの長さを記述する情報を有するものである方法。
- 請求項19記載の方法において、前記オペランド記述子は、前記オペランドがベクトルであり、前記ベクトルの要素へのアクセスのストールがある場合に前記計算要素がいかに動作すべきかを記述するマイクロスレッド処理情報を有するものである方法。
- 請求項28記載の方法において、さらに、
前記ストール及びマイクロスレッド処理が可能ではないことを示す前記マイクロスレッド処理情報に応答して、前記計算要素がストールする工程を含むものである方法。 - 請求項28記載の方法において、前記命令は第1の命令であり、さらに、
前記ストール及びマイクロスレッド処理が可能であることを示す前記マイクロスレッド処理情報に応答して、前記計算要素が前記第1の命令の処理を保留し、第2の命令を処理に選択する工程を含むものである方法。 - 請求項30記載の方法において、前記第1の命令には第1のタスクが関連付けられ、前記第2の命令には第2のタスクが関連付けられるものである方法。
- 請求項19記載の方法において、前記オペランドはベクトルであり、前記オペランド記述子は、前記ベクトルのいくつの要素を並列処理するかを示すものである方法。
- 請求項19記載の方法において、前記オペランド記述子は、前記オペランドがベクトルであり、前記ベクトルの要素を伝達する制御ファブリックパケットが受信される場合、処理を終了すべきか否かのインジケータを有するものである方法。
- 請求項19記載の方法において、前記オペランド記述子は、前記命令の完了に応答して選択的にアクティベートする仮想チャネルのインジケータを有するものである方法。
- 請求項19記載の方法において、前記命令の実行は、ニューラルネットワークのアクティベーションの計算、ニューラルネットワークのアクティベーションの部分和の計算、ニューラルネットワークのエラーの計算、ニューラルネットワークの勾配推定の計算、及びニューラルネットワークの重みの更新の1若しくはそれ以上の少なくとも部分を実行するものである方法。
- 請求項19記載の方法において、前記オペランドは、ニューラルネットワークの重み、ニューラルネットワークのアクティベーション、ニューラルネットワークのアクティベーションの部分和、ニューラルネットワークのエラー、ニューラルネットワークの勾配推定、及びニューラルネットワークの重み更新の1若しくはそれ以上の少なくとも部分を有するものである方法。
- 請求項19記載の方法において、前記オペランドは、ベクトル、行列、及びテンソルの1若しくはそれ以上の少なくとも部分を有するものである方法。
- システムであって、
処理要素のファブリックであって、各処理要素は、計算要素に結合されたファブリックルータを有し、前記処理要素のファブリックは、データフローベースの処理及び命令ベースの処理を実行することができ、前記処理要素のファブリックは、ウェーハスケール集積を介して実装されるものである、前記処理要素のファブリック
を有し、
各処理要素は選択的に、少なくとも部分的に前記処理要素のそれぞれの前記ファブリックルータを介して前記処理要素の他のものとファブリックパケットを通信することができ、
各計算要素はメモリを有し、
命令を復号化することであって、前記命令はオペランドフィールドを有する、復号化することと、
少なくとも部分的にオペランドフィールドに基づいてオペランド記述子にアクセスすることと、
前記オペランド記述子を復号化して、前記オペランド記述子が参照する複数のタイプの特定の1つを特定することであって、前記複数のタイプはファブリックタイプ及びメモリタイプを有する、復号化して特定することと、
前記オペランド記述子及び前記特定のタイプに従ってオペランドにアクセスすることと
を行うことができ、
前記オペランドの前記アクセスは、前記特定のタイプが前記ファブリックタイプである場合、前記計算要素に結合された前記ファブリックルータのそれぞれを介し、
前記オペランドの前記アクセスは、前記特定のタイプが前記メモリタイプである場合、前記メモリを介するシステム。 - 請求項38記載のシステムにおいて、前記オペランド記述子は、一次元メモリベクトルアクセスパターン、四次元メモリベクトルアクセスパターン、及び循環メモリバッファアクセスパターンの1つとしてアクセスパターンを識別するものであるシステム。
- 請求項38記載のシステムにおいて、前記オペランド記述子は、複数の拡張オペランド記述子の1つを指定することができるものであるシステム。
- 請求項40記載のシステムにおいて、前記拡張オペランド記述子は、四次元メモリベクトルのストライド情報及び次元情報の1若しくはそれ以上を指定することができるものであるシステム。
- 請求項40記載のシステムにおいて、前記拡張オペランド記述子は、循環メモリバッファの開始アドレス及び終了アドレスの1若しくはそれ以上を指定することができるものであるシステム。
- 請求項40記載のシステムにおいて、前記拡張オペランド記述子は、循環メモリバッファのFIFO演算又は非FIFO演算を指定することができるものであるシステム。
- 請求項38記載のシステムにおいて、前記オペランド記述子は、ベクトルオペランドのベクトル長さを指定することができるものであるシステム。
- 請求項38記載のシステムにおいて、前記オペランド記述子は、前記オペランドがベクトルであり、前記ベクトルの要素へのアクセスのストールがある場合に前記計算要素がいかに動作すべきかを記述するマイクロスレッド処理情報を指定することができるものであるシステム。
Applications Claiming Priority (25)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762486372P | 2017-04-17 | 2017-04-17 | |
US62/486,372 | 2017-04-17 | ||
US201762517949P | 2017-06-11 | 2017-06-11 | |
US62/517,949 | 2017-06-11 | ||
US201762520433P | 2017-06-15 | 2017-06-15 | |
US62/520,433 | 2017-06-15 | ||
US201762522081P | 2017-06-19 | 2017-06-19 | |
US201762522065P | 2017-06-19 | 2017-06-19 | |
US62/522,081 | 2017-06-19 | ||
US62/522,065 | 2017-06-19 | ||
US201762542657P | 2017-08-08 | 2017-08-08 | |
US201762542645P | 2017-08-08 | 2017-08-08 | |
US62/542,657 | 2017-08-08 | ||
US62/542,645 | 2017-08-08 | ||
US201762580207P | 2017-11-01 | 2017-11-01 | |
US62/580,207 | 2017-11-01 | ||
US201862628773P | 2018-02-09 | 2018-02-09 | |
US201862628784P | 2018-02-09 | 2018-02-09 | |
US62/628,773 | 2018-02-09 | ||
US62/628,784 | 2018-02-09 | ||
US201862652933P | 2018-04-05 | 2018-04-05 | |
US62/652,933 | 2018-04-05 | ||
US201862655210P | 2018-04-09 | 2018-04-09 | |
US62/655,210 | 2018-04-09 | ||
PCT/IB2018/052643 WO2018193363A1 (en) | 2017-04-17 | 2018-04-17 | Data structure descriptors for deep learning acceleration |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020517030A true JP2020517030A (ja) | 2020-06-11 |
JP7260879B2 JP7260879B2 (ja) | 2023-04-19 |
Family
ID=63855635
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019556713A Active JP6854473B2 (ja) | 2017-04-17 | 2018-04-15 | 加速化ディープラーニングのデータフロー・トリガー・タスク |
JP2019556711A Active JP6755541B2 (ja) | 2017-04-17 | 2018-04-15 | 加速化ディープラーニングのニューロンスメアリング |
JP2019556709A Active JP7260879B2 (ja) | 2017-04-17 | 2018-04-17 | ディープラーニング加速化のためのデータ構造記述子 |
JP2020138494A Pending JP2020205067A (ja) | 2017-04-17 | 2020-08-19 | 加速化ディープラーニングのニューロンスメアリング |
JP2021035889A Pending JP2021108131A (ja) | 2017-04-17 | 2021-03-06 | 加速化ディープラーニングのデータフロー・トリガー・タスク |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019556713A Active JP6854473B2 (ja) | 2017-04-17 | 2018-04-15 | 加速化ディープラーニングのデータフロー・トリガー・タスク |
JP2019556711A Active JP6755541B2 (ja) | 2017-04-17 | 2018-04-15 | 加速化ディープラーニングのニューロンスメアリング |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020138494A Pending JP2020205067A (ja) | 2017-04-17 | 2020-08-19 | 加速化ディープラーニングのニューロンスメアリング |
JP2021035889A Pending JP2021108131A (ja) | 2017-04-17 | 2021-03-06 | 加速化ディープラーニングのデータフロー・トリガー・タスク |
Country Status (5)
Country | Link |
---|---|
US (9) | US10614357B2 (ja) |
EP (4) | EP3607504B1 (ja) |
JP (5) | JP6854473B2 (ja) |
CA (4) | CA3060368C (ja) |
WO (5) | WO2018193352A1 (ja) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10157060B2 (en) | 2011-12-29 | 2018-12-18 | Intel Corporation | Method, device and system for control signaling in a data path module of a data stream processing engine |
US11934945B2 (en) | 2017-02-23 | 2024-03-19 | Cerebras Systems Inc. | Accelerated deep learning |
US11488004B2 (en) | 2017-04-17 | 2022-11-01 | Cerebras Systems Inc. | Neuron smearing for accelerated deep learning |
WO2018193352A1 (en) * | 2017-04-17 | 2018-10-25 | Cerebras Systems Inc. | Dataflow triggered tasks for accelerated deep learning |
US11232347B2 (en) | 2017-04-17 | 2022-01-25 | Cerebras Systems Inc. | Fabric vectors for deep learning acceleration |
US10862755B2 (en) * | 2017-06-30 | 2020-12-08 | Oracle International Corporation | High-performance data repartitioning for cloud-scale clusters |
US11328037B2 (en) * | 2017-07-07 | 2022-05-10 | Intel Corporation | Memory-size- and bandwidth-efficient method for feeding systolic array matrix multipliers |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US10970080B2 (en) | 2018-02-08 | 2021-04-06 | Marvell Asia Pte, Ltd. | Systems and methods for programmable hardware architecture for machine learning |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10698766B2 (en) * | 2018-04-18 | 2020-06-30 | EMC IP Holding Company LLC | Optimization of checkpoint operations for deep learning computing |
US11586910B1 (en) | 2018-04-20 | 2023-02-21 | Perceive Corporation | Write cache for neural network inference circuit |
US10740434B1 (en) | 2018-04-20 | 2020-08-11 | Perceive Corporation | Reduced dot product computation circuit |
US11568227B1 (en) | 2018-04-20 | 2023-01-31 | Perceive Corporation | Neural network inference circuit read controller with multiple operational modes |
US11531868B1 (en) | 2018-04-20 | 2022-12-20 | Perceive Corporation | Input value cache for temporarily storing input values |
US11783167B1 (en) | 2018-04-20 | 2023-10-10 | Perceive Corporation | Data transfer for non-dot product computations on neural network inference circuit |
US11531727B1 (en) | 2018-04-20 | 2022-12-20 | Perceive Corporation | Computation of neural network node with large input values |
US20190340490A1 (en) * | 2018-05-04 | 2019-11-07 | Apple Inc. | Systems and methods for assigning tasks in a neural network processor |
US20210241083A1 (en) * | 2018-05-15 | 2021-08-05 | Mitsubishi Electric Corporation | Arithmetic device |
US10891136B1 (en) | 2018-05-22 | 2021-01-12 | Marvell Asia Pte, Ltd. | Data transmission between memory and on chip memory of inference engine for machine learning via a single data gathering instruction |
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 |
US10929778B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Address interleaving for machine learning |
US10929779B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Architecture to support synchronization between core and inference engine for machine learning |
US10929760B1 (en) * | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Architecture for table-based mathematical operations for inference acceleration in machine learning |
CN110609753B (zh) * | 2018-06-15 | 2023-07-28 | 伊姆西Ip控股有限责任公司 | 用于优化远程调用的方法、设备和计算机程序产品 |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US11829869B2 (en) * | 2018-07-25 | 2023-11-28 | Servicenow Canada Inc. | Multiple task transfer learning |
WO2020044152A1 (en) | 2018-08-28 | 2020-03-05 | Cerebras Systems Inc. | Scaled compute fabric for accelerated deep learning |
WO2020044238A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Processor element redundancy for accelerated deep learning |
WO2020044208A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Isa enhancements for accelerated deep learning |
US10855284B1 (en) * | 2018-09-25 | 2020-12-01 | Flex Logix Technologies, Inc. | Process of routing tile-to-tile interconnects of an FPGA, and method of manufacturing an FPGA |
US11204740B2 (en) * | 2018-12-04 | 2021-12-21 | Electronics And Telecommunications Research Institute | Neuromorphic arithmetic device and operating method thereof |
US11995533B1 (en) | 2018-12-05 | 2024-05-28 | Perceive Corporation | Executing replicated neural network layers on inference circuit |
US20200202195A1 (en) * | 2018-12-06 | 2020-06-25 | MIPS Tech, LLC | Neural network processing using mixed-precision data representation |
US11133059B2 (en) | 2018-12-06 | 2021-09-28 | Western Digital Technologies, Inc. | Non-volatile memory die with deep learning neural network |
US11138504B2 (en) * | 2018-12-28 | 2021-10-05 | Datalogic Ip Tech S.R.L. | Deployment of deep neural networks (DNN) in embedded devices by means of peer-to-peer routing between computational points |
US11347297B1 (en) | 2019-01-23 | 2022-05-31 | Perceive Corporation | Neural network inference circuit employing dynamic memory sleep |
CN111488976B (zh) * | 2019-01-28 | 2023-06-30 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
KR102246408B1 (ko) * | 2019-02-14 | 2021-05-18 | 엔에이치엔 주식회사 | 딥러닝 기반 유사상품 제공방법 |
US10916306B2 (en) | 2019-03-07 | 2021-02-09 | Western Digital Technologies, Inc. | Burst mode operation conditioning for a memory device |
WO2020191686A1 (zh) * | 2019-03-27 | 2020-10-01 | 华为技术有限公司 | 一种基于神经网络的功率分配方法及装置 |
US10970070B2 (en) * | 2019-03-29 | 2021-04-06 | Arm Limited | Processing of iterative operation |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US10817291B2 (en) * | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
EP3828698B1 (en) * | 2019-04-04 | 2022-07-20 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product |
WO2020200246A1 (zh) | 2019-04-04 | 2020-10-08 | 中科寒武纪科技股份有限公司 | 数据处理装置及相关产品 |
CN111782577B (zh) * | 2019-04-04 | 2023-03-24 | 安徽寒武纪信息科技有限公司 | 数据处理装置及方法以及相关产品 |
US11625585B1 (en) | 2019-05-21 | 2023-04-11 | Perceive Corporation | Compiler for optimizing filter sparsity for neural network implementation configuration |
US11520521B2 (en) | 2019-06-20 | 2022-12-06 | Western Digital Technologies, Inc. | Storage controller having data augmentation components for use with non-volatile memory die |
US11501109B2 (en) | 2019-06-20 | 2022-11-15 | Western Digital Technologies, Inc. | Non-volatile memory die with on-chip data augmentation components for use with machine learning |
CN112148536A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 检测深度学习芯片的方法、装置、电子设备和计算机存储介质 |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
CN110531386B (zh) * | 2019-08-15 | 2022-03-29 | 辽宁生态工程职业学院 | 基于wmad的gnss卫星钟差数据预处理方法 |
US11526761B2 (en) * | 2019-08-24 | 2022-12-13 | Microsoft Technology Licensing, Llc | Neural network training with decreased memory consumption and processor utilization |
US11915041B1 (en) * | 2019-09-12 | 2024-02-27 | Neureality Ltd. | Method and system for sequencing artificial intelligence (AI) jobs for execution at AI accelerators |
US20230162012A1 (en) * | 2019-10-16 | 2023-05-25 | Cerebras Systems Inc. | Basic wavelet filtering for accelerated deep learning |
WO2021084485A1 (en) * | 2019-10-30 | 2021-05-06 | Cerebras Systems Inc. | Placement of compute and memory for accelerated deep learning |
US11716338B2 (en) * | 2019-11-26 | 2023-08-01 | Tweenznet Ltd. | System and method for determining a file-access pattern and detecting ransomware attacks in at least one computer network |
US11841792B1 (en) * | 2019-12-09 | 2023-12-12 | Amazon Technologies, Inc. | Instructions with multiple memory access modes |
US11334358B2 (en) | 2019-12-09 | 2022-05-17 | Amazon Technologies, Inc. | Hardware accelerator having reconfigurable instruction set and reconfigurable decoder |
US11687778B2 (en) | 2020-01-06 | 2023-06-27 | The Research Foundation For The State University Of New York | Fakecatcher: detection of synthetic portrait videos using biological signals |
TWI733305B (zh) * | 2020-01-10 | 2021-07-11 | 瑞昱半導體股份有限公司 | 晶片及基於神經網路電路的電流調整方法 |
US11568021B2 (en) | 2020-02-21 | 2023-01-31 | Alibaba Group Holding Limited | Vector-vector multiplication techniques for processing systems |
US11521085B2 (en) * | 2020-04-07 | 2022-12-06 | International Business Machines Corporation | Neural network weight distribution from a grid of memory elements |
US11507835B2 (en) | 2020-06-08 | 2022-11-22 | Western Digital Technologies, Inc. | Neural network data updates using in-place bit-addressable writes within storage class memory |
TWI743837B (zh) * | 2020-06-16 | 2021-10-21 | 緯創資通股份有限公司 | 訓練資料增量方法、電子裝置與電腦可讀取記錄媒體 |
CN111752689B (zh) * | 2020-06-22 | 2023-08-25 | 深圳鲲云信息科技有限公司 | 一种基于数据流的神经网络多引擎同步计算系统 |
WO2022034542A1 (en) * | 2020-08-14 | 2022-02-17 | Cerebras Systems Inc. | Weight sparsity techniques for accelerated deep learning |
US11947928B2 (en) | 2020-09-10 | 2024-04-02 | Hewlett Packard Enterprise Development Lp | Multi-die dot-product engine to provision large scale machine learning inference applications |
US11175957B1 (en) * | 2020-09-22 | 2021-11-16 | International Business Machines Corporation | Hardware accelerator for executing a computation task |
US11200060B1 (en) * | 2020-12-23 | 2021-12-14 | Advanced Micro Devices, Inc. | Broadcast synchronization for dynamically adaptable arrays |
US20220222317A1 (en) * | 2021-01-08 | 2022-07-14 | Mobileye Vision Technologies Ltd. | Applying a convolution kernel on input data |
CN112929977B (zh) * | 2021-02-10 | 2022-05-31 | 山西大学 | 一种深度学习的放大转发协作网络能效性资源分配方法 |
CN113360531B (zh) * | 2021-06-07 | 2023-06-09 | 王希敏 | 信号处理系统并行计算数据流的结构 |
US11269632B1 (en) | 2021-06-17 | 2022-03-08 | International Business Machines Corporation | Data conversion to/from selected data type with implied rounding mode |
US11675592B2 (en) | 2021-06-17 | 2023-06-13 | International Business Machines Corporation | Instruction to query for model-dependent information |
US11797270B2 (en) | 2021-06-17 | 2023-10-24 | International Business Machines Corporation | Single function to perform multiple operations with distinct operation parameter validation |
US11734013B2 (en) | 2021-06-17 | 2023-08-22 | International Business Machines Corporation | Exception summary for invalid values detected during instruction execution |
US11693692B2 (en) | 2021-06-17 | 2023-07-04 | International Business Machines Corporation | Program event recording storage alteration processing for a neural network accelerator instruction |
US11669331B2 (en) | 2021-06-17 | 2023-06-06 | International Business Machines Corporation | Neural network processing assist instruction |
US11782725B2 (en) * | 2021-08-16 | 2023-10-10 | Micron Technology, Inc. | Mask field propagation among memory-compute tiles in a reconfigurable architecture |
KR20230040126A (ko) * | 2021-09-15 | 2023-03-22 | 주식회사 사피온코리아 | 아키텍처 확장을 통한 신경망의 유효 정밀도 향상 방법 및 장치 |
US11899984B1 (en) * | 2022-07-26 | 2024-02-13 | Beijing Tenafe Electronic Technology Co., Ltd. | Virtual queue for messages |
US11907147B1 (en) | 2022-07-28 | 2024-02-20 | Beijing Tenafe Electronic Technology Co., Ltd. | Programmable message inspection engine implemented in hardware that generates an output message using a content modification plan and a destination control plan |
US11995030B1 (en) * | 2022-11-10 | 2024-05-28 | Azurengine Technologies, Inc. | Reconfigurable parallel processor with stacked columns forming a circular data path |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH025173A (ja) * | 1988-01-15 | 1990-01-10 | Quantel Ltd | データ処理装置および通信システム |
JPH03175548A (ja) * | 1989-12-04 | 1991-07-30 | Fujitsu Ltd | マイクロプロセッサ及びアドレス制御方式 |
JPH0696035A (ja) * | 1992-09-16 | 1994-04-08 | Sanyo Electric Co Ltd | 処理要素とそれを用いる並列処理計算機 |
JPH06110864A (ja) * | 1992-09-30 | 1994-04-22 | Sony Corp | 学習処理装置 |
JPH08185380A (ja) * | 1994-12-28 | 1996-07-16 | Hitachi Ltd | 並列計算機 |
JP2009129447A (ja) * | 2007-11-27 | 2009-06-11 | Internatl Business Mach Corp <Ibm> | デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造) |
US7814303B2 (en) * | 2008-10-23 | 2010-10-12 | International Business Machines Corporation | Execution of a sequence of vector instructions preceded by a swizzle sequence instruction specifying data element shuffle orders respectively |
JP2014186509A (ja) * | 2013-03-22 | 2014-10-02 | Research Organization Of Information & Systems | 半導体チップ、半導体チップ接続システム |
JP2015537324A (ja) * | 2012-12-13 | 2015-12-24 | コーヒレント・ロジックス・インコーポレーテッド | 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム |
WO2016186813A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Vector computation unit in a neural network processor |
WO2017048655A1 (en) * | 2015-09-19 | 2017-03-23 | Microsoft Technology Licensing, Llc | Dense read encoding for dataflow isa |
Family Cites Families (214)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58181168A (ja) * | 1982-04-17 | 1983-10-22 | Nippon Telegr & Teleph Corp <Ntt> | 自律型プロセツサアレイ方式 |
JPS6049464A (ja) * | 1983-08-30 | 1985-03-18 | Oki Electric Ind Co Ltd | マルチプロセッサ計算機におけるプロセッサ間通信方式 |
US5329611A (en) * | 1990-05-22 | 1994-07-12 | International Business Machines Corp. | Scalable flow virtual learning neurocomputer |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
JP3219826B2 (ja) | 1992-02-21 | 2001-10-15 | 日本電気株式会社 | 情報処理装置 |
JPH0668056A (ja) | 1992-08-20 | 1994-03-11 | Hitachi Ltd | 並列計算機システム |
CA2129882A1 (en) | 1993-08-12 | 1995-02-13 | Soheil Shams | Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same |
JP3384601B2 (ja) * | 1994-02-23 | 2003-03-10 | 三洋電機株式会社 | 並列処理計算機 |
US5710549A (en) | 1994-09-30 | 1998-01-20 | Tandem Computers Incorporated | Routing arbitration for shared resources |
US5724348A (en) * | 1995-04-05 | 1998-03-03 | International Business Machines Corporation | Efficient hardware/software interface for a data switch |
US5835024A (en) | 1995-06-07 | 1998-11-10 | International Business Machines Corporation | Multi-stage interconnection network with selectable function switching apparatus |
US6055618A (en) | 1995-10-31 | 2000-04-25 | Cray Research, Inc. | Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel |
US5835925A (en) * | 1996-03-13 | 1998-11-10 | Cray Research, Inc. | Using external registers to extend memory reference capabilities of a microprocessor |
US5870396A (en) | 1996-12-31 | 1999-02-09 | Northern Telecom Limited | Output queueing in a broadband multi-media satellite and terrestrial communications network |
DE19704742A1 (de) * | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
US6285679B1 (en) | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
US6212628B1 (en) * | 1998-04-09 | 2001-04-03 | Teranex, Inc. | Mesh connected computer |
US6016510A (en) * | 1998-06-24 | 2000-01-18 | Siemens Pyramid Information Systems, Inc. | TORUS routing element error handling and self-clearing with programmable watermarking |
US6212627B1 (en) | 1998-10-12 | 2001-04-03 | Intel Corporation | System for converting packed integer data into packed floating point data in reduced time |
US6246615B1 (en) | 1998-12-23 | 2001-06-12 | Micron Technology, Inc. | Redundancy mapping in a multichip semiconductor package |
JP2000278316A (ja) | 1999-03-23 | 2000-10-06 | Toshiba Microelectronics Corp | データ切替装置 |
GB0019341D0 (en) | 2000-08-08 | 2000-09-27 | Easics Nv | System-on-chip solutions |
WO2002084509A1 (en) | 2001-02-24 | 2002-10-24 | International Business Machines Corporation | A novel massively parrallel supercomputer |
US20020141427A1 (en) | 2001-03-29 | 2002-10-03 | Mcalpine Gary L. | Method and apparatus for a traffic optimizing multi-stage switch fabric network |
JP4542722B2 (ja) | 2001-04-25 | 2010-09-15 | 富士通株式会社 | 命令処理方法 |
US7293002B2 (en) | 2001-06-19 | 2007-11-06 | Ohio University | Self-organizing data driven learning hardware with local interconnections |
US20070067380A2 (en) * | 2001-12-06 | 2007-03-22 | The University Of Georgia Research Foundation | Floating Point Intensive Reconfigurable Computing System for Iterative Applications |
US9170812B2 (en) | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US7403525B2 (en) * | 2002-05-15 | 2008-07-22 | Broadcom Corporation | Efficient routing of packet data in a scalable processing resource |
US7609718B2 (en) * | 2002-05-15 | 2009-10-27 | Broadcom Corporation | Packet data service over hyper transport link(s) |
GB0304628D0 (en) | 2003-02-28 | 2003-04-02 | Imec Inter Uni Micro Electr | Method for hardware-software multitasking on a reconfigurable computing platform |
US7402897B2 (en) | 2002-08-08 | 2008-07-22 | Elm Technology Corporation | Vertical system integration |
KR100991700B1 (ko) | 2002-08-16 | 2010-11-04 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 처리 장치, 처리 방법 및 컴퓨터로 판독가능한 기록 매체 |
US20040115995A1 (en) * | 2002-11-25 | 2004-06-17 | Sanders Samuel Sidney | Circuit array module |
US7299338B2 (en) | 2002-12-04 | 2007-11-20 | Agere Systems Inc. | Vector indexed memory unit and method |
US9818136B1 (en) * | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
ITRM20030354A1 (it) | 2003-07-17 | 2005-01-18 | Micron Technology Inc | Unita' di controllo per dispositivo di memoria. |
JP3984209B2 (ja) | 2003-07-31 | 2007-10-03 | 株式会社東芝 | 半導体記憶装置 |
TW200532454A (en) * | 2003-11-12 | 2005-10-01 | Gatechange Technologies Inc | System and method for message passing fabric in a modular processor architecture |
US7701957B1 (en) | 2004-01-20 | 2010-04-20 | Integrated Device Technology, Inc. | Method and apparatus for switching, merging, and demerging data between data communication locations |
US7185138B1 (en) * | 2004-05-14 | 2007-02-27 | Peter Galicki | Multi-dimensional data routing fabric |
US7453810B2 (en) | 2004-07-27 | 2008-11-18 | Alcatel Lucent | Method and apparatus for closed loop, out-of-band backpressure mechanism |
US7277990B2 (en) | 2004-09-30 | 2007-10-02 | Sanjeev Jain | Method and apparatus providing efficient queue descriptor memory access |
US7493474B1 (en) | 2004-11-10 | 2009-02-17 | Altera Corporation | Methods and apparatus for transforming, loading, and executing super-set instructions |
US7657891B2 (en) | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency |
US7671398B2 (en) | 2005-02-23 | 2010-03-02 | Tran Bao Q | Nano memory, light, energy, antenna and strand-based systems and methods |
US8443169B2 (en) | 2005-03-28 | 2013-05-14 | Gerald George Pechanek | Interconnection network connecting operation-configurable nodes according to one or more levels of adjacency in multiple dimensions of communication in a multi-processor and a neural processor |
US7565657B1 (en) | 2005-04-19 | 2009-07-21 | Sandia Corporation | Allocating application to group of consecutive processors in fault-tolerant deadlock-free routing path defined by routers obeying same rules for path selection |
US8275976B2 (en) | 2005-08-29 | 2012-09-25 | The Invention Science Fund I, Llc | Hierarchical instruction scheduler facilitating instruction replay |
WO2007033344A2 (en) * | 2005-09-14 | 2007-03-22 | Sipera Systems, Inc. | System, method and apparatus for classifying communications in a communications system |
US20070058557A1 (en) | 2005-09-15 | 2007-03-15 | Interdigital Technology Corporation | Method and apparatus for scheduling data transmissions based on a traffic data pattern model |
US9009660B1 (en) | 2005-11-29 | 2015-04-14 | Tilera Corporation | Programming in a multiprocessor environment |
CA2639978C (en) | 2006-01-24 | 2014-04-08 | Mycrolab Pty Ltd | Methods for low cost manufacturing of complex layered materials and devices |
US9542642B2 (en) | 2006-04-06 | 2017-01-10 | Samuel F. Wood | Packet data neural network system and method |
US7606968B2 (en) * | 2006-05-08 | 2009-10-20 | Mcdata Corporation | Multi-level content addressable memory |
US8194690B1 (en) | 2006-05-24 | 2012-06-05 | Tilera Corporation | Packet processing in a parallel processing environment |
US8390325B2 (en) | 2006-06-21 | 2013-03-05 | Element Cxi, Llc | Reconfigurable integrated circuit architecture with on-chip configuration and reconfiguration |
US8010966B2 (en) | 2006-09-27 | 2011-08-30 | Cisco Technology, Inc. | Multi-threaded processing using path locks |
US7773618B2 (en) * | 2006-11-08 | 2010-08-10 | Sicortex, Inc. | System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels |
US7773616B2 (en) | 2006-11-08 | 2010-08-10 | Sicortex, Inc. | System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel |
US7688725B2 (en) * | 2007-02-07 | 2010-03-30 | King Fahd University Of Petroleum & Minerals | Content-aware congestion control system |
CN100591047C (zh) | 2007-02-10 | 2010-02-17 | 华为技术有限公司 | 一种多级交换网的反压方法、系统及交换节点 |
US8752032B2 (en) | 2007-02-23 | 2014-06-10 | Irdeto Canada Corporation | System and method of interlocking to protect software-mediated program and device behaviours |
US8185909B2 (en) | 2007-03-06 | 2012-05-22 | Sap Ag | Predictive database resource utilization and load balancing using neural network model |
EP2143298A1 (en) | 2007-05-01 | 2010-01-13 | Telefonaktiebolaget LM Ericsson (PUBL) | All optical processing circuit for conflict resolution and switch configuration in a 2x2 optical node |
JP5012232B2 (ja) | 2007-06-08 | 2012-08-29 | 富士通株式会社 | 光スイッチ装置 |
US8127075B2 (en) * | 2007-07-20 | 2012-02-28 | Seagate Technology Llc | Non-linear stochastic processing storage device |
CN101354694B (zh) | 2007-07-26 | 2010-10-13 | 上海红神信息技术有限公司 | 基于mpu架构的超高扩展超级计算系统 |
US7904699B2 (en) * | 2008-03-10 | 2011-03-08 | International Business Machines Corporation | Processing unit incorporating instruction-based persistent vector multiplexer control |
US8161209B2 (en) | 2008-03-31 | 2012-04-17 | Advanced Micro Devices, Inc. | Peer-to-peer special purpose processor architecture and method |
US8245240B2 (en) | 2008-04-04 | 2012-08-14 | Intel Corporation | Extended dynamic optimization of connection establishment and message progress processing in a multi-fabric message passing interface implementation |
US9501448B2 (en) * | 2008-05-27 | 2016-11-22 | Stillwater Supercomputing, Inc. | Execution engine for executing single assignment programs with affine dependencies |
TW200951752A (en) | 2008-06-06 | 2009-12-16 | Inotera Memories Inc | A method for prognostic maintenance in semiconductor manufacturing |
US20110213950A1 (en) | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
GB0811057D0 (en) * | 2008-06-17 | 2008-07-23 | Univ Ulster | Artificial neural network architecture |
US8103858B2 (en) | 2008-06-30 | 2012-01-24 | Intel Corporation | Efficient parallel floating point exception handling in a processor |
US8151088B1 (en) | 2008-07-08 | 2012-04-03 | Tilera Corporation | Configuring routing in mesh networks |
US8311057B1 (en) | 2008-08-05 | 2012-11-13 | Xilinx, Inc. | Managing formatting of packets of a communication protocol |
US8213308B2 (en) | 2008-09-11 | 2012-07-03 | Juniper Networks, Inc. | Methods and apparatus for defining a flow control signal related to a transmit queue |
US8423983B2 (en) | 2008-10-14 | 2013-04-16 | International Business Machines Corporation | Generating and executing programs for a floating point single instruction multiple data instruction set architecture |
US9152427B2 (en) | 2008-10-15 | 2015-10-06 | Hyperion Core, Inc. | Instruction issue to array of arithmetic cells coupled to load/store cells with associated registers as extended register file |
EP2359542B1 (en) | 2008-12-19 | 2014-03-26 | Telefonaktiebolaget L M Ericsson (PUBL) | A method and apparatus for routing data |
US20110022821A1 (en) | 2009-03-09 | 2011-01-27 | Yunsi Fei | System and Methods to Improve Efficiency of VLIW Processors |
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 |
US8799914B1 (en) | 2009-09-21 | 2014-08-05 | Tilera Corporation | Managing shared resource in an operating system by distributing reference to object and setting protection levels |
US8396119B1 (en) | 2009-09-30 | 2013-03-12 | Ambarella, Inc. | Data sample compression and decompression using randomized quantization bins |
US8583896B2 (en) | 2009-11-13 | 2013-11-12 | Nec Laboratories America, Inc. | Massively parallel processing core with plural chains of processing elements and respective smart memory storing select data received from each chain |
US8559307B2 (en) | 2009-12-28 | 2013-10-15 | Empire Technology Development Llc | Routing packets in on-chip networks |
CN101778049A (zh) | 2010-03-04 | 2010-07-14 | 南京大学 | 包-电路交换片上路由器及其传输方法 |
US8379659B2 (en) | 2010-03-29 | 2013-02-19 | Intel Corporation | Performance and traffic aware heterogeneous interconnection network |
US9015448B2 (en) * | 2010-06-17 | 2015-04-21 | Advanced Micro Devices, Inc. | Message broadcast with router bypassing |
US9065773B2 (en) * | 2010-06-22 | 2015-06-23 | Juniper Networks, Inc. | Methods and apparatus for virtual channel flow control associated with a switch fabric |
WO2012051577A1 (en) | 2010-10-15 | 2012-04-19 | Coherent Logix, Incorporated | Disabling communication in a multiprocessor system |
US8738860B1 (en) | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US8745626B1 (en) | 2012-12-17 | 2014-06-03 | Throughputer, Inc. | Scheduling application instances to configurable processing cores based on application requirements and resource specification |
US8843425B2 (en) | 2011-07-29 | 2014-09-23 | International Business Machines Corporation | Hierarchical routing for two-way information flow and structural plasticity in neural networks |
US8712941B2 (en) * | 2011-09-21 | 2014-04-29 | Brain Corporation | Elementary network description for efficient link between neuronal models and neuromorphic systems |
US8798038B2 (en) * | 2011-08-26 | 2014-08-05 | Sonics, Inc. | Efficient header generation in packetized protocols for flexible system on chip architectures |
WO2013032753A2 (en) | 2011-08-26 | 2013-03-07 | The Trustees Of Columbia University In The City Of New York | Systems and methods for switched-inductor integrated voltage regulators |
US8909576B2 (en) | 2011-09-16 | 2014-12-09 | International Business Machines Corporation | Neuromorphic event-driven neural computing architecture in a scalable neural network |
US20140211630A1 (en) | 2011-09-28 | 2014-07-31 | Vincent E. Cavanna | Managing packet flow in a switch faric |
US10078515B2 (en) | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US8909690B2 (en) | 2011-12-13 | 2014-12-09 | International Business Machines Corporation | Performing arithmetic operations using both large and small floating point values |
KR101197103B1 (ko) * | 2012-03-09 | 2012-11-07 | (주) 지솔루션 | 위성압축영상 분할처리 장치 및 그 방법 |
US9390461B1 (en) | 2012-05-08 | 2016-07-12 | Apple Inc. | Graphics hardware mode controls |
JP2013251715A (ja) | 2012-05-31 | 2013-12-12 | Toshiba Corp | ルータ及びメニーコアシステム |
US9208432B2 (en) * | 2012-06-01 | 2015-12-08 | Brain Corporation | Neural network learning and collaboration apparatus and methods |
US9569279B2 (en) | 2012-07-31 | 2017-02-14 | Nvidia Corporation | Heterogeneous multiprocessor design for power-efficient and area-efficient computing |
US9563841B2 (en) | 2012-07-31 | 2017-02-07 | International Business Machines Corporation | Globally asynchronous and locally synchronous (GALS) neuromorphic network |
US9507746B2 (en) | 2012-10-22 | 2016-11-29 | Intel Corporation | Control messaging in multislot link layer flit |
US20140237156A1 (en) * | 2012-10-25 | 2014-08-21 | Plx Technology, Inc. | Multi-path id routing in a pcie express fabric environment |
CN104813306B (zh) | 2012-11-21 | 2017-07-04 | 相干逻辑公司 | 具有散布处理器dma‑fifo的处理系统 |
US20140149715A1 (en) * | 2012-11-28 | 2014-05-29 | Los Alamos National Security, Llc | Scalable and programmable computer systems |
US9373073B2 (en) | 2012-12-21 | 2016-06-21 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation |
WO2014131707A1 (en) | 2013-02-27 | 2014-09-04 | Nec Europe Ltd. | A method for operating a network |
US9430239B2 (en) * | 2013-03-12 | 2016-08-30 | Qualcomm Incorporated | Configurable multicore network processor |
US9471388B2 (en) | 2013-03-14 | 2016-10-18 | Altera Corporation | Mapping network applications to a hybrid programmable many-core device |
US9086813B2 (en) | 2013-03-15 | 2015-07-21 | Qualcomm Incorporated | Method and apparatus to save and restore system memory management unit (MMU) contexts |
EP2796987A1 (en) | 2013-04-26 | 2014-10-29 | EM Microelectronic-Marin SA | Random number generator |
CN105378651B (zh) * | 2013-05-24 | 2018-09-18 | 相干逻辑公司 | 具有可编程优化的存储器-网络处理器 |
US9069602B2 (en) | 2013-09-25 | 2015-06-30 | Netronome Systems, Incorporated | Transactional memory that supports put and get ring commands |
FR3011659B1 (fr) | 2013-10-04 | 2015-10-16 | Commissariat Energie Atomique | Circuit electronique, notamment apte a l'implementation d'un reseau de neurones, et systeme neuronal |
US9924490B2 (en) | 2013-10-09 | 2018-03-20 | International Business Machines Corporation | Scaling multi-core neurosynaptic networks across chip boundaries |
US9563599B2 (en) * | 2013-11-04 | 2017-02-07 | Lewis Rhodes Labs, Inc. | Computing architecture for operating on sequential data |
US10044612B2 (en) | 2013-11-06 | 2018-08-07 | Citrix Systems, Inc. | Systems and methods for port allocation |
US9699079B2 (en) | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US9614745B2 (en) | 2014-01-09 | 2017-04-04 | Citrix Systems, Inc. | Systems and methods for cloud-based probing and diagnostics |
US20150242741A1 (en) | 2014-02-21 | 2015-08-27 | Qualcomm Incorporated | In situ neural network co-processing |
US9348557B1 (en) | 2014-02-21 | 2016-05-24 | Altera Corporation | Fused floating point datapath with correct rounding |
US10282465B2 (en) | 2014-02-25 | 2019-05-07 | Intel Corporation | Systems, apparatuses, and methods for deep learning of feature detectors with sparse coding |
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
US9330433B2 (en) | 2014-06-30 | 2016-05-03 | Intel Corporation | Data distribution fabric in scalable GPUs |
US9785565B2 (en) | 2014-06-30 | 2017-10-10 | Microunity Systems Engineering, Inc. | System and methods for expandably wide processor instructions |
US10528682B2 (en) | 2014-09-04 | 2020-01-07 | Netspeed Systems | Automatic performance characterization of a network-on-chip (NOC) interconnect |
US10120716B2 (en) | 2014-10-02 | 2018-11-06 | International Business Machines Corporation | Task pooling and work affinity in data processing |
EP3035204B1 (en) | 2014-12-19 | 2018-08-15 | Intel Corporation | Storage device and method for performing convolution operations |
US10523585B2 (en) | 2014-12-19 | 2019-12-31 | Amazon Technologies, Inc. | System on a chip comprising multiple compute sub-systems |
US9961019B2 (en) | 2014-12-22 | 2018-05-01 | Intel Corporation | Adaptively switched network-on-chip |
GB2546603B (en) | 2015-01-16 | 2019-05-08 | Imagination Tech Ltd | Arbiter verification |
US9568960B2 (en) * | 2015-02-20 | 2017-02-14 | International Business Machines Corporation | Supercomputer using wafer scale integration |
US9747218B2 (en) * | 2015-03-20 | 2017-08-29 | Mill Computing, Inc. | CPU security mechanisms employing thread-specific protection domains |
US9729460B2 (en) | 2015-04-13 | 2017-08-08 | Arista Networks, Inc. | Method and system for managing port bandwidth in network devices |
US10606651B2 (en) * | 2015-04-17 | 2020-03-31 | Microsoft Technology Licensing, Llc | Free form expression accelerator with thread length-based thread assignment to clustered soft processor cores that share a functional circuit |
FR3035243B1 (fr) | 2015-04-20 | 2018-06-29 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Placement d'une tache de calcul sur un processeur fonctionnellement asymetrique |
US10346170B2 (en) | 2015-05-05 | 2019-07-09 | Intel Corporation | Performing partial register write operations in a processor |
IL238690B (en) | 2015-05-07 | 2019-07-31 | Mellanox Technologies Ltd | Network-based computational accelerator |
US10262259B2 (en) | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US10140572B2 (en) | 2015-06-25 | 2018-11-27 | Microsoft Technology Licensing, Llc | Memory bandwidth management for deep learning applications |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
US10452995B2 (en) * | 2015-06-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Machine learning classification on hardware accelerators with stacked memory |
US10540588B2 (en) | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
US20160379109A1 (en) | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Convolutional neural networks on hardware accelerators |
US11244225B2 (en) | 2015-07-10 | 2022-02-08 | Samsung Electronics Co., Ltd. | Neural network processor configurable using macro instructions |
US11126433B2 (en) | 2015-09-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Block-based processor core composition register |
US10452399B2 (en) | 2015-09-19 | 2019-10-22 | Microsoft Technology Licensing, Llc | Broadcast channel architectures for block-based processors |
CN108353081B (zh) | 2015-09-28 | 2021-01-19 | 13部门有限公司 | 遥控载具的检测和对抗的装置及方法、存储介质 |
US9817661B2 (en) | 2015-10-07 | 2017-11-14 | Arm Limited | Floating point number rounding |
US10614354B2 (en) | 2015-10-07 | 2020-04-07 | Altera Corporation | Method and apparatus for implementing layers on a convolutional neural network accelerator |
US10474627B2 (en) | 2015-10-08 | 2019-11-12 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with neural memory and array of neural processing units that collectively shift row of data received from neural memory |
US11165717B2 (en) | 2015-10-26 | 2021-11-02 | Western Digital Technologies, Inc. | Fabric interconnection for memory banks based on network-on-chip methodology |
US10489152B2 (en) | 2016-01-28 | 2019-11-26 | International Business Machines Corporation | Stochastic rounding floating-point add instruction using entropy from a register |
CN108701236B (zh) | 2016-01-29 | 2022-01-21 | 快图有限公司 | 卷积神经网络 |
KR102420897B1 (ko) | 2016-03-17 | 2022-07-18 | 에스케이하이닉스 주식회사 | 메모리 모듈, 이를 포함하는 메모리 시스템 및 그의 동작 방법 |
US10142258B2 (en) * | 2016-04-08 | 2018-11-27 | Advanced Micro Devices, Inc. | Methods and apparatus for processing in a network on chip (NOC) |
US9910673B2 (en) | 2016-04-19 | 2018-03-06 | Xiaolin Wang | Reconfigurable microprocessor hardware architecture |
CN109563971B (zh) | 2016-04-22 | 2021-09-14 | 纳米格有限公司 | 用于连接和控制可配置照明单元的系统和方法 |
GB2549933B (en) | 2016-04-27 | 2018-08-01 | Imagination Tech Ltd | Verification of hardware designs to implement floating point power functions |
JP6898359B2 (ja) | 2016-06-14 | 2021-07-07 | タータン エーアイ リミテッド | ディープニューラルネットワーク用のアクセラレータ |
US10015072B2 (en) | 2016-07-07 | 2018-07-03 | Netscout Systems, Inc. | Consolidation of network test automation tools |
WO2018034681A1 (en) | 2016-08-13 | 2018-02-22 | Intel Corporation | Apparatuses, methods, and systems for access synchronization in a shared memory |
US10365981B2 (en) * | 2016-08-19 | 2019-07-30 | Samsung Electronics Co., Ltd. | Adaptive multipath fabric for balanced performance and high availability |
US11064019B2 (en) | 2016-09-14 | 2021-07-13 | Advanced Micro Devices, Inc. | Dynamic configuration of inter-chip and on-chip networks in cloud computing system |
US10157059B2 (en) | 2016-09-29 | 2018-12-18 | Intel Corporation | Instruction and logic for early underflow detection and rounder bypass |
US10719762B2 (en) | 2017-08-03 | 2020-07-21 | Xcelsis Corporation | Three dimensional chip structure implementing machine trained network |
US10991675B2 (en) | 2016-10-10 | 2021-04-27 | Monolithic 3D Inc. | 3D semiconductor device and structure |
US10355975B2 (en) | 2016-10-19 | 2019-07-16 | Rex Computing, Inc. | Latency guaranteed network on chip |
US10127043B2 (en) | 2016-10-19 | 2018-11-13 | Rex Computing, Inc. | Implementing conflict-free instructions for concurrent operation on a processor |
US10700968B2 (en) | 2016-10-19 | 2020-06-30 | Rex Computing, Inc. | Optimized function assignment in a multi-core processor |
US10268679B2 (en) | 2016-12-02 | 2019-04-23 | Microsoft Technology Licensing, Llc | Joint language understanding and dialogue management using binary classification based on forward and backward recurrent neural network |
US10528321B2 (en) | 2016-12-07 | 2020-01-07 | Microsoft Technology Licensing, Llc | Block floating point for neural network implementations |
US10846230B2 (en) * | 2016-12-12 | 2020-11-24 | Intel Corporation | Methods and systems for invalidating memory ranges in fabric-based architectures |
US10885425B2 (en) | 2016-12-20 | 2021-01-05 | Intel Corporation | Network traversal using neuromorphic instantiations of spike-time-dependent plasticity |
US10871964B2 (en) | 2016-12-29 | 2020-12-22 | Qualcomm Incorporated | Architecture for sparse neural network acceleration |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US11748625B2 (en) | 2016-12-30 | 2023-09-05 | Intel Corporation | Distributed convolution for neural networks |
EP3563304B1 (en) * | 2016-12-30 | 2022-03-09 | Intel Corporation | Deep learning hardware |
US10558575B2 (en) * | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10565492B2 (en) | 2016-12-31 | 2020-02-18 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with segmentable array width rotator |
US10402527B2 (en) | 2017-01-04 | 2019-09-03 | Stmicroelectronics S.R.L. | Reconfigurable interconnect |
US10810492B2 (en) | 2017-01-27 | 2020-10-20 | Hewlett Packard Enterprise Development Lp | Memory side acceleration for deep learning parameter updates |
US10096134B2 (en) | 2017-02-01 | 2018-10-09 | Nvidia Corporation | Data compaction and memory bandwidth reduction for sparse neural networks |
US11934945B2 (en) | 2017-02-23 | 2024-03-19 | Cerebras Systems Inc. | Accelerated deep learning |
US10256198B2 (en) | 2017-03-23 | 2019-04-09 | Intel Corporation | Warpage control for microelectronics packages |
US10540318B2 (en) * | 2017-04-09 | 2020-01-21 | Intel Corporation | Graphics processing integrated circuit package |
US10637744B2 (en) | 2017-04-12 | 2020-04-28 | Battelle Memorial Institute | Complementary workflows for identifying one-hop network behavior and multi-hop network dependencies |
WO2018189728A1 (en) | 2017-04-14 | 2018-10-18 | Cerebras Systems Inc. | Floating-point unit stochastic rounding for accelerated deep learning |
WO2018193352A1 (en) | 2017-04-17 | 2018-10-25 | Cerebras Systems Inc. | Dataflow triggered tasks for accelerated deep learning |
US11488004B2 (en) | 2017-04-17 | 2022-11-01 | Cerebras Systems Inc. | Neuron smearing for accelerated deep learning |
US11232347B2 (en) | 2017-04-17 | 2022-01-25 | Cerebras Systems Inc. | Fabric vectors for deep learning acceleration |
US11328037B2 (en) * | 2017-07-07 | 2022-05-10 | Intel Corporation | Memory-size- and bandwidth-efficient method for feeding systolic array matrix multipliers |
TWI779069B (zh) | 2017-07-30 | 2022-10-01 | 埃拉德 希提 | 具有以記憶體為基礎的分散式處理器架構的記憶體晶片 |
US11106976B2 (en) * | 2017-08-19 | 2021-08-31 | Wave Computing, Inc. | Neural network output layer for machine learning |
US10963780B2 (en) | 2017-08-24 | 2021-03-30 | Google Llc | Yield improvements for three-dimensionally stacked neural network accelerators |
US20190101952A1 (en) * | 2017-09-30 | 2019-04-04 | Intel Corporation | Processors and methods for configurable clock gating in a spatial array |
US11461579B2 (en) | 2018-02-08 | 2022-10-04 | Western Digital Technologies, Inc. | Configurable neural network engine for convolutional filter sizes |
US10620954B2 (en) * | 2018-03-29 | 2020-04-14 | Arm Limited | Dynamic acceleration of data processor operations using data-flow analysis |
US10289816B1 (en) | 2018-06-08 | 2019-05-14 | Gsfm Llc | Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment |
US11062202B2 (en) | 2018-07-25 | 2021-07-13 | Cerebras Systems Inc. | Numerical representation for neural networks |
WO2020044152A1 (en) | 2018-08-28 | 2020-03-05 | Cerebras Systems Inc. | Scaled compute fabric for accelerated deep learning |
WO2020044238A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Processor element redundancy for accelerated deep learning |
WO2020044208A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Isa enhancements for accelerated deep learning |
US10802942B2 (en) | 2018-12-28 | 2020-10-13 | Intel Corporation | Methods and apparatus to detect anomalies of a monitored system |
US11360667B2 (en) | 2019-09-09 | 2022-06-14 | Stmicroelectronics S.R.L. | Tagged memory operated at lower vmin in error tolerant system |
WO2021084485A1 (en) | 2019-10-30 | 2021-05-06 | Cerebras Systems Inc. | Placement of compute and memory for accelerated deep learning |
-
2018
- 2018-04-15 WO PCT/IB2018/052606 patent/WO2018193352A1/en active Search and Examination
- 2018-04-15 CA CA3060368A patent/CA3060368C/en active Active
- 2018-04-15 CA CA3060969A patent/CA3060969C/en active Active
- 2018-04-15 JP JP2019556713A patent/JP6854473B2/ja active Active
- 2018-04-15 CA CA3099965A patent/CA3099965C/en active Active
- 2018-04-15 WO PCT/IB2018/052610 patent/WO2018193354A1/en active Application Filing
- 2018-04-15 EP EP18788154.5A patent/EP3607504B1/en active Active
- 2018-04-15 US US16/463,091 patent/US10614357B2/en active Active
- 2018-04-15 US US16/088,035 patent/US10515303B2/en active Active
- 2018-04-15 EP EP18786968.0A patent/EP3610612B1/en active Active
- 2018-04-15 JP JP2019556711A patent/JP6755541B2/ja active Active
- 2018-04-15 WO PCT/IB2018/052607 patent/WO2018193353A1/en unknown
- 2018-04-16 WO PCT/IB2018/052638 patent/WO2018193360A1/en active Search and Examination
- 2018-04-16 US US16/603,647 patent/US11062200B2/en active Active
- 2018-04-16 EP EP18788255.0A patent/EP3607505B1/en active Active
- 2018-04-17 CA CA3060350A patent/CA3060350A1/en active Pending
- 2018-04-17 EP EP18787945.7A patent/EP3610424A4/en active Pending
- 2018-04-17 JP JP2019556709A patent/JP7260879B2/ja active Active
- 2018-04-17 US US16/089,261 patent/US10726329B2/en active Active
- 2018-04-17 WO PCT/IB2018/052643 patent/WO2018193363A1/en unknown
-
2019
- 2019-12-17 US US16/717,633 patent/US20200364546A1/en not_active Abandoned
-
2020
- 2020-04-03 US US16/840,111 patent/US20210056400A1/en not_active Abandoned
- 2020-07-15 US US16/929,453 patent/US11232348B2/en active Active
- 2020-08-19 JP JP2020138494A patent/JP2020205067A/ja active Pending
-
2021
- 2021-03-06 JP JP2021035889A patent/JP2021108131A/ja active Pending
- 2021-07-06 US US17/367,879 patent/US20220172031A1/en active Pending
-
2022
- 2022-01-24 US US17/582,904 patent/US11727257B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH025173A (ja) * | 1988-01-15 | 1990-01-10 | Quantel Ltd | データ処理装置および通信システム |
JPH03175548A (ja) * | 1989-12-04 | 1991-07-30 | Fujitsu Ltd | マイクロプロセッサ及びアドレス制御方式 |
JPH0696035A (ja) * | 1992-09-16 | 1994-04-08 | Sanyo Electric Co Ltd | 処理要素とそれを用いる並列処理計算機 |
JPH06110864A (ja) * | 1992-09-30 | 1994-04-22 | Sony Corp | 学習処理装置 |
JPH08185380A (ja) * | 1994-12-28 | 1996-07-16 | Hitachi Ltd | 並列計算機 |
JP2009129447A (ja) * | 2007-11-27 | 2009-06-11 | Internatl Business Mach Corp <Ibm> | デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造) |
US7814303B2 (en) * | 2008-10-23 | 2010-10-12 | International Business Machines Corporation | Execution of a sequence of vector instructions preceded by a swizzle sequence instruction specifying data element shuffle orders respectively |
JP2015537324A (ja) * | 2012-12-13 | 2015-12-24 | コーヒレント・ロジックス・インコーポレーテッド | 改善された二次相互接続ネットワークを備えたマルチプロセッサシステム |
JP2014186509A (ja) * | 2013-03-22 | 2014-10-02 | Research Organization Of Information & Systems | 半導体チップ、半導体チップ接続システム |
WO2016186813A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Vector computation unit in a neural network processor |
WO2017048655A1 (en) * | 2015-09-19 | 2017-03-23 | Microsoft Technology Licensing, Llc | Dense read encoding for dataflow isa |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7233656B2 (ja) | 加速化ディープラーニングのタスクアクティベーション | |
US11727257B2 (en) | Data structure descriptors for deep learning acceleration | |
US11449574B2 (en) | Floating-point unit stochastic rounding for accelerated deep learning | |
US11062202B2 (en) | Numerical representation for neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191225 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210302 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20210601 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20210730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210902 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220615 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20220615 |
|
C11 | Written invitation by the commissioner to file amendments |
Free format text: JAPANESE INTERMEDIATE CODE: C11 Effective date: 20220705 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20220816 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20220823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221101 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230222 |
|
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: 20230307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230329 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7260879 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |