CN110520846A - 对用于优化存储器利用和神经网络的性能的数据分区的动态排序 - Google Patents
对用于优化存储器利用和神经网络的性能的数据分区的动态排序 Download PDFInfo
- Publication number
- CN110520846A CN110520846A CN201880025417.XA CN201880025417A CN110520846A CN 110520846 A CN110520846 A CN 110520846A CN 201880025417 A CN201880025417 A CN 201880025417A CN 110520846 A CN110520846 A CN 110520846A
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- memory component
- memory
- sequence
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 200
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 139
- 238000012545 processing Methods 0.000 claims abstract description 206
- 238000003860 storage Methods 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims description 110
- 230000008569 process Effects 0.000 claims description 69
- 238000004891 communication Methods 0.000 claims description 24
- 238000009826 distribution Methods 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 13
- 230000007613 environmental effect Effects 0.000 claims description 10
- 230000002708 enhancing effect Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 5
- 210000002569 neuron Anatomy 0.000 description 13
- 230000004913 activation Effects 0.000 description 12
- 238000000429 assembly Methods 0.000 description 12
- 230000000712 assembly Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 210000005036 nerve Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 210000005223 peripheral sensory neuron Anatomy 0.000 description 1
- 230000035699 permeability Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- 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/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- 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
-
- 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
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
-
- 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/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
- G06N3/065—Analogue 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6005—Decoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6058—Saving memory space in the encoder or decoder
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/485—Resource constraint
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Advance Control (AREA)
- Memory System (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
- Power Sources (AREA)
- Bus Control (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Input (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
经优化的存储器使用和管理对于神经网络(NN)或深度神经网络(DNN)计算环境的整体性能至关重要。使用输入数据维度的各种特性,分配序列针对将由NN或DNN处理的输入数据而被计算,分配序列优化本地和外部存储器组件的有效使用。分配序列可以描述如何将输入数据(及其相关联的处理参数(例如,处理权重))拆分为一个或多个部分以及输入数据的这样的部分(及其相关联的处理参数)如何在本地存储器、外部存储器和NN或DNN的处理单元组件之间被传递。附加地,分配序列可以包括将所生成的输出数据存储在本地和/或外部存储器组件中以优化本地和/或外部存储器组件的有效使用的指令。
Description
背景技术
神经网络(NN)或深度神经网络(DNN)处理通常要求运行时间在网络的多个层上发生,其中激活在每个层处被计算。第一层的输出充当后续层的输入。例如,第一NN/DNN层的经处理的激活充当第二NN/DNN层的输入。然后,第二层的经处理的激活充当第三层的输入。经处理的激活继续发生,直到到达网络的最后一层,其中最后一层的输出被NN/DNN计算环境用于呈现或存储。
当前部署的NN/DNN计算环境(具有诸如本地存储器(即,本地高速缓存)的有限资源)通常将中间层激活存储到主存储器。在操作上,即,当需要数据来处理下一层时,正在处理的数据从本地存储器/处理单元传送到主存储器,然后返回到本地存储器/处理单元。这样的实践通常是低效的并且需要经历可避免的处理周期以及关键存储器管理资源的使用,这导致NN/DNN计算环境的时延和加压的性能。
此外,由于所有中间激活通常都被存储到主存储器,使用小的本地存储器作为其输入/激活和权重的分级区域的NNN/DNN计算环境可能是低效的。例如,如果给定层的输入和权重的大小大于本地存储器的大小,则在不复写正在处理的输入和权重的情况下,当前层的输出不能存储到本地存储器。在操作上,该给定层的输出将需要存储到主存储器中。如果网络中的下一层是消耗该数据的层(大部分时间都是这种情况),则系统通过将数据存储到主存储器然后将其复制回本地分级存储器用于网络的下一层所需的处理来利用双倍带宽。
更有利的NN/DNN架构/数据管理方案将本地数据(即,处理单元的本地)的使用最大化并将主存储器的数据读取/写入最小化,这将导致在处理速度和功耗方面的净益处。
关于这些考虑和其他考虑,呈现了本文所公开的内容。
发明内容
本文描述的技术提供了使用“深度优先”和/或动态“深度优先”方法在示例性神经网络(NN)和/或深度神经网络(DNN)环境中利用来进行数据处理,其中“深度优先”和/或“动态深度优先”处理协议(例如,表示为由示例性NN和/或DNN环境的控制器组件提供的一个或多个指令)可操作地计算并执行允许数据处理的分配序列,分配序列改进整体性能并优化存储器管理。在其他例示性实现中,数据分配序列可以由示例性神经网络(NN)和/或深度神经网络(DNN)环境的其他协作组件(包括但不限于在线或离线编译器以及其他相关联组件)来计算。
在一个例示性实现中,示例性DNN环境可以包括一个或多个处理块(例如,计算机处理单元CPU)、存储器控制器、高带宽结构(例如,在示例性DNN模块和DNN环境的协作组件之间传递数据和/或数据元素的数据总线)、操作控制器和DNN模块。在例示性实现中,示例性DNN模块可以包括示例性DNN状态控制器、描述符列表控制器(DLC)、dMA(DDMA)、DMA流激活(DSA)、操作控制器、负载控制器和存储控制器。
在一个例示性操作中,NN/DNN环境的操作控制器可操作地处理大量数据,以应用一个或多个期望的数据处理操作(例如,卷积、最大池化、标量乘/加、求和、完全连接等)。在例示性操作中,参与用户可以指定由NN/DNN环境处理的数据的维度。例示性地,使用数据维度,NN/DNN环境中的可用处理层的数量以及表示NN/DNN环境的协作存储器组件的一个或多个特性的数据(例如,存储器大小、位置、时延、效率等)、数据分配序列可以由NN/DNN环境组件来计算,NN/DNN环境组件指定每个层的输入数据(以及任何相关联的处理参数)将被分配并在协作的NN/DNN存储器组件和NN/DNN处理器之间通信来实现最佳处理。
在一个例示性实现中,示例性NN/DD环境可以包括本地存储器组件和外部存储器组件。在该实现中,本地存储器组件相对于外部存储器组件以降低的时延、以较高的速率可操作地传送数据。在操作上,相对于外部存储器组件,本地存储器组件可以包括存储较小量数据的存储器大小。
在一个例示性操作中,可以接收输入数据(例如,数据blob)以供NN/DNN环境处理,NN/DNN环境具有特定限定的数据维度、相关联的数据处理参数(例如,层权重)、进行处理所需的限定数量的处理层、以及表示NN/DNN环境的协作存储器组件的一个或多个特性的数据。在操作上,操作控制器提供使用所接收的数据维度、协作存储器特性和层的数目来计算数据分配序列的指令。计算出的数据分配序列生成表示在每个可用处理层上拆分输入数据的部分数量的数据以及从外部存储器组件将数据部分(及其相关联的处理参数)加载到内部存储器组件、到NN/DNN环境的可用处理单元的定时。
附加地,计算出的数据分配序列可以包括用于操作控制器根据计算出的序列,将数据部分(一个或多个)从外部存储器通信到本地存储器、到可用处理单元(一个或多个)的指令。例示性地,可以在处理序列中利用本地存储器组件来存储用于每个处理层处理的数据部分的输出数据。在例示性操作中,在处理给定处理层的所有部分并将这样的输出部分数据存储在本地存储器中时,协作处理单元可以将针对给定处理层所生成的输出部分数据(存储在本地存储器中)聚合以生成针对给定处理层的完整输出数据。在一个例示性操作中,然后可以将所生成的完整层输出数据存储在外部存储器组件中,这导致使得更多本地存储器组件的存储器可用于后续层处理。
本文所呈现的技术提供可以将本地数据(即,处理单元(一个或多个)本地)的使用最大化并将主存储器的数据读取/写入最小化的有利的NN/DNN架构/数据管理方案,这导致在处理速度和功耗方面的净益处。
应当理解,尽管关于系统进行了描述,但是上述主题还可以被实现为计算机控制的装置、计算机进程、计算系统或者诸如计算机可读介质和/或专用芯片组的制品。通过阅读以下详细描述和对相关附图的回顾,这些特征和各种其他特征将显而易见。提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。
本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本发明内容用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提到的任何缺点或所有缺点的实现。
附图说明
参考附图描述了具体实施方式。在附图中,附图标记的最左边数字(一个或多个)标识首次出现附图标记的图。不同图中的相同附图标记表示相似或相同的项。对多个项中的各个项的参考可以使用具有字母序列的字母的附图标记来指代每个单独的项。对项的通用参考可以使用不具有字母序列的特定附图标记。
图1图示了根据本文所描述的系统和方法的示例性神经网络环境的框图。
图2图示了根据本文所描述的系统和方法部署数据分配序列的示例性神经网络环境的框图。
图3图示了根据本文所描述的系统和方法的例示性逻辑数据映射中表示的示例性输入数据的框图。
图4图示了根据本文所描述的系统和方法的、根据例示性分配序列处理的示例性输入数据的示例性块序列图的框图。
图5A图示了根据本文所描述的系统和方法的、根据另一例示性分配序列处理的示例性输入数据的示例性逐步处理序列的块序列图。
图5B图示了根据本文所描述的系统和方法的各种处理序列的示例性处理序列。
图6是允许在示例性神经网络环境中进行数据的深度优先处理的例示性过程的流程图。
图7是示例性神经网络环境的层的例示性深度优先处理的流程图。
图8示出了能够执行本文所描述的方法的计算机的例示性计算机架构的附加细节。
图9示出了根据本文所描述的系统和方法协作的例示性计算设备的附加细节。
具体实施方式
以下具体实施方式描述了用于对示例性神经网络(NN)和/或深度神经网络(DNN)环境中使用的处理和存储器资源进行优化的技术。通常,迭代器(例如,表示为示例性NN和/或DNN环境的迭代器控制器组件)可操作地允许处理数据,这改进了整体性能并优化了存储器管理。在一个例示性实现中,示例性DNN环境可以包括一个或多个处理块(例如,计算机处理单元CPU)、存储器控制器、高带宽结构(例如,在示例性DNN模块和DNN环境的协作组件之间传递数据和/或数据元素的数据总线)、迭代器控制器、操作控制器和DNN模块。在例示性实现中,示例性DNN模块可以包括示例性DNN状态控制器、描述符列表控制器(DLC)、dMA(DDMA)、DMA流激活(DSA)、操作控制器、负载控制器和存储控制器。
在一个例示性操作中,NN/DNN环境的操作控制器可操作地处理大量数据,以应用一个或多个期望的数据处理操作(例如,卷积、最大池化、标量乘加、求和、完全连接等)。在例示性操作中,参与用户可以指定正在处理的数据的维度以及NN/DNN环境的配置数据处理。这样的数据可以包括可用于处理NN/DNN环境中的数据的处理层的数量以及NN/DNN环境的协作存储器组件的一个或多个操作特性。
在一个例示性实现中,将由NN/DNN环境处理的数据可以表示为blob。通常,blob表示存储器中需要进行处理的数据。每个blob可以维持由各种维度(例如,宽度、高度、信道数、内核数和其他可用维度单位)限定的逻辑映射形状。在一个例示性操作中,NN/DNN的组件可遍历多维blob(例如,如由逻辑数据映射限定)或这样的blob的较小的N维度切片,其中N是维度数(例如,对于表示具有宽度、高度和信道数的图像的3D blob,N=3)。在遍历blob时,NN/DNN的一个或多个组件可以生成一个或多个指令,一个或多个指令包括但不限于:用于将数据从源存储器加载到处理单元(一个或多个)(例如,神经元处理器)的加载指令、或用于将由处理单元(一个或多个)产生的数据存储到目标存储器(例如,NN/DNN环境的协作存储器组件-本地或外部存储器)的存储指令。在例示性操作中,操作控制器能够同时产生读取/写入多个数据的指令。
通常,在处理神经网络(NN)中的数据时,在运行时可以存在多个处理层,其中可以在每一层处计算激活,然后将激活作为输入通信到后续层,直到到达网络的最后一层。当实现具有有限资源(例如,本地存储器(例如,本地高速缓存))的系统时,可能需要将中间层激活存储到协作的较大存储器组件(例如,主存储器、外部存储器)。当前,由于数据从本地存储器/处理单元传送到主存储器然后返回到本地存储器/处理单元,当需要数据以用于由下一层进行处理时,发生这样的数据传送消耗可避免的处理。
本文描述的系统和方法提供了机制,借助该机制,将本地数据(即,处理单元(一个或多个)本地的数据并存储在本地存储器组件上)的使用优化,并且将需要发生的进出主存储器的数据传送最小化。这可以在提高处理速度和降低功耗方面产生净益处。
通常,NN/DNN可操作在处理网络中的下一层之前,执行每个完整层的处理执行。此外,通常,中间层激活(即,中间层生成的输出数据)通常存储在主存储器中,直到被下一处理层消耗。
在一个例示性实现中,可以计算分配序列,分配序列将输入数据拆分为跨越可用处理层的处理部分,输入数据包括将中间激活存储在协作本地存储器组件中并将完整输出数据存储在协作主存储器组件中的指令。可以使用输入数据维度、表示协作存储器组件的操作特性(例如,大小、速度、存储器组件的位置等)的数据、可用于处理数据的神经元处理器的数量、处理单元的时钟速度以及NN/DD环境中可用处理层的数量来计算分配序列。例示性地,计算出的分配序列提供对数据(以及相关联的处理参数-例如,层权重数据)的哪些部分进行逐步处理以及在何处逐步加载和/或存储数据(即,本地存储器组件或主存储器组件)的特定序列。
本文所描述的技术提供了对示例性神经网络(NN)和/或深度神经网络(DNN)环境中使用的数据处理的“深度优先”和/或动态“深度优先”方法的使用,其中“深度优先”和/或“动态深度优先”处理协议(例如,表示为由示例性NN和/或DNN环境的控制器组件提供的一个或多个指令)可操作地计算并执行允许处理数据的分配序列,分配序列改进整体性能并优化存储器管理。在其他例示性实现中,数据分配序列可以由示例性神经网络(NN)和/或深度神经网络(DNN)环境的其他协作组件(包括但不限于在线或离线编译器和其他相关组件)来计算。
在一个例示性实现中,示例性DNN环境可以包括一个或多个处理块(例如,计算机处理单元CPU)、存储器控制器、高带宽结构(例如,在示例性DNN模块和DNN环境的协作组件之间传递数据和/或数据元素的数据总线)、操作控制器和DNN模块)。在例示性实现中,示例性DNN模块可以包括示例性DNN状态控制器、描述符列表控制器(DLC)、dMA(DDMA)、DMA流式激活(DSA)、操作控制器、加载控制器和存储控制器。
在一个例示性操作中,NN/DNN环境的操作控制器可操作地处理大量数据,以应用一个或多个期望的数据处理操作(例如,卷积、最大池化、标量乘/加、求和、完全连接等)。参与用户可以指定由NN/DNN环境正在处理的数据的维度。然后,使用所指定的数据维度以及NN/DNN环境中的可用处理层的数量、以及表示NN/DNN环境的协作存储器组件的一个或多个特性的数据(例如,存储器大小、位置、时延、效率等)以及关于NN/DNN环境的处理单元的特性,可以由NN/DNN环境组件来计算分配序列,NN/DNN环境组件指定每个层的输入数据(以及任何相关联的处理参数)将被分配以及在协作NN/DNN存储器组件和NN/DNN处理器之间进行通信来实现最佳处理。例示性地,数据分配序列可以包括仅“宽度”处理序列、“深度优先”处理序列和/或“动态深度优先”处理序列。
例示性地,仅“宽度”处理序列描述其中从第一处理层到后续处理层顺序地处理每个层的分区的处理序列。“深度优先”处理序列描述其中以优选顺序来处理来自每个可用处理层的分区的处理序列。“动态深度”优先处理序列描述其中根据各种NN/DNN特性以及数据特性、根据仅“宽度”处理和/或“深度优先”处理的组合处理层的数目据的处理序列。当环境和/或数据特性改变时,“动态深度”处理序列可以在“仅广度”和“深度优先”处理之间可操作地跳转。
在一个例示性实现中,示例性NN/DD环境可以包括本地存储器组件和外部存储器组件。相对于外部存储器组件,本地存储器组件以较高的速率、降低的时延可操作地传送数据。相对于外部存储器组件,本地存储器组件可以包括存储较小量数据的存储器大小。
在一个例示性操作中,可以接收输入数据(例如,数据blob)以供NN/DNN环境处理,NN/DNN环境具有特定限定的数据维度、相关联的数据处理参数(例如,层权重)、进行处理所需的限定数量的处理层、以及表示NN/DNN环境的协作存储器组件的一个或多个特性的数据。在操作上,示例性操作控制器或其他协作NN/DNN组件提供使用所接收的数据维度、协作存储器特性和层的数目来计算数据分配序列的指令。在例示性实现中,计算出的数据分配序列生成表示在每个可用处理层上拆分输入数据的部分数量的数据并指定从外部存储器组件将数据部分(及其相关联的处理参数)加载到内部存储器组件、到NN/DNN环境的可用处理单元的定时。
附加地,计算出的数据分配序列可以包括用于操作控制器根据计算出的序列,将数据部分(一个或多个)从外部存储器通信到本地存储器、到可用处理单元(一个或多个)的指令。例示性地,可以在处理序列中利用示例性本地存储器组件来存储用于每个层处理的数据部分的输出数据。在例示性操作中,在处理给定处理层的所有部分并将这样的输出数据存储在本地存储器中时,协作处理单元可以将针对给定处理层所生成的输出部分数据(存储在示例性本地存储器中)聚合以生成针对给定处理层的完整输出数据。在一个例示性操作中,然后可以将所生成的完整层输出数据存储在外部存储器组件中,这导致使得更多示例性本地存储器组件的存储器可用于后续层处理。
应当理解,尽管关于系统进行了描述,但是上述主题还可以实现为计算机控制的装置、计算机进程、计算系统、或者诸如计算机可读介质和/或专用芯片组的制品。
神经网络背景:
在人工神经网络中,神经元是用于模拟大脑中的生物神经元的基本单元。人工神经元的模型可以包括输入向量和权重向量的内积,权重向量被添加到偏置并且应用了非线性。相比之下,示例性DNN模块中的神经元(例如,图1中的105)紧密地映射到人工神经元。
例示性地,DNN模块可以被认为是超标量处理器。可操作地,它可以将一个或多个指令分派给被称为神经元的多个执行单元。执行单元可以是“同时分派同时完成”,其中每个执行单元与所有其他执行单元同步。DNN模块可以被分类为SIMD(单指令流、多数据流)架构。
转向图1的示例性DNN环境100,DNN模块105具有存储器子系统,存储器子系统具有唯一的L1和L2高速缓存结构。这些高速缓存结构不是常规的高速缓存,而是专门针对神经处理而设计。为了方便,这些高速缓存结构采用了反映其预期目的的名称。作为示例,L2高速缓存125(A)可以例示性地维持1兆字节(1MB)的存储容量,其中高速专用接口以16GBps操作。L1高速缓存可以在内核和激活数据之间维持128KB的存储容量分配。L1高速缓存可以被称为行缓冲器,且L2高速缓存被称为BaSRAM。
DNN模块可以是仅召回(recall-only)的神经网络,并且以编程方式支持各种网络结构。可以在服务器场或数据中心中离线执行网络训练,DNN模块不执行任何训练功能。训练的结果是可以被称为权重或内核的参数集合。这些参数表示可应用于输入的变换函数,其结果是分类或经语义标记的输出。
在一个例示性操作中,DNN模块可以接受平面数据作为输入。输入不仅限于图像数据,只要所呈现的数据是均匀的平面格式,DNN就可以对其进行操作。
DNN模块在对应于神经网络的层的层描述符列表上操作。例示性地,层描述符列表可以由DNN模块处理为指令。这些描述符可以从存储器预取读到DNN模块中并按顺序执行。
通常,可以存在两个主要种类的层描述符:1)存储器到存储器移动描述符,以及2)操作描述符。存储器到存储器移动描述符可用于将数据从主存储器移出到本地高速缓存或从本地高速缓存移入到主存储器,以供操作描述符使用。存储器到存储器移动描述符遵循与操作描述符不同的执行管线。存储器到存储器移动描述符的目标管线可以是内部DMA引擎,而操作描述符的目标管线可以是神经元处理元件。操作描述符能够进行许多不同的层操作。
DNN的输出也是数据blob。输出可以可选地流式传输到本地高速缓存或流式传输到主存储器。DNN模块可以在软件允许的范围内预取读数据。软件可以通过在描述符之间使用屏蔽和设置相关性来控制预取读。具有相关性集合的描述符将被阻止前进,直到满足相关性。
现在转向图1,示例性神经网络环境100可以包括各种协作组件,协作组件包括DNN模块105、高速缓冲存储器125和125(A)、低带宽结构110、桥接组件115、高带宽结构120、SOC130、PCIE“端点”135、Tensilica节点140、存储器控制器145、LPDDR4存储器105和输入数据源102。此外,如图所示,DNN模块105还可以包括若干组件,若干组件包括预取读105(A)、DMA105(B)、寄存器接口105(D)、加载/存储单元105(C)、层控制器105(D)、保存/恢复组件105(E)和神经元105(F)。可操作地,示例性DNN环境100可以根据所选择的规范来处理数据,其中DNN模块执行如本文所述的一个或多个功能。
图2图示了根据本文所描述的系统和方法操作以计算和执行示例性数据分配序列的示例性神经网络环境200。如图所示,示例性神经网络环境200包括提供一个或多个用于执行的命令的一个或多个操作控制器225。一个或多个操作控制器225可以操作以生成指令(例如,数据分配序列230),指令借助结构215通信到协作存储器组件本地存储器210以及一个或多个处理单元205(例如,神经元处理器)。此外,如图2所示,数据可以由处理单元205借助结构215可操作地检索并存储在主存储器组件220中。在一些实施例中,数据可以借助本地结构235从处理单元205存储到本地存储器210。在一个例示性实现中,神经网络环境结构可以是能够接收各种数据并将各种数据通信到一个或多个协作组件的数据总线。
在例示性操作中,示例性神经网络环境200可以根据图6和图7中描述的过程可操作地处理数据。具体到图2中描述的组件,这些组件仅仅是例示性的,因为本领域普通技术人员将理解图6和图7中描述的处理将由图2中所示的组件之外的其他组件执行。
图3图示了用于示例性输入数据的一个示例逻辑数据映射300。如图所示,数据305可以被表示为具有特定维度和体积340的数据,维度和体积340包括信道计数310、高度315和宽度320。根据本文描述的系统和方法,数据305可以被协作的n个神经元330划分为若干部分并准备用于处理,使得第一部分a可以被通信到第一神经元、第二部分b可以被通信到第二神经元等,直到n个部分被通信到n个神经元。
在一个例示性操作中,可以基于由示例性神经网络环境(例如,图2的200)的协作控制器组件提供的一个或多个指令,使用n个滑动窗口/内核325来确定数据305的各部分。进一步如图所示,可以使用由示例性神经网络环境(例如,图2的200)的协作操作控制器组件提供的一个或多个初始化参数,将输入数据部分a、b、c和d寻址到物理存储器325。
图4图示了示例性神经网络环境400的示例性数据状态模型和示例性数据处理序列。如图所示,神经网络环境400可以包括主存储器组件220、本地存储器组件210和处理单元205(如图2所示)。在操作上,数据可以从主存储器220直接加载到本地存储器210,使得示例性第一层输入数据层1的输入410从主存储器220加载到本地存储器210。附加地,层1的权重420(例如,与层1的输入410相关联的处理参数)也可以从主存储器220加载到本地存储器210。如图1所示,然后可以将层1的输入和层1的权重通信到处理单元205以供处理层1 430处理。在操作上,处理单元205可以处理层1的输入数据410和层1的权重420以生成输出数据(未示出),输出数据然后可以作为层1的输出440存储到主存储器220。该序列包括完整的层1处理。
此外,如图4所示,层2的输入数据450及其相关联的层2的权重460可以从主存储器220加载到本地存储器210。可操作地,层2的输入数据450和层2的权重460然后可以从本地存储器210通信到处理单元205,以用于处理。在一个例示性操作中,处理单元205可以在逐步处理序列步骤470处,处理层2的输入数据450和层2的权重460,以生成用于存储在主存储器220上的层2的输出数据480。
在一个例示性操作中,通过序列步骤440在主存储器上生成的层1的输出数据存储可以是层2的输入数据450。这样的顺序层处理(其中先前处理层的输出可以充当后续处理层的输入)是常规深度神经网络环境处理协议的典型。图4的示例性数据处理序列依赖于在由示例性神经网络环境400的处理单元205处理后续层输入数据之前,被完全处理的每个层输入数据。
仅出于示例性目的,图4描绘了示例性神经网络环境400,示例性神经网络环境400包括具有处于特定协作配置的主存储器组件220、本地存储器组件210和处理单元205的两个处理层。本领域普通技术人员将理解,这样的描述仅仅是例示性的,因为由本文描述的系统和方法描述的发明构思考虑了具有各种处理层并支持主存储器220组件、本地存储器组件和处理单元205之间的各种协作配置的神经网络环境的操作。
图5A图示了示例性网络环境500的另一示例性数据逐步序列处理模型。如图所示,示例性网络环境500可包括主存储器组件220、本地存储器组件210和处理单元205(如图2所示)。仅作为图示,示例性神经网络环境被描绘为支持两个处理层。在该图示中,一个或多个神经网络环境500的组件(未示出)(例如,操作控制器(一个或多个)225)可以针对层1的完整的输入数据(未示出)来计算数据分配序列。可以使用层1的输入数据的各种特性(例如,数据维度)以及主存储器和本地存储器组件的各种特性(例如,存储器大小、存储器时延、存储器位置等)、以及神经网络环境中可用的处理层的数量(例如,在该图示中为两个层)来计算数据分配序列。
可操作地,计算出的分配序列可以包括可由示例性神经网络环境500的一个或多个组件(例如,图1的DNN模块105)执行的指令,以针对每个输入数据层部分,将每个层的输入数据以及相关联的处理参数划分为最优数据部分大小,当最优数据部分大小由示例性神经网络环境500处理时,将在处理周期期间对一个或多个协作存储器组件(例如,220、210)的效用进行优化。附加地,在一个例示性操作中,计算出的分配序列可以包括逐步处理序列,其中经分配的输入层的数目据在离散步骤中,在协作存储器组件(220和210)之间进行通信/由处理单元205处理。此外,示例性计算的分配序列可以包括根据所提供的逐步处理序列,将中间输出层的数目据存储在本地存储器中的指令。
图5A示出了具有两个处理层的示例性神经网络环境中的输入数据的处理,两个处理层支持本地存储器组件210、主存储器组件220以及一个或多个处理单元205。例示性地,输入数据可以根据示例性计算的数据分配序列被分配,以包括层1部分1的部分(以及相关联的层1的权重)、层1部分2的部分以及层2的权重。附加地,在例示性实现中,示例性计算的分配序列可以包括关于何时将已分配的这些数据部分加载在可用存储器组件(本地存储器210和主存储器220)与处理单元205(例如,示例性逐步处理序列)之间的指令。根据示例性逐步处理序列在本地存储器210中存储的中间层输出数据也可以由计算出的分配序列中找到的一个或多个指令来管理。
根据一个示例性计算的分配序列(未示出),层1的输入部分1(即,根据示例性分配序列分配的)可以在逐步处理序列步骤505处,从主存储器组件220加载到本地存储器组件210。附加地,层1的权重(例如,层1部分1的输入数据505的处理参数)可以在逐步处理序列步骤510处,从主存储器组件220加载到本地存储器组件220。处理单元205可以根据逐步处理序列步骤515,处理层1部分1的输入数据和层1的权重,以在逐步处理序列步骤520处,生成并存储层1部分1的输出数据。处理沿逐步处理序列前进到步骤525,其中从主存储器220加载到本地存储器210的层2的权重允许在逐步处理序列步骤530处,由处理单元205处理层2部分1的输入数据(即,如本文所述,给定处理层的输出可以充当后续层的输入,其中在该例示性实现中,层1的输出是层2的输入数据)。在逐步处理序列步骤535处,层2部分1的输出数据然后可以存储在主存储器220中。
可操作地,然后在逐步处理序列步骤540处,将层1输入数据的剩余部分(即,层1部分2的输入数据)从主存储器220加载到本地存储器210,并且在逐步处理序列步骤545处处理其以生成层1部分2的输出数据,然后在逐步处理步骤550处,将层1部分2的输出数据存储在本地存储器210中。然后在逐步处理序列步骤555处,从本地存储器加载层2的剩余输入数据部分(即,层2部分2也是层1部分2的输出数据),以由处理单元205处理。在逐步处理序列步骤560处,生成层2部分2的输出数据以存储到主存储器220中,并完成由示例性神经网络环境500针对例示性实现的最初接收的输入数据生成完整输出数据集(即,由于不再存在处理层,存储在主存储器中的层2部分1的输出数据和层2部分2的输出数据可以表示由示例性神经网络环境500针对最初接收的输入数据生成的输出数据的总和)。
仅出于示例性目的,图5A描绘了示例性神经网络环境500,示例性神经网络环境500包括具有处于特定协作配置的主存储器组件220、本地存储器组件210和处理单元205的两个处理层。本领域普通技术人员将理解,该描述仅仅是例示性的,因为由本文所描述的系统和方法描述的发明构思考虑了具有各种处理层并支持主存储器220组件、本地存储器组件210和处理单元205之间的各种协作配置以及各种逐步处理序列的神经网络环境的操作,各种逐步处理序列可以基于示例性神经网络环境500的组件的特性而不同。
图5B是示出示例性神经网络环境500A的示例性处理序列570、575和580的框图。如图所示,处理序列570可以处理来自可用处理层(层0、层1和层2)的数据分区(570(a)、570(b)、570(c)、570(d)、570(e)、570(f)、570(g)、570(h)、570(i)、570(j)、570(k)和570(l)-为了简单起见,在下文中称为570(a)-570(a))。在该处理序列中,按顺序(如由处理序列步骤1-12所指示的)处理数据分区(570(a)-570(a))(例如,层0;1-4,层1;5-8和层2;9-12),使得层0的数据分区(即,570(a)、570(b)、570(c)和570(d))首先被处理,然后是层1的数据分区(即,570(e)、570(f)、570(g)和570(h)),然后是层2的数据分区(即,570(i)、570(j)、570(k)和570(l))。该类型的处理序列可以被认为是仅“广度”的处理序列。
此外,如图5B所示,示例性NN/DNN环境也可以执行处理序列575。在该处理序列中,按顺序处理来自每个层的数据分区(即,1-575(a)、2-575(e)、3-575(i)),然后按顺序处理来自每个层的第二数据分区(即,4-575(b)、5-575(f)、6–575(j)),直到跨越各层,所有数据分区都被处理。该类型的处理序列可以被认为是“深度优先”处理序列。
进一步如图5B所示,示例性NN/DNN环境也可以执行处理序列580。在该处理序列中,可以根据仅“广度”和/或“深度优先”处理顺序来处理数据分区(570(a)、570(b)、570(c)、570(d)、570(e)、570(f)、570(g)、570(h)、570(i)、570(j)、570(k)和570(l)),使得在一个例示性操作中,可以根据“深度优先”处理序列顺序地处理来自每个层的数据分区(例如,1-580(a)、2-580(e)、3-580(i)),并且然后可以根据仅“广度”处理序列来处理来自单个分区的数据(4-580(b)、5-580(c),然后是6–580(f)、7-580(g),然后是8–580(j)、9-580(k)),然后可以根据“深度优先”处理序列来处理来自每个分区的数据(10-580(d)、11-580(h)、12-580(1))。因此,“动态深度优先”处理序列可以可操作地允许在数据和环境特征指示时,通过示例性交织操作,从仅“广度”切换到“深度优先”处理序列来处理层分区。“动态深度优先”处理序列可以提供附加的鲁棒性,以根据环境和/或数据特性对性能和存储器使用进行优化。
应理解,图5B中所图示的示例性处理序列仅是例示性的,因为本文描述的发明构思可以利用可操作地优化示例性NN/DNN环境的性能和/或存储器利用的其他处理序列。附加地,尽管分区的大小被示出为具有相同的大小,但是本文所描述的发明构思考虑了不同大小的数据分区。
图6是使用深度优先方法处理数据以增强神经网络环境的性能的例示性过程600的流程图。应理解,本文所公开的过程的操作不一定以任何特定的顺序呈现,并且以可替换的顺序执行一些或所有操作是可能的并且是可预期的。为了便于描述和图示,已经以示出的顺序呈现了操作。在不脱离所附权利要求的范围的情况下,可以添加、省略和/或同时执行操作。
还应理解,所图示的过程(也称为“方法”或“例程”)可以在任何时间结束,并且不需要完整地执行。如下所述,可以通过执行包括在计算机存储介质上的计算机可读指令来执行方法的一些或所有操作和/或基本等同的操作。如在说明书和权利要求中使用的术语“计算机可读指令”及其变型在本文中被广泛使用,以包括例程、应用程序、应用程序模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种系统配置(包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子产品及其组合等)上实现。
因此,应当理解,本文所描述的逻辑操作被实现为(1)在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)计算系统内的互连机器逻辑电路或电路模块。实现是取决于计算系统的性能和其他要求的选择问题。因此,本文所描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以在软件、固件、专用数字逻辑及其任何组合中被实现。
例如,过程600的操作在本文中被描述为至少部分地由本文描述的组件和/或远程系统的组件而被实现。在一些配置中,本文所描述的组件或运行本文所公开的特征的另一模块可以是动态链接库(DLL)、静态链接库、由应用程序编程接口(API)产生的功能、编译程序、解释程序、微代码、机器代码、脚本或任何其他可执行指令集。数据可以存储在一个或多个存储器组件中的数据结构中。可以通过对链接寻址或参考数据结构来从数据结构中检索数据。
尽管以下图示涉及附图的组件,但是可以理解,例程的操作也可以按照许多其他方式而被实现。例如,过程600可以至少部分地由另一远程电路或本地电路的处理器而被实现。附加地,过程600的一个或多个操作可以备选地或附加地至少部分地由单独工作或与其他软件模块结合工作的芯片组实现。适合于提供本文所公开的技术的任何服务、电路或应用程序可以在所描述的操作中使用。
如图所示,处理开始于框605,在框605处,从神经联网计算环境的一个或多个协作组件接收一个或多个初始化参数。然后处理进行到框610,在框610处,从神经联网计算环境的一个或多个协作组件接收一个或多个数据处理命令。在框615处,可以计算输入数据分配序列,输入数据分配序列提供逐步处理序列和相关指令,用于根据“仅广度”、“深度优先”和“动态深度优先”处理序列中的一个或多个,在示例性神经网络环境的一个或多个协作存储器组件中,针对每个层,分配、处理并存储一个或多个分配数据(例如,输入或所生成的输出数据)。处理然后进行到框620,在框620处,根据框615的计算出的数据分配序列的逐步处理序列,处理经分配的输入数据或所生成的中间输出数据的部分。处理然后进行到框625,在框625处,根据计算出的数据分配序列,经处理的分配数据可以存储在示例性神经网络环境的一个或多个协作存储器组件中(例如,在本地或外部/主存储器组件中)。然后在框630处,执行检查来确定逐步处理序列的所有步骤是否都已完成。
如果框630处的检查指示不存在待逐步处理序列处理的附加步骤,则处理在框635处终止。但是,如果框630处的检查指示存在待逐步处理序列处理的附加步骤(例如,存在待处理的更多数据层部分),处理返回到框620并从那里继续。
图7是利用深度优先处理以增强示例性神经网络环境的整体处理性能的例示性过程700的流程图。如图所示,处理开始于框705,在框705处,从神经网络环境的协作组件(例如,操作控制器)接收一个或多个初始化参数,其中一个或多个初始化参数可包括表示输入数据的维度、示例性神经网络环境的一个或多个存储器组件的一个或多个特性、和/或示例性神经网络环境的处理层的数量的数据。然后处理进行到框710,在框710处,可以使用输入数据维度数据来计算输入数据分配序列,输入数据维度数据在示例性神经网络环境的一个或多个协作存储器组件中,针对每个层,提供逐步处理序列以及用于分配、处理和存储一个或多个分配数据(例如,输入或所生成的输出)的相关指令。处理然后进行到框715,在框715处,一个或多个处理指令由示例性神经网络环境的一个或多个协作组件(例如,处理单元/神经处理器)接收,以根据示例性逐步处理序列(例如,根据“仅广度”、“深度优先”和“动态深度优先”处理序列中的一个或多个)来处理分配数据的指定部分。处理然后进行到框720,在框720处,使用所接收的一个或多个处理指令、根据逐步处理序列来处理分配数据的指定部分。在框725处,根据示例性逐步处理序列,将经处理的分配数据的输出存储在一个或多个协作存储器组件(例如,本地存储器或外部/主存储器)中。
然后在框730处执行检查来确定逐步处理序列的所有步骤是否已完成。如果框730处的检查指示不存在待逐步处理序列处理的附加步骤,则处理在框735处终止。但是,如果框730处的检查指示存在待逐步处理序列处理的附加步骤(例如,存在待处理的更多数据层部分),则处理返回到框715并从那里继续。
图8中图示的计算机架构800包括:中央处理单元802(“CPU”)、系统存储器804(包括随机存取存储器806(“RAM”)和只读存储器(“ROM”)808)以及将存储器804耦合到CPU 802的系统总线810。例如在启动期间,包括有助于在计算机架构800内的元件之间传送信息的基本例程的基本输入/输出系统可以存储在ROM 808中。计算机架构800还包括用于存储操作系统814、其他数据和一个或多个应用程序的大容量存储设备812。
大容量存储设备812利用连接到总线810的大容量存储控制器(未示出)连接到CPU802。大容量存储设备812及其相关联的计算机可读介质为计算机架构800提供非易失性存储。虽然本文中包括的计算机可读介质的描述指代大容量存储设备(例如,固态驱动、硬盘、CD-ROM驱动),但是本领域技术人员应理解,计算机可读介质可以是可由计算机架构800访问的任何可用计算机存储介质或通信介质。
通信介质包括计算机可读指令、数据结构、程序模块或经调制的数据信号(例如,载波或其他传输机制)中的其他数据,并且包括任何传递介质。术语“经调制的数据信号”表示以对信号中的信息进行编码的方式来改变或设置其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频、红外和其他无线介质的无线介质。上述任何组合也应包括在计算机可读介质的范围内。
作为示例而非限制,计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字通用盘(“DVD”)、HD-DVD、BLU-RAY、或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备或可用于存储期望信息并且可由计算机架构800访问的任何其他介质。处于保护的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变型不包括波、信号和/或其他暂时性和/或无形通信介质本身。
根据各种技术,计算机架构800可以使用借助网络820和/或另一网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机架构800可以借助连接到总线810的网络接口单元816连接到网络820。应当理解,网络接口单元816也可以用于连接到其他类型的网络和远程计算机系统。计算机架构800还可以包括输入/输出控制器818,用于接收和处理来自若干其他设备(包括键盘、鼠标或电子笔(图8中未示出))的输入。类似地,输入/输出控制器818可以向显示屏、打印机或其他类型的输出设备(在图8中也未示出)提供输出。还应当理解,经由借助网络接口单元816到网络820的连接,计算架构可以使得DNN模块105能够与计算环境100通信。
应当理解,本文所描述的软件组件可以在被加载到CPU 802和/或DNN模块105中并被执行时,可以将CPU 802和/或DNN模块105和整个计算机架构800从通用计算设备变换为旨在促进本文所呈现的功能的专用计算系统。CPU 802和/或DNN模块105可以由任何数量的晶体管或其他分立电路元件和/或芯片组(可以单独地或共同地呈现任何数量的状态)构造。更具体地,响应于包含在本文所公开的软件模块内的可执行指令,CPU 802和/或DNN模块105可以作为有限状态机进行操作。这些计算机可执行指令可以通过指定CPU 802如何在状态之间转换来对CPU 802进行变换,从而对构成CPU 802的晶体管或其他分立硬件元件进行变换。
对本文所呈现的软件模块进行编码还可以对本文所呈现的计算机可读介质的物理结构进行变换。在本说明书的不同实现中,物理结构的特定变换取决于各种因素。这样的因素的示例包括但不限于:用于实现计算机可读介质的技术、计算机可读介质是否被表征为主存储装置或辅助存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过对半导体存储器的物理状态进行变换而将本文所公开的软件编码在计算机可读介质上。例如,软件可以对构成半导体存储器的晶体管、电容器或其他分立电路元件的状态进行变换。软件还可以对这样的组件的物理状态进行变换,以在其上存储数据。
作为另一示例,本文所公开的计算机可读介质可以使用磁或光技术而被实现。在这样的实现中,当在其中对软件进行编码时,本文所呈现的软件可以对磁或光介质的物理状态进行变换。这些变换可以包括改变给定磁介质内特定位置的磁特性。这些变换还可以包括改变给定光介质内特定位置的物理特征或特性,以改变那些位置的光特性。在不脱离本说明书的范围和精神的情况下,前述示例仅用于促进该讨论,物理介质的其他变换是可能的。
鉴于以上所述,应当理解,在计算机架构800中发生许多类型的物理变换,以存储并执行本文所呈现的软件组件。还应理解,计算机架构800可以包括其他类型的计算设备(包括手持式计算机、嵌入式计算机系统、个人数字助手以及本领域技术人员已知的其他类型的计算设备)。还预期计算机架构800可以不包括图8中所示的所有组件、可以包括未在图8中明确示出的其他组件或可以使用与图8中所示的架构完全不同的架构。
如上所述,计算系统800可以被部署为计算机网络的一部分。通常,以上对计算环境的描述适用于在网络环境中部署的服务器计算机和客户端计算机。
图9图示了具有服务器的示例性例示性联网计算环境900,服务器经由通信网络与客户端计算机通信,其中可以采用本文所描述的装置和方法。如图9所示,服务器(一个或多个)905可以经由通信网络820(可以是固定有线或无线LAN、WAN、内联网、外联网、对等网络、虚拟专用网络、因特网、蓝牙通信网络、专有低压通信网络或其他通信网络中的任一个或组合)与若干客户端计算环境(例如,平板个人计算机910、移动电话915、电话920、个人计算机(一个或多个)801、个人数字助理925、智能电话手表/个人目标跟踪器(例如,Apple Watch、Samsung、FitBit等)930和智能手机935)互连。在通信网络820是因特网的网络环境中,例如,服务器(一个或多个)905可以是可操作以经由若干已知协议(例如,超文本传输协议(HTTP)、文件传输协议(FTP)、简单对象访问协议(SOAP)或无线应用协议(WAP))中的任一个来处理数据并从客户端计算环境801、910、915、920、925、930和935通信数据且向客户端计算环境801、910、915、920、925、930和935通信数据的专用计算环境服务器。附加地,联网计算环境900可以利用各种数据安全协议(例如,安全套接层协议(“SSL”)或加密软体协议(“PGP”))。客户端计算环境801、910、915、920、925、930和935中的每一个可以配备有计算环境905,计算环境905操作以支持一个或多个计算应用程序或终端会话(例如,web浏览器(未示出)或其他图形用户界面(未示出)或移动桌面环境(未示出)),以获得对服务器计算环境(一个或多个)905的访问。
服务器(一个或多个)905可以通信地耦合到其他计算环境(未示出)并且接收关于参与用户的交互/资源网络的数据。在一个例示性操作中,用户(未示出)可以与在客户端计算环境(一个或多个)上运行的计算应用程序交互来获得期望的数据和/或计算应用程序。数据和/或计算应用可以存储在服务器计算环境(一个或多个)905上,并借助客户端计算环境905、910、915、920、925、930和935通过示例性通信网络820通信到协作用户。参与用户(未示出)可以请求访问整体地或部分地容纳在服务器计算环境(一个或多个)905上的特定数据和应用程序。这些数据可以在客户端计算环境801、910、915、920、925、930、935和服务器计算环境(一个或多个)905之间通信,以进行处理和存储。服务器计算环境(一个或多个)905可以托管用于数据和应用程序的生成、认证、加密和通信的计算应用程序、进程和小应用程序,并且可以与其他服务器计算环境(未示出)、第三方服务提供商(未示出)、网络附接存储(NAS)和存储区域网络(SAN)协作来实现应用程序/数据交易。
示例条款
鉴于以下条款,可以考虑本文所呈现的公开内容。
示例条款A,一种用于神经网络环境中的增强数据处理的系统,系统包括至少一个处理器;至少一个第一存储器组件;以及与至少一个处理器通信的至少一个第二存储器组件,至少一个第一存储器组件和/或第二存储器组件具有存储在其上的计算机可读指令,计算机可读指令当由至少一个处理器执行时,使得至少一个处理器:从神经网络环境的协作控制器组件接收一个或多个初始化参数,初始化参数包括表示将由神经网络环境处理的数据的维度的数据;计算针对数据的分配序列,分配序列包括用以在至少一个第一存储器组件和/或至少一个第二存储器组件中存储输出数据的一个或多个指令,分配序列包括仅广度处理序列、深度优先处理序列和动态深度优先处理序列;从神经网络环境的协作存储器组件加载数据;从神经网络环境的协作控制器组件接收用以根据计算出的分配序列处理数据的所选择的部分的一个或多个指令;由一个或多个协作处理单元处理数据的部分以生成输出数据,以用于存储在至少一个第一存储器组件或至少一个第二存储器组件上;以及将所生成的输出数据存储在至少一个第一存储器组件或至少一个第二存储器组件上。
示例条款B,根据示例条款A所述的系统,其中计算出的分配序列基于神经网络环境的层的数目。
示例条款C,根据示例条款A和B所述的系统,其中计算机可读指令还使得至少一个处理器加载表示一个或多个层权重的数据,以用于由神经网络环境的一个或多个处理单元(205)使用以生成输出数据。
示例条款D,根据示例条款A至C所述的系统,其中计算机可读指令还使得至少一个处理器将所生成的输出数据存储在至少一个第一存储器组件中。
示例条款E,根据示例条款A至D所述的系统,其中计算机可读指令还使得至少一个处理器将所生成的输出数据存储在至少一个第二存储器组件中。
示例条款F,根据示例条款A至E所述的系统,其中计算机可读指令还使得至少一个处理器基于至少第一存储器组件的大小和/或至少一个第二存储器组件的大小来计算分配序列。
示例条款G,根据示例条款A至F所述的系统,其中计算机可读指令还使得至少一个处理器将所生成的输出数据存储在至少一个第一存储器组件中。
示例条款H,根据示例条款A至G所述的系统,其中计算机可读指令还使得至少一个处理器将所生成的输出数据存储在至少一个第二存储器组件中。
示例条款I,一种计算机实现的方法,包括:从协作控制器组件接收一个或多个初始化参数,初始化参数包括表示输入数据的维度的数据以及表示与输入数据相关联的处理层的数量的数据;计算针对输入数据的分配序列,分配序列包括用以将输出数据存储在至少一个第一存储器组件和/或至少一个第二存储器组件中的一个或多个指令,并且包括用以加载处理输入数据所需的相关联数据的一个或多个指令,分配序列包括仅广度处理序列、深度优先处理序列和动态深度优先处理序列;从协作存储器组件加载表示一个或多个处理权重的数据;从协作控制器组件接收用以根据计算出的分配序列处理数据的所选择的部分的一个或多个指令;由一个或多个协作处理单元根据计算出的分配序列处理数据部分以生成输出数据,以用于存储在至少一个第一存储器组件或至少一个第二存储器组件上;以及将所生成的输出数据存储在至少一个第一存储器组件或至少一个第二存储器组件上。
示例条款J,根据条款I所述的计算机实现的方法,还包括接收表示至少一个第一存储器组件的大小和至少一个第二存储器组件的大小的数据,以用于在计算分配序列时使用。
示例条款K,根据条款I和J所述的计算机实现的方法,还包括将所生成的输出数据存储在至少一个第一存储器组件上。
示例条款L,根据条款I至K所述的计算机实现的方法,还包括将所生成的输出数据存储在至少一个第二存储器组件上。
示例条款M,根据条款I至L所述的计算机实现的方法,还包括将所生成的输出数据的一部分存储在至少一个第一存储器组件上。
示例条款N,根据条款I至M所述的计算机实现的方法,还包括加载与正沿计算出的分配序列而被处理的数据部分相关联的处理权重数据。
示例条款O,根据条款I至N所述的计算机实现的方法,还包括针对每个处理层加载整个输入数据相关联的处理权重数据。
示例条款P,根据条款I至O所述的计算机实现的方法,还包括将先前处理层的输出数据作为后续处理层的输入数据处理。
示例条款Q,一种具有存储在其上的计算机可执行指令的计算机可读存储介质,计算机可执行指令当由计算设备的一个或多个处理器执行时,使得计算设备的一个或多个处理器:从神经网络环境的协作控制器组件接收一个或多个初始化参数,初始化参数包括表示将由神经网络环境处理的数据的维度的数据,计算针对数据的分配序列,分配序列包括用以在至少一个第一存储器组件和/或至少一个第二存储器组件中存储输出数据以及在至少一个第一存储器组件和至少一个第二存储器组件之间加载包括输入数据以及相关联的输入数据参数的数据的一个或多个指令,分配序列包括仅广度处理序列、深度优先处理序列和动态深度优先处理序列,从神经网络环境的协作存储器组件加载数据,从神经网络环境的协作控制器组件接收用以根据计算出的分配序列处理数据的所选择的部分,使用相关联的输入数据参数由一个或多个协作处理单元处理数据部分以生成输出数据以用于存储在至少一个第一存储器组件或至少一个第二存储器组件上的一个或多个指令;以及根据计算出的分配序列将所生成的输出数据存储在至少一个第一存储器组件或至少一个第二存储器组件上。
示例条款R,根据条款Q所述的计算机可读存储介质,其中指令还使得计算设备的一个或多个处理器:根据计算出的分配序列将表示针对数据的部分的处理权重的数据从外部存储器组件加载到神经网络环境的本地存储器组件。
示例条款S,根据条款Q和R所述的计算机可读存储介质,其中指令还使得计算设备的一个或多个处理器:根据计算出的分配序列将针对数据的部分的所生成的输出数据存储在本地存储器组件中。
示例条款T,根据条款Q至S所述的计算机可读存储介质,其中指令还使得计算设备的一个或多个处理器:生成用于神经网络环境的最终处理层的输出数据。
示例条款U,根据条款Q至T所述的计算机可读存储介质,其中指令还使得计算设备的一个或多个处理器:将所生成的最终处理层输出数据存储在外部存储器组件中。
示例条款V,根据条款Q至U所述的计算机可读存储介质,其中存储器组件与能够产生输入数据的物理传感器协作,输入数据包括音频数据、视频数据、触觉感测数据以及用于由一个或多个协作处理单元后续处理的其他数据。
示例条款W,根据条款Q至V所述的计算机可读存储介质,其中协作处理单元与一个或多个输出物理组件电子地协作,一个或多个输出物理组件操作以接收用于人类交互的经处理的输入数据,经处理的输入数据包括音频数据、视频数据、触觉感测数据和其他数据。
结论
最后,尽管已利用结构特征和/或方法动作专用的语言描述了各种技术,但是应理解,所附表示中限定的主题不必限于所描述的特定特征或动作。相反,公开了特定特征和动作作为实现所要求保护的主题的示例形式。
Claims (15)
1.一种用于神经网络环境中的增强数据处理的系统,所述系统包括:
至少一个处理器;
至少一个第一存储器组件;以及
与所述至少一个处理器通信的至少一个第二存储器组件,所述至少一个第一存储器组件和/或所述至少一个第二存储器组件具有存储在其上的计算机可读指令,所述计算机可读指令当由所述至少一个处理器执行时,使得所述至少一个处理器:
从所述神经网络环境的协作控制器组件接收一个或多个初始化参数,所述初始化参数包括表示将由所述神经网络环境处理的数据的维度的数据;
计算针对所述数据的分配序列,所述分配序列包括用以在所述至少一个第一存储器组件和/或所述至少一个第二存储器组件中存储输出数据的一个或多个指令,所述分配序列包括仅广度处理序列、深度优先处理序列和动态深度优先处理序列;
从所述神经网络环境的所述协作存储器组件加载数据;
从所述神经网络环境的所述协作控制器组件接收用以根据计算出的所述分配序列处理所述数据的所选择的部分的一个或多个指令;
由一个或多个协作处理单元处理数据的所述部分以生成所述输出数据,以用于存储在所述至少一个第一存储器组件或所述至少一个第二存储器组件上;以及
将所生成的所述输出数据存储在所述至少一个第一存储器组件或所述至少一个第二存储器组件上。
2.根据权利要求1所述的系统,其中计算出的所述分配序列基于所述神经网络环境的层的数目。
3.根据权利要求2所述的系统,其中所述计算机可读指令还使得所述至少一个处理器:加载表示一个或多个层权重的数据,以用于由所述神经网络环境的一个或多个处理单元使用以生成所述输出数据。
4.根据权利要求3所述的系统,其中所述计算机可读指令还使得所述至少一个处理器将所生成的所述输出数据存储在所述至少一个第一存储器组件中。
5.根据权利要求3所述的系统,其中所述计算机可读指令还使得所述至少一个处理器将所生成的所述输出数据存储在所述至少一个第二存储器组件中。
6.根据权利要求1所述的系统,其中所述计算机可读指令还使得所述至少一个处理器基于所述至少一个第一存储器组件的大小和/或所述至少一个第二存储器组件的大小来计算所述分配序列。
7.根据权利要求6所述的系统,其中所述计算机可读指令还使得所述至少一个处理器将所生成的所述输出数据存储在所述至少一个第一存储器组件中。
8.根据权利要求6所述的系统,其中所述计算机可读指令还使得所述至少一个处理器将所生成的所述输出数据存储在所述至少一个第二存储器组件中。
9.一种计算机实现的方法,包括:
从协作控制器组件接收一个或多个初始化参数,所述初始化参数包括表示输入数据的维度的数据以及表示与所述输入数据相关联的处理层的数量的数据;
计算针对所述输入数据的分配序列,所述分配序列包括用以将输出数据存储在至少一个第一存储器组件和/或至少一个第二存储器组件中的一个或多个指令,并且包括用以加载处理所述输入数据所需的相关联数据的一个或多个指令;
从协作存储器组件加载表示一个或多个处理权重的数据;
从所述协作控制器组件接收用以根据计算出的所述分配序列处理所述数据的所选择的部分的一个或多个指令,所述分配序列包括仅广度处理序列、深度优先处理序列和动态深度优先处理序列;
由一个或多个协作处理单元根据计算出的所述分配序列处理数据的所述部分以生成输出数据,以用于存储在所述至少一个第一存储器组件或所述至少一个第二存储器组件上;以及
将所生成的所述输出数据存储在所述至少一个第一存储器组件或所述至少一个第二存储器组件上。
10.根据权利要求9所述的计算机实现的方法,还包括:接收表示所述至少一个第一存储器组件的大小和所述至少一个第二存储器组件的大小的数据,以用于在计算所述分配序列时使用。
11.根据权利要求10所述的计算机实现的方法,还包括:将所生成的所述输出数据存储在包括第一存储器组件和第二存储器组件中的任何存储器组件的至少一个存储器组件上。
12.根据权利要求9所述的计算机实现的方法,还包括:将所生成的所述输出数据的一部分存储在所述至少一个第一存储器组件上。
13.根据权利要求9所述的计算机实现的方法,还包括:加载与正沿计算出的所述分配序列而被处理的数据的所述部分相关联的处理权重数据。
14.根据权利要求9所述的计算机实现的方法,还包括:针对每个处理层,加载与整个所述输入数据相关联的处理权重数据。
15.根据权利要求9所述的计算机实现的方法,还包括:将先前处理层的所述输出数据作为后续处理层的输入数据处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310874704.0A CN116909985A (zh) | 2017-04-17 | 2018-04-06 | 对数据分区的动态排序 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762486432P | 2017-04-17 | 2017-04-17 | |
US62/486,432 | 2017-04-17 | ||
US15/719,351 US11256976B2 (en) | 2017-04-17 | 2017-09-28 | Dynamic sequencing of data partitions for optimizing memory utilization and performance of neural networks |
US15/719,351 | 2017-09-28 | ||
PCT/US2018/026354 WO2018194847A1 (en) | 2017-04-17 | 2018-04-06 | Dynamic sequencing of data partitions for optimizing memory utilization and performance of neural networks |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310874704.0A Division CN116909985A (zh) | 2017-04-17 | 2018-04-06 | 对数据分区的动态排序 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110520846A true CN110520846A (zh) | 2019-11-29 |
CN110520846B CN110520846B (zh) | 2023-07-28 |
Family
ID=63790158
Family Applications (17)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310865940.6A Pending CN116909984A (zh) | 2017-04-17 | 2018-04-06 | 使用虚拟化数据迭代器对神经网络进行数据处理性能增强 |
CN202310874704.0A Pending CN116909985A (zh) | 2017-04-17 | 2018-04-06 | 对数据分区的动态排序 |
CN201880025227.8A Active CN110520870B (zh) | 2017-04-17 | 2018-04-06 | 用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件 |
CN201880025503.0A Active CN110520853B (zh) | 2017-04-17 | 2018-04-06 | 直接存储器访问的队列管理 |
CN201880025417.XA Active CN110520846B (zh) | 2017-04-17 | 2018-04-06 | 对数据分区的动态排序 |
CN201880025415.0A Active CN110546628B (zh) | 2017-04-17 | 2018-04-06 | 用有向线缓冲器最小化存储器读取提高神经网络环境性能 |
CN201880024892.5A Active CN110506260B (zh) | 2017-04-17 | 2018-04-06 | 用于神经网络环境中的增强数据处理的方法、系统和介质 |
CN201880025504.5A Active CN110520857B (zh) | 2017-04-17 | 2018-04-06 | 使用虚拟化数据迭代器对神经网络进行数据处理性能增强 |
CN201880025244.1A Active CN110520856B (zh) | 2017-04-17 | 2018-04-06 | 处理不邻近存储器作为邻近存储器以提高神经网络的性能 |
CN201880025488.XA Active CN110537194B (zh) | 2017-04-17 | 2018-04-13 | 被配置用于层和操作防护和依赖性管理的功率高效的深度神经网络处理器及方法 |
CN201880025508.3A Active CN110582785B (zh) | 2017-04-17 | 2018-04-16 | 配置用于执行层描述符列表的具有功率效率的深度神经网络模块 |
CN201880025420.1A Active CN110520909B (zh) | 2017-04-17 | 2018-04-16 | 使用激活数据的压缩和解压缩来减少存储器带宽利用率的神经网络处理器 |
CN201880025130.7A Active CN110546654B (zh) | 2017-04-17 | 2018-04-16 | 通过构造接口的带宽控制来增强dnn模块的处理性能 |
CN202410312381.0A Pending CN118153639A (zh) | 2017-04-17 | 2018-04-16 | 用于增强数据处理的系统、方法及神经网络处理器 |
CN201880025426.9A Active CN110678843B (zh) | 2017-04-17 | 2018-04-16 | 在深度神经网络模块中动态划分工作负载以降低功率消耗 |
CN201880025126.0A Active CN110546610B (zh) | 2017-04-17 | 2018-04-16 | 通过数据共享和分配增强人工智能/机器硬件的处理性能 |
CN201880025480.3A Active CN110546611B (zh) | 2017-04-17 | 2018-04-16 | 通过跳过处理操作来减少神经网络处理器中的功耗 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310865940.6A Pending CN116909984A (zh) | 2017-04-17 | 2018-04-06 | 使用虚拟化数据迭代器对神经网络进行数据处理性能增强 |
CN202310874704.0A Pending CN116909985A (zh) | 2017-04-17 | 2018-04-06 | 对数据分区的动态排序 |
CN201880025227.8A Active CN110520870B (zh) | 2017-04-17 | 2018-04-06 | 用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件 |
CN201880025503.0A Active CN110520853B (zh) | 2017-04-17 | 2018-04-06 | 直接存储器访问的队列管理 |
Family Applications After (12)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880025415.0A Active CN110546628B (zh) | 2017-04-17 | 2018-04-06 | 用有向线缓冲器最小化存储器读取提高神经网络环境性能 |
CN201880024892.5A Active CN110506260B (zh) | 2017-04-17 | 2018-04-06 | 用于神经网络环境中的增强数据处理的方法、系统和介质 |
CN201880025504.5A Active CN110520857B (zh) | 2017-04-17 | 2018-04-06 | 使用虚拟化数据迭代器对神经网络进行数据处理性能增强 |
CN201880025244.1A Active CN110520856B (zh) | 2017-04-17 | 2018-04-06 | 处理不邻近存储器作为邻近存储器以提高神经网络的性能 |
CN201880025488.XA Active CN110537194B (zh) | 2017-04-17 | 2018-04-13 | 被配置用于层和操作防护和依赖性管理的功率高效的深度神经网络处理器及方法 |
CN201880025508.3A Active CN110582785B (zh) | 2017-04-17 | 2018-04-16 | 配置用于执行层描述符列表的具有功率效率的深度神经网络模块 |
CN201880025420.1A Active CN110520909B (zh) | 2017-04-17 | 2018-04-16 | 使用激活数据的压缩和解压缩来减少存储器带宽利用率的神经网络处理器 |
CN201880025130.7A Active CN110546654B (zh) | 2017-04-17 | 2018-04-16 | 通过构造接口的带宽控制来增强dnn模块的处理性能 |
CN202410312381.0A Pending CN118153639A (zh) | 2017-04-17 | 2018-04-16 | 用于增强数据处理的系统、方法及神经网络处理器 |
CN201880025426.9A Active CN110678843B (zh) | 2017-04-17 | 2018-04-16 | 在深度神经网络模块中动态划分工作负载以降低功率消耗 |
CN201880025126.0A Active CN110546610B (zh) | 2017-04-17 | 2018-04-16 | 通过数据共享和分配增强人工智能/机器硬件的处理性能 |
CN201880025480.3A Active CN110546611B (zh) | 2017-04-17 | 2018-04-16 | 通过跳过处理操作来减少神经网络处理器中的功耗 |
Country Status (19)
Country | Link |
---|---|
US (20) | US10795836B2 (zh) |
EP (14) | EP3612947B1 (zh) |
JP (1) | JP7004741B2 (zh) |
KR (2) | KR102663557B1 (zh) |
CN (17) | CN116909984A (zh) |
AU (1) | AU2018256212B2 (zh) |
BR (1) | BR112019021541A2 (zh) |
CA (1) | CA3056660A1 (zh) |
CL (1) | CL2019002864A1 (zh) |
CO (1) | CO2019011014A2 (zh) |
IL (1) | IL269888B (zh) |
MX (2) | MX2019012388A (zh) |
MY (1) | MY201868A (zh) |
NZ (1) | NZ756870A (zh) |
PH (1) | PH12019550191A1 (zh) |
RU (1) | RU2767447C2 (zh) |
SG (1) | SG11201909175XA (zh) |
WO (15) | WO2018194846A1 (zh) |
ZA (1) | ZA201905874B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592082A (zh) * | 2020-04-30 | 2021-11-02 | 意法半导体股份有限公司 | 用于从人工神经网络分配中间数据的设备和方法 |
Families Citing this family (119)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US10635969B2 (en) * | 2016-10-14 | 2020-04-28 | International Business Machines Corporation | Core utilization optimization by dividing computational blocks across cores |
US10248906B2 (en) | 2016-12-28 | 2019-04-02 | Intel Corporation | Neuromorphic circuits for storing and generating connectivity information |
US10795836B2 (en) | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
US11164071B2 (en) * | 2017-04-18 | 2021-11-02 | Samsung Electronics Co., Ltd. | Method and apparatus for reducing computational complexity of convolutional neural networks |
EP3657398A1 (en) * | 2017-05-23 | 2020-05-27 | Shanghai Cambricon Information Technology Co., Ltd | Weight quantization method for a neural network and accelerating device therefor |
CN110502330A (zh) * | 2018-05-16 | 2019-11-26 | 上海寒武纪信息科技有限公司 | 处理器及处理方法 |
US11514355B2 (en) * | 2017-06-28 | 2022-11-29 | General Electric Company | Flat representation of machine learning model |
JP7074777B2 (ja) * | 2017-11-20 | 2022-05-24 | シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド | タスク並列処理方法、装置、システム、記憶媒体およびコンピュータ機器 |
EP3489865B1 (en) * | 2017-11-22 | 2021-01-06 | Commissariat à l'énergie atomique et aux énergies alternatives | A stdp-based learning method for a network having dual accumulator neurons |
US10747844B2 (en) * | 2017-12-12 | 2020-08-18 | Tesla, Inc. | Systems and methods for converting a matrix input to a vectorized input for a matrix processor |
US11995448B1 (en) * | 2018-02-08 | 2024-05-28 | Marvell Asia Pte Ltd | Method and apparatus for performing machine learning operations in parallel on machine learning hardware |
US12112175B1 (en) | 2018-02-08 | 2024-10-08 | Marvell Asia Pte Ltd | Method and apparatus for performing machine learning operations in parallel on machine learning hardware |
US10970080B2 (en) | 2018-02-08 | 2021-04-06 | Marvell Asia Pte, Ltd. | Systems and methods for programmable hardware architecture for machine learning |
KR20190097930A (ko) * | 2018-02-13 | 2019-08-21 | 삼성전자주식회사 | 채널 별 메모리 용량을 조절하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10948966B1 (en) * | 2018-03-07 | 2021-03-16 | Facebook, Inc. | Systems and methods for optimizing power usage for systems within quality-of-service constraints |
US11126362B2 (en) * | 2018-03-14 | 2021-09-21 | International Business Machines Corporation | Migrating storage data |
CN109313673A (zh) * | 2018-04-17 | 2019-02-05 | 深圳鲲云信息科技有限公司 | 网络模型的运行方法及相关产品 |
US10404276B1 (en) * | 2018-04-27 | 2019-09-03 | Nicira, Inc. | Stable variable-length order-preserving encoding scheme |
US20190340490A1 (en) * | 2018-05-04 | 2019-11-07 | Apple Inc. | Systems and methods for assigning tasks in a neural network processor |
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 |
US11016801B1 (en) | 2018-05-22 | 2021-05-25 | Marvell Asia Pte, Ltd. | Architecture to support color scheme-based synchronization for machine learning |
US10360654B1 (en) * | 2018-05-25 | 2019-07-23 | Intel Corporation | Software scoreboard information and synchronization |
US10657087B2 (en) * | 2018-05-31 | 2020-05-19 | Toshiba Memory Corporation | Method of out of order processing of scatter gather lists |
US11561833B1 (en) * | 2018-06-28 | 2023-01-24 | Amazon Technologies, Inc. | Allocation and placement of resources for network computation |
EP3821346A1 (en) * | 2018-08-09 | 2021-05-19 | Huawei Technologies Co., Ltd. | Device and method for compacting compressed and uncompressed data blocks |
US12020146B2 (en) | 2018-08-23 | 2024-06-25 | Samsung Electronics Co., Ltd. | Electronic device and operating method thereof of processing neural network model by using plurality of processors |
US11966583B2 (en) * | 2018-08-28 | 2024-04-23 | Cambricon Technologies Corporation Limited | Data pre-processing method and device, and related computer device and storage medium |
DE102019114808A1 (de) * | 2018-09-21 | 2020-03-26 | Samsung Electronics Co., Ltd. | Mit einer Speichervorrichtung kommunizierende Datenverarbeitungsvorrichtung und Datenverarbeitungsverfahren |
US11295205B2 (en) * | 2018-09-28 | 2022-04-05 | Qualcomm Incorporated | Neural processing unit (NPU) direct memory access (NDMA) memory bandwidth optimization |
CN109359732B (zh) * | 2018-09-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法 |
CN116541647A (zh) * | 2018-10-09 | 2023-08-04 | 华为技术有限公司 | 运算加速器、处理方法及相关设备 |
US20200117981A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Data representation for dynamic precision in neural network cores |
KR102720879B1 (ko) * | 2018-11-05 | 2024-10-24 | 한국전자통신연구원 | 신경망 제어 장치 및 방법 |
KR20200053886A (ko) | 2018-11-09 | 2020-05-19 | 삼성전자주식회사 | 뉴럴 프로세싱 유닛, 뉴럴 프로세싱 시스템, 및 어플리케이션 시스템 |
CN109669774B (zh) * | 2018-11-14 | 2020-12-08 | 新华三技术有限公司成都分公司 | 硬件资源的量化方法、编排方法、装置及网络设备 |
US11663001B2 (en) * | 2018-11-19 | 2023-05-30 | Advanced Micro Devices, Inc. | Family of lossy sparse load SIMD instructions |
KR102107077B1 (ko) * | 2018-11-20 | 2020-05-06 | 주식회사 아나패스 | 컨볼루션 신경망 추론에서 컨볼루션 연산을 수행하기 위한 라인 단위 메모리 관리 방법 및 그 추론 장치 |
US10990525B2 (en) * | 2018-12-12 | 2021-04-27 | Mipsology SAS | Caching data in artificial neural network computations |
US11342933B2 (en) | 2018-12-14 | 2022-05-24 | Advanced Micro Devices, Inc. | Lossy significance compression with lossy restoration |
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN109740735B (zh) * | 2018-12-29 | 2020-12-29 | 百度在线网络技术(北京)有限公司 | 多神经网络输出方法及装置、服务器、计算机可读介质 |
CN109922007B (zh) * | 2019-01-15 | 2022-04-01 | 西安仙农电子科技有限公司 | 一种基于卷积神经网络的负载均衡方法 |
CN111488114B (zh) * | 2019-01-28 | 2021-12-21 | 北京灵汐科技有限公司 | 一种可重构的处理器架构及计算设备 |
US11625554B2 (en) | 2019-02-04 | 2023-04-11 | International Business Machines Corporation | L2-nonexpansive neural networks |
US11687783B2 (en) * | 2019-02-04 | 2023-06-27 | International Business Machines Corporation | L2-nonexpansive neural networks |
US11521014B2 (en) | 2019-02-04 | 2022-12-06 | International Business Machines Corporation | L2-nonexpansive neural networks |
US11036545B2 (en) * | 2019-03-15 | 2021-06-15 | Intel Corporation | Graphics systems and methods for accelerating synchronization using fine grain dependency check and scheduling optimizations based on available shared memory space |
CN111767078B (zh) * | 2019-04-02 | 2024-08-06 | 上海寒武纪信息科技有限公司 | 数据运行方法、装置和相关产品 |
CN111782577B (zh) | 2019-04-04 | 2023-03-24 | 安徽寒武纪信息科技有限公司 | 数据处理装置及方法以及相关产品 |
CN109992225B (zh) * | 2019-04-04 | 2022-02-22 | 中科寒武纪科技股份有限公司 | 数据输出方法及相关装置 |
KR20200119164A (ko) * | 2019-04-09 | 2020-10-19 | 한국전자통신연구원 | 정보 처리 장치 및 그것에 포함된 신경망 연산 장치의 동작 방법 |
KR20200129957A (ko) * | 2019-05-10 | 2020-11-18 | 삼성전자주식회사 | 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템 |
US10504005B1 (en) * | 2019-05-10 | 2019-12-10 | Capital One Services, Llc | Techniques to embed a data object into a multidimensional frame |
US11204745B2 (en) * | 2019-05-23 | 2021-12-21 | Xilinx, Inc. | Dataflow graph programming environment for a heterogenous processing system |
US11175898B2 (en) * | 2019-05-31 | 2021-11-16 | Apple Inc. | Compiling code for a machine learning model for execution on a specialized processor |
KR20200139909A (ko) | 2019-06-05 | 2020-12-15 | 삼성전자주식회사 | 전자 장치 및 그의 연산 수행 방법 |
AU2020298244A1 (en) * | 2019-06-18 | 2022-01-20 | Qualcomm Incorporated | Optimizing machine learning model performance |
US11403097B2 (en) * | 2019-06-26 | 2022-08-02 | Intel Corporation | Systems and methods to skip inconsequential matrix operations |
US11461622B2 (en) * | 2019-06-28 | 2022-10-04 | Amazon Technologies, Inc. | Dynamic code loading for multiple executions on a sequential processor |
US11630770B2 (en) * | 2019-07-11 | 2023-04-18 | Meta Platforms Technologies, Llc | Systems and methods for reading and writing sparse data in a neural network accelerator |
US20210081806A1 (en) * | 2019-09-13 | 2021-03-18 | Latent AI, Inc. | Using a runtime engine to facilitate dynamic adaptation of deep neural networks for efficient processing |
US10915811B1 (en) | 2019-09-18 | 2021-02-09 | International Business Machines Corporation | Intercalation cells for multi-task learning |
US11475283B2 (en) * | 2019-10-24 | 2022-10-18 | Apple Inc. | Multi dimensional convolution in neural network processor |
KR20210053384A (ko) | 2019-11-01 | 2021-05-12 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11513799B2 (en) | 2019-11-04 | 2022-11-29 | Apple Inc. | Chained buffers in neural network processor |
KR20210065605A (ko) * | 2019-11-27 | 2021-06-04 | 한국전자통신연구원 | 선인출 정보를 이용한 메모리 제어 방법 및 장치 |
CN111091184B (zh) * | 2019-12-19 | 2022-03-22 | 浪潮(北京)电子信息产业有限公司 | 一种深度神经网络的量化方法、装置、电子设备及介质 |
CN111162792A (zh) * | 2019-12-19 | 2020-05-15 | 深圳市航天泰瑞捷电子有限公司 | 一种电力负荷数据的压缩方法及装置 |
US11620516B2 (en) * | 2019-12-23 | 2023-04-04 | Arm Limited | Specializing neural networks for heterogeneous systems |
CN111178490B (zh) | 2019-12-31 | 2021-08-24 | 北京百度网讯科技有限公司 | 数据输出方法、获取方法、装置和电子设备 |
CN111126589B (zh) * | 2019-12-31 | 2022-05-20 | 昆仑芯(北京)科技有限公司 | 神经网络数据处理装置、方法和电子设备 |
KR102399197B1 (ko) | 2020-01-17 | 2022-05-18 | 경희대학교 산학협력단 | 이상치 인지 근사적 코딩을 수행하는 전자 장치 그리고 그것의 동작 방법 |
US11023400B1 (en) | 2020-01-20 | 2021-06-01 | International Business Machines Corporation | High performance DMA transfers in host bus adapters |
US12072806B2 (en) * | 2020-01-22 | 2024-08-27 | Alibaba Group Holding Limited | Compression and decompression module in a cache controller for reducing off-chip data traffic |
KR102498066B1 (ko) * | 2020-02-20 | 2023-02-10 | 한국과학기술원 | 딥러닝 강화학습 가속기 |
KR20210108749A (ko) | 2020-02-26 | 2021-09-03 | 삼성전자주식회사 | 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템 |
CN111431539B (zh) * | 2020-03-04 | 2023-12-08 | 嘉楠明芯(北京)科技有限公司 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
CN111290979B (zh) * | 2020-03-23 | 2021-08-17 | 优刻得科技股份有限公司 | 数据传输方法、装置及系统 |
CN111522643B (zh) * | 2020-04-22 | 2024-06-25 | 杭州迪普科技股份有限公司 | 基于fpga的多队列调度方法、装置、计算机设备及存储介质 |
KR20210136476A (ko) * | 2020-05-07 | 2021-11-17 | 삼성전자주식회사 | 쿼드 트리 방법의 파라미터들을 이용하여 압축하는 장치 및 방법 |
US12015526B2 (en) * | 2020-05-26 | 2024-06-18 | Synopsys, Inc. | Mixed-precision neural networks |
GB202008299D0 (en) | 2020-06-02 | 2020-07-15 | Imagination Tech Ltd | Manipulation of data in a memory |
JP2023530471A (ja) * | 2020-06-18 | 2023-07-18 | インターデジタル ヴイシー ホールディングス フランス,エスエーエス | ディープニューラルネットワークを符号化/復号するためのシステム及び方法 |
CN111723053A (zh) * | 2020-06-24 | 2020-09-29 | 北京航天数据股份有限公司 | 一种数据的压缩方法及装置、解压方法及装置 |
US11275701B2 (en) * | 2020-06-24 | 2022-03-15 | Qualcomm Incorporated | Secure timer synchronization between function block and external SOC |
US20220004399A1 (en) * | 2020-07-03 | 2022-01-06 | Mediatek Inc. | Dynamic loading neural network inference at dram/on-bus sram/serial flash for power optimization |
CN111884658A (zh) * | 2020-07-09 | 2020-11-03 | 上海兆芯集成电路有限公司 | 数据解压缩方法、数据压缩方法及卷积运算装置 |
US11720404B2 (en) * | 2020-07-16 | 2023-08-08 | Samsung Electronics Co., Ltd. | Systems and methods for arbitrating access to a shared resource |
EP4184392A4 (en) * | 2020-07-17 | 2024-01-10 | Sony Group Corporation | NEURONAL NETWORK PROCESSING APPARATUS, INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING SYSTEM, ELECTRONIC INSTRUMENT, NEURONAL NETWORK PROCESSING METHOD AND PROGRAM |
CN111858058A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 基于并行计算的sgd负载均衡方法、装置及存储介质 |
FR3113158B1 (fr) * | 2020-08-03 | 2024-04-05 | Commissariat Energie Atomique | Architecture de calcul systolique pour la mise en œuvre de réseaux de neurones artificiels traitant plusieurs types de convolutions |
JP6835285B1 (ja) * | 2020-09-15 | 2021-02-24 | 富士電機株式会社 | データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ伸長方法、データ伸長装置およびデータ伸長プログラム |
US11470004B2 (en) * | 2020-09-22 | 2022-10-11 | Advanced Micro Devices, Inc. | Graded throttling for network-on-chip traffic |
US12113712B2 (en) | 2020-09-25 | 2024-10-08 | Advanced Micro Devices, Inc. | Dynamic network-on-chip throttling |
US20220121937A1 (en) * | 2020-10-21 | 2022-04-21 | Samsung Electronics Co., Ltd. | System and method for dynamic quantization for deep neural network feature maps |
JP2022094508A (ja) | 2020-12-15 | 2022-06-27 | 富士通株式会社 | 演算処理装置、演算処理方法および演算処理プログラム |
TWI745227B (zh) * | 2021-02-01 | 2021-11-01 | 國立陽明交通大學 | 用於進行原始服務端與外地服務端之間的第三方認證的通訊系統及方法 |
KR102298766B1 (ko) * | 2021-02-15 | 2021-09-07 | 주식회사 딥이티 | 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법 |
US20220351032A1 (en) * | 2021-04-28 | 2022-11-03 | Arm Limited | Memory for Artificial Neural Network Accelerator |
US20220383121A1 (en) * | 2021-05-25 | 2022-12-01 | Applied Materials, Inc. | Dynamic activation sparsity in neural networks |
US11256987B1 (en) * | 2021-06-02 | 2022-02-22 | SambaNova Systems, Inc. | Memory efficient dropout, with reordering of dropout mask elements |
JP2023018365A (ja) | 2021-07-27 | 2023-02-08 | 富士通株式会社 | 情報処理プログラム、情報処理方法及び情報処理装置 |
US20230053575A1 (en) * | 2021-08-18 | 2023-02-23 | Cisco Technology, Inc. | Partitioning and placement of models |
US20230079975A1 (en) * | 2021-09-10 | 2023-03-16 | Arm Limited | Power management for system-on-chip |
US12112200B2 (en) | 2021-09-13 | 2024-10-08 | International Business Machines Corporation | Pipeline parallel computing using extended memory |
KR20240110594A (ko) * | 2021-11-01 | 2024-07-15 | 엘지전자 주식회사 | 피쳐 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
KR102700292B1 (ko) * | 2021-11-26 | 2024-08-29 | 건국대학교 산학협력단 | 신경망 가속기의 통신 특성을 동적으로 재구성하는 프로세서 장치, 및 그의 구동 방법 |
EP4191476A1 (en) * | 2021-12-01 | 2023-06-07 | Nokia Technologies Oy | Machine learning accelerator |
US11816364B2 (en) * | 2022-01-13 | 2023-11-14 | Microsoft Technology Licensing, Llc | Performance evaluation of an application based on detecting degradation caused by other computing processes |
CN114466082B (zh) * | 2022-01-29 | 2024-01-09 | 上海阵量智能科技有限公司 | 数据压缩、数据解压方法、系统及人工智能ai芯片 |
US11720252B1 (en) * | 2022-03-04 | 2023-08-08 | Microsoft Technology Licensing, Llc | Method and apparatus for compressing and decompressing sparse data sets |
US20230350678A1 (en) * | 2022-04-28 | 2023-11-02 | Qualcomm Incorporated | Instruction Set Architecture for Neural Network Quantization and Packing |
WO2023250093A1 (en) * | 2022-06-22 | 2023-12-28 | Brainchip, Inc. | Method and system for implementing temporal convolution in spatiotemporal neural networks |
KR20240002346A (ko) * | 2022-06-29 | 2024-01-05 | 삼성전자주식회사 | Ai 부호화/복호화를 이용하여 영상을 처리하는 전자 장치 및 그 제어 방법 |
KR20240007495A (ko) * | 2022-07-08 | 2024-01-16 | 리벨리온 주식회사 | 뉴럴 코어, 이를 포함하는 뉴럴 프로세싱 장치 및 뉴럴 프로세싱 장치의 데이터 로드 방법 |
CN115309349B (zh) * | 2022-10-12 | 2023-01-20 | 深圳鲲云信息科技有限公司 | 深度学习的稀疏数据存储方法、计算机设备和存储介质 |
US11983128B1 (en) * | 2022-12-16 | 2024-05-14 | Amazon Technologies, Inc. | Multidimensional and multiblock tensorized direct memory access descriptors |
US12132502B1 (en) * | 2023-10-09 | 2024-10-29 | Qualcomm Incorporated | Packet-based universal bit-field masking coding using configurable sparsity information |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065631A1 (en) * | 2001-10-03 | 2003-04-03 | Mcbride Chad B. | Pipelined hardware implementation of a neural network circuit |
CN101946249A (zh) * | 2008-02-13 | 2011-01-12 | 微软公司 | 使用相关用户的数据来增强web搜索 |
US20160179434A1 (en) * | 2014-12-19 | 2016-06-23 | Intel Corporation | Storage device and method for performing convolution operations |
US20160292040A1 (en) * | 2015-03-30 | 2016-10-06 | Commvault Systems, Inc. | Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage |
CN106104512A (zh) * | 2013-09-19 | 2016-11-09 | 西斯摩斯公司 | 用于主动获取社交数据的系统和方法 |
US20160335119A1 (en) * | 2015-05-12 | 2016-11-17 | minds.ai inc | Batch-based neural network system |
Family Cites Families (189)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4298954A (en) | 1979-04-30 | 1981-11-03 | International Business Machines Corporation | Alternating data buffers when one buffer is empty and another buffer is variably full of data |
JPH0642237B2 (ja) | 1983-12-28 | 1994-06-01 | 株式会社日立製作所 | 並列処理装置 |
US5056015A (en) * | 1988-03-23 | 1991-10-08 | Du Pont Pixel Systems Limited | Architectures for serial or parallel loading of writable control store |
EP0334624A3 (en) * | 1988-03-23 | 1993-03-31 | Du Pont Pixel Systems Limited | Microcoded computer system |
EP0340901A3 (en) * | 1988-03-23 | 1992-12-30 | Du Pont Pixel Systems Limited | Access system for dual port memory |
JP2703010B2 (ja) | 1988-12-23 | 1998-01-26 | 株式会社日立製作所 | ニユーラルネツト信号処理プロセツサ |
US5369773A (en) | 1991-04-26 | 1994-11-29 | Adaptive Solutions, Inc. | Neural network using virtual-zero |
US5357597A (en) * | 1991-06-24 | 1994-10-18 | International Business Machines Corporation | Convolutional expert neural system (ConExNS) |
US5487153A (en) | 1991-08-30 | 1996-01-23 | Adaptive Solutions, Inc. | Neural network sequencer and interface apparatus |
WO1993014459A1 (en) | 1992-01-17 | 1993-07-22 | Caelum Research Corporation | Modular parallel processing system |
JPH06195322A (ja) | 1992-10-29 | 1994-07-15 | Hitachi Ltd | 汎用型ニューロコンピュータとして用いられる情報処理装置 |
JP2938711B2 (ja) | 1993-05-10 | 1999-08-25 | 松下電器産業株式会社 | 並列計算機 |
US5859990A (en) | 1995-12-29 | 1999-01-12 | Intel Corporation | System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices |
US5933654A (en) | 1996-09-24 | 1999-08-03 | Allen-Bradley Company, Llc | Dynamic buffer fracturing by a DMA controller |
US6006325A (en) * | 1996-12-19 | 1999-12-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for instruction and data serialization in a computer processor |
US6547364B2 (en) * | 1997-07-12 | 2003-04-15 | Silverbrook Research Pty Ltd | Printing cartridge with an integrated circuit device |
KR100258355B1 (ko) * | 1997-12-26 | 2000-06-01 | 김영환 | 8 비트 병렬 셀 단위 인터리버 |
US6307867B1 (en) | 1998-05-14 | 2001-10-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Data transmission over a communications link with variable transmission rates |
US6654761B2 (en) * | 1998-07-29 | 2003-11-25 | Inxight Software, Inc. | Controlling which part of data defining a node-link structure is in memory |
JP2000059227A (ja) | 1998-08-07 | 2000-02-25 | Matsushita Electric Ind Co Ltd | 符号化/復号化装置、及び符号化/復号化方法 |
JP2000261416A (ja) * | 1999-03-09 | 2000-09-22 | Nec Eng Ltd | 二重化データ転送回路 |
US6785239B1 (en) | 1999-06-01 | 2004-08-31 | Cisco Technology, Inc. | Reducing delays in a communication network using a re-fragmentation pipeline |
JP2001188767A (ja) | 1999-12-28 | 2001-07-10 | Fuji Xerox Co Ltd | ニューラルネットワーク演算装置及びニューラルネットワークの演算方法 |
US6424737B1 (en) | 2000-01-24 | 2002-07-23 | Sony Corporation | Method and apparatus of compressing images using localized radon transforms |
WO2001069411A2 (en) | 2000-03-10 | 2001-09-20 | Arc International Plc | Memory interface and method of interfacing between functional entities |
GB2382899B (en) | 2000-12-29 | 2003-12-17 | Zarlink Semiconductor Ltd | A data queue system |
JP2002259939A (ja) * | 2001-03-05 | 2002-09-13 | Kitakiyuushiyuu Techno Center:Kk | 連想メモリーベースコンピュータ |
US6990079B2 (en) | 2001-06-08 | 2006-01-24 | International Business Machines Corporation | Optimizing fragment sizes in frame relay networks |
US7012893B2 (en) | 2001-06-12 | 2006-03-14 | Smartpackets, Inc. | Adaptive control of data packet size in networks |
US7106968B2 (en) | 2001-07-06 | 2006-09-12 | Optix Networks Inc. | Combined SONET/SDH and OTN architecture |
US6954744B2 (en) * | 2001-08-29 | 2005-10-11 | Honeywell International, Inc. | Combinatorial approach for supervised neural network learning |
US6961719B1 (en) * | 2002-01-07 | 2005-11-01 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Hybrid neural network and support vector machine method for optimization |
US7245627B2 (en) | 2002-04-23 | 2007-07-17 | Mellanox Technologies Ltd. | Sharing a network interface card among multiple hosts |
US7539608B1 (en) | 2002-05-10 | 2009-05-26 | Oracle International Corporation | Techniques for determining effects on system performance of a memory management parameter |
US7020207B1 (en) * | 2002-12-02 | 2006-03-28 | Hitachi, Ltd. | Video error concealment mechanism for block based video decompression |
US7444637B2 (en) | 2003-02-18 | 2008-10-28 | Microsoft Corporation | Systems and methods for scheduling coprocessor resources in a computing system |
US7137021B2 (en) * | 2003-05-15 | 2006-11-14 | International Business Machines Corporation | Power saving in FPU with gated power based on opcodes and data |
GB0313986D0 (en) * | 2003-06-17 | 2003-07-23 | Zarlink Semiconductor Inc | Data memory extension for use in double buffered TDM switches |
WO2005057400A1 (ja) | 2003-12-09 | 2005-06-23 | Matsushita Electric Industrial Co., Ltd. | 電子装置、その制御方法、ホスト装置及びその制御方法 |
US20050125797A1 (en) * | 2003-12-09 | 2005-06-09 | International Business Machines Corporation | Resource management for a system-on-chip (SoC) |
US7480640B1 (en) * | 2003-12-16 | 2009-01-20 | Quantum Leap Research, Inc. | Automated method and system for generating models from data |
US7376853B2 (en) | 2004-03-15 | 2008-05-20 | Canon Kabushiki Kaisha | Network apparatus, method for controlling the same, and program for the same |
US7284075B2 (en) | 2004-03-23 | 2007-10-16 | Intel Corporation | Inbound packet placement in host memory |
US7644239B2 (en) * | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US9143393B1 (en) * | 2004-05-25 | 2015-09-22 | Red Lambda, Inc. | System, method and apparatus for classifying digital data |
US20050289253A1 (en) * | 2004-06-24 | 2005-12-29 | Edirisooriya Samantha J | Apparatus and method for a multi-function direct memory access core |
US7363397B2 (en) | 2004-08-26 | 2008-04-22 | International Business Machines Corporation | System and method for DMA controller with multi-dimensional line-walking functionality |
US20060050693A1 (en) * | 2004-09-03 | 2006-03-09 | James Bury | Building data packets for an advanced switching fabric |
US20060100997A1 (en) * | 2004-10-27 | 2006-05-11 | Wall Gary C | Data caching |
US8190796B2 (en) * | 2004-11-02 | 2012-05-29 | Standard Microsystems Corporation | Hardware supported peripheral component memory alignment method |
CN1790918A (zh) | 2004-12-17 | 2006-06-21 | 中国科学院半导体研究所 | 基于虚拟信源和神经网络的无损数据压缩方法 |
US20060143401A1 (en) * | 2004-12-27 | 2006-06-29 | Jacob Doweck | Method and apparatus for prefetching based on cache fill buffer hits |
EP1701249A1 (en) * | 2005-03-11 | 2006-09-13 | Interuniversitair Microelektronica Centrum Vzw | Ultra low power ASIP (Application-Domain specific Instruction-set Processor) microcomputer |
US7793040B2 (en) * | 2005-06-01 | 2010-09-07 | Microsoft Corporation | Content addressable memory architecture |
US7747070B2 (en) * | 2005-08-31 | 2010-06-29 | Microsoft Corporation | Training convolutional neural networks on graphics processing units |
CN101401100B (zh) * | 2006-03-14 | 2012-10-10 | 国际商业机器公司 | 通过确定输入数据中的模式进行数据挖掘 |
RU2419226C2 (ru) * | 2006-03-31 | 2011-05-20 | Квэлкомм Инкорпорейтед | Управление памятью для высокоскоростного управления доступом к среде |
US9542642B2 (en) | 2006-04-06 | 2017-01-10 | Samuel F. Wood | Packet data neural network system and method |
US7764710B1 (en) * | 2006-04-25 | 2010-07-27 | Altera Corporation | Method and apparatus for processing communication protocol frame input |
US7620784B2 (en) * | 2006-06-09 | 2009-11-17 | Microsoft Corporation | High speed nonvolatile memory device using parallel writing among a plurality of interfaces |
US8718065B2 (en) | 2006-08-15 | 2014-05-06 | Broadcom Corporation | Transmission using multiple physical interface |
US7496707B2 (en) | 2006-08-22 | 2009-02-24 | International Business Machines Corporation | Dynamically scalable queues for performance driven PCI express memory traffic |
US20080091868A1 (en) * | 2006-10-17 | 2008-04-17 | Shay Mizrachi | Method and System for Delayed Completion Coalescing |
US8249171B2 (en) | 2006-11-10 | 2012-08-21 | Texas Instruments Incorporated | MPEG-2 transport stream packet synchronizer |
US20080168013A1 (en) * | 2006-12-05 | 2008-07-10 | Paul Cadaret | Scalable pattern recognition system |
KR101532951B1 (ko) * | 2006-12-06 | 2015-07-09 | 론지튜드 엔터프라이즈 플래시 에스.에이.알.엘. | 고-용량, 비-휘발성 스토리지를 위한 캐시로서의 솔리드-스테이트 스토리지 장치, 시스템 및 방법 |
WO2008067676A1 (en) | 2006-12-08 | 2008-06-12 | Medhat Moussa | Architecture, system and method for artificial neural network implementation |
CN101221541B (zh) * | 2007-01-09 | 2011-04-20 | 张立军 | 用于soc的可编程通信控制器 |
US7620749B2 (en) * | 2007-01-10 | 2009-11-17 | International Business Machines Corporation | Descriptor prefetch mechanism for high latency and out of order DMA device |
US8190834B2 (en) | 2007-06-15 | 2012-05-29 | Emc Corporation | Process for contiguously streaming data from a content addressed storage system |
JP5184824B2 (ja) * | 2007-06-15 | 2013-04-17 | キヤノン株式会社 | 演算処理装置及び方法 |
US7822951B2 (en) | 2007-08-01 | 2010-10-26 | Advanced Micro Devices, Inc. | System and method of load-store forwarding |
US8200992B2 (en) * | 2007-09-24 | 2012-06-12 | Cognitive Electronics, Inc. | Parallel processing computer systems with reduced power consumption and methods for providing the same |
CN101183873B (zh) | 2007-12-11 | 2011-09-28 | 广州中珩电子科技有限公司 | 一种基于bp神经网络的嵌入式系统数据压缩解压缩方法 |
US8244953B1 (en) | 2007-12-18 | 2012-08-14 | Emc Corporation | System and method for faster data retrieval from tape media |
US7730244B1 (en) * | 2008-03-27 | 2010-06-01 | Xilinx, Inc. | Translation of commands in an interconnection of an embedded processor block core in an integrated circuit |
US8201166B2 (en) * | 2008-04-30 | 2012-06-12 | Hewlett-Packard Development Company, L.P. | Virtualization platform configured with virtual connect control |
GB0811057D0 (en) | 2008-06-17 | 2008-07-23 | Univ Ulster | Artificial neural network architecture |
US8566515B2 (en) * | 2009-01-12 | 2013-10-22 | Maxim Integrated Products, Inc. | Memory subsystem |
US20100180100A1 (en) | 2009-01-13 | 2010-07-15 | Mavrix Technology, Inc. | Matrix microprocessor and method of operation |
US8392687B2 (en) * | 2009-01-21 | 2013-03-05 | Micron Technology, Inc. | Solid state memory formatting |
JP5458629B2 (ja) * | 2009-03-31 | 2014-04-02 | ブラザー工業株式会社 | ノード装置、ノード処理プログラム及び検索方法 |
US20100257174A1 (en) | 2009-04-02 | 2010-10-07 | Matthew Dino Minuti | Method for data compression utilizing pattern-analysis and matching means such as neural networks |
US20100281192A1 (en) | 2009-04-30 | 2010-11-04 | Novafora, Inc. | Apparatus and method for transferring data within a data processing system |
EP2259214B1 (en) | 2009-06-04 | 2013-02-27 | Honda Research Institute Europe GmbH | Implementing a neural associative memory based on non-linear learning of discrete synapses |
GB2484416B (en) * | 2009-06-26 | 2015-02-25 | Intel Corp | Optimizations for an unbounded transactional memory (utm) system |
US8442927B2 (en) | 2009-07-30 | 2013-05-14 | Nec Laboratories America, Inc. | Dynamically configurable, multi-ported co-processor for convolutional neural networks |
US8316194B2 (en) * | 2009-12-15 | 2012-11-20 | Intel Corporation | Mechanisms to accelerate transactions using buffered stores |
US20110153877A1 (en) * | 2009-12-23 | 2011-06-23 | King Steven R | Method and apparatus to exchange data via an intermediary translation and queue manager |
WO2011085934A1 (en) * | 2010-01-18 | 2011-07-21 | Xelerated Ab | A packet buffer comprising a data section and a data description section |
US8713260B2 (en) | 2010-04-02 | 2014-04-29 | Intel Corporation | Adaptive block pre-fetching method and system |
US8549506B2 (en) * | 2010-04-27 | 2013-10-01 | Microsoft Corporation | Resumable methods |
US8965819B2 (en) * | 2010-08-16 | 2015-02-24 | Oracle International Corporation | System and method for effective caching using neural networks |
US8701099B2 (en) * | 2010-11-02 | 2014-04-15 | International Business Machines Corporation | Accelerating generic loop iterators using speculative execution |
US9300321B2 (en) * | 2010-11-05 | 2016-03-29 | University of Maribor | Light detection and ranging (LiDAR)data compression and decompression methods and apparatus |
US8515882B2 (en) | 2010-11-18 | 2013-08-20 | International Business Machines Corporation | Efficient storage of individuals for optimization simulation |
CN102480337B (zh) | 2010-11-30 | 2016-04-13 | 国际商业机器公司 | 无线电软件系统以及用于其的解码装置和方法 |
US8966413B2 (en) * | 2011-02-17 | 2015-02-24 | The Board Of Trustees Of The Leland Stanford Junior University | System and method for a chip generator |
US8892488B2 (en) * | 2011-06-01 | 2014-11-18 | Nec Laboratories America, Inc. | Document classification with weighted supervised n-gram embedding |
WO2012170904A2 (en) * | 2011-06-10 | 2012-12-13 | Bytemobile, Inc. | Adaptive bitrate management on progressive download with indexed media files |
CN102332162A (zh) | 2011-09-19 | 2012-01-25 | 西安百利信息科技有限公司 | 基于人工神经网络的医学图像兴趣区自动识别和分级压缩方法 |
US9015092B2 (en) * | 2012-06-04 | 2015-04-21 | Brain Corporation | Dynamically reconfigurable stochastic learning apparatus and methods |
US9326075B2 (en) | 2011-10-07 | 2016-04-26 | Cochlear Limited | Flexible protocol for an implanted prosthesis |
US9235799B2 (en) * | 2011-11-26 | 2016-01-12 | Microsoft Technology Licensing, Llc | Discriminative pretraining of deep neural networks |
US9141166B2 (en) * | 2011-12-13 | 2015-09-22 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains |
CN102523452B (zh) | 2011-12-29 | 2014-12-17 | 西安空间无线电技术研究所 | 图像转换压缩传输方法 |
CN102609222B (zh) * | 2012-02-13 | 2015-03-25 | 山东华芯半导体有限公司 | 基于命令描述符的闪存控制方法 |
US9128925B2 (en) * | 2012-04-24 | 2015-09-08 | Freescale Semiconductor, Inc. | System and method for direct memory access buffer utilization by setting DMA controller with plurality of arbitration weights associated with different DMA engines |
US9509632B2 (en) * | 2012-04-25 | 2016-11-29 | Empire Technology Development Llc | Workload prediction for network-based computing |
US9703500B2 (en) * | 2012-04-25 | 2017-07-11 | International Business Machines Corporation | Reducing power consumption by migration of data within a tiered storage system |
US9015096B2 (en) * | 2012-05-30 | 2015-04-21 | Qualcomm Incorporated | Continuous time spiking neural network event-based simulation that schedules co-pending events using an indexable list of nodes |
US9432489B2 (en) * | 2012-06-05 | 2016-08-30 | Intel Corporation | Systems and methods for processing encoded data streams |
US9159020B2 (en) * | 2012-09-14 | 2015-10-13 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
US20160013773A1 (en) * | 2012-11-06 | 2016-01-14 | Pavel Dourbal | Method and apparatus for fast digital filtering and signal processing |
WO2014085975A1 (zh) * | 2012-12-04 | 2014-06-12 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
DE112012007063B4 (de) | 2012-12-26 | 2022-12-15 | Intel Corp. | Zusammenfügen von benachbarten Sammel-/Streuoperationen |
WO2014116712A1 (en) * | 2013-01-22 | 2014-07-31 | Samplify Systems, Inc. | Data compression and decompression using simd instructions |
US10909137B2 (en) | 2014-10-06 | 2021-02-02 | Fisher-Rosemount Systems, Inc. | Streaming data for analytics in process control systems |
CN104050200B (zh) | 2013-03-15 | 2017-12-08 | 伊姆西公司 | 用于数据拷贝的方法和装置 |
US9760346B2 (en) * | 2013-05-31 | 2017-09-12 | Microsoft Technology Licensing, Llc | Deeply parallel source code compilation |
US9053015B2 (en) | 2013-06-17 | 2015-06-09 | Topcon Positioning Systems, Inc. | NAND flash memory interface controller with GNSS receiver firmware booting capability |
US9280465B2 (en) * | 2013-10-08 | 2016-03-08 | Globalfoundries Inc. | Techniques for moving checkpoint-based high-availability log and data directly from a producer cache to a consumer cache |
US20150286873A1 (en) * | 2014-04-03 | 2015-10-08 | Bruce L. Davis | Smartphone-based methods and systems |
US9286171B2 (en) * | 2013-12-12 | 2016-03-15 | International Business Machines Corporation | Priming failover of stateful offload adapters |
GB2521828A (en) * | 2013-12-23 | 2015-07-08 | Sony Corp | Data encoding and decoding |
US20160350250A1 (en) * | 2013-12-23 | 2016-12-01 | Intel Corporation | Input output data alignment |
US9851771B2 (en) | 2013-12-28 | 2017-12-26 | Intel Corporation | Dynamic power measurement and estimation to improve memory subsystem power performance |
US10097372B2 (en) * | 2014-01-09 | 2018-10-09 | Ciena Corporation | Method for resource optimized network virtualization overlay transport in virtualized data center environments |
EP2896428B1 (fr) * | 2014-01-16 | 2016-11-09 | Sorin CRM SAS | Ensemble de réseau de neurones pour l'évaluation et l'adaptation d'une thérapie antitachycardique par un défibrillateur implantable |
US10339447B2 (en) * | 2014-01-23 | 2019-07-02 | Qualcomm Incorporated | Configuring sparse neuronal networks |
US9563369B2 (en) * | 2014-04-14 | 2017-02-07 | Microsoft Technology Licensing, Llc | Fine-grained bandwidth provisioning in a memory controller |
JP6328787B2 (ja) * | 2014-04-15 | 2018-05-23 | インテル・コーポレーション | 複数の連想メモリを用いた神経形態学的グラフ圧縮の方法、システム、及びコンピュータプログラム製品 |
US9219499B2 (en) | 2014-05-16 | 2015-12-22 | Robert Bosch Gmbh | Run time compression method for a vehicle communication bus |
US9892125B1 (en) * | 2014-05-23 | 2018-02-13 | MapD Technologies, Inc. | Method for logging update queries |
US9959142B2 (en) * | 2014-06-17 | 2018-05-01 | Mediatek Inc. | Dynamic task scheduling method for dispatching sub-tasks to computing devices of heterogeneous computing system and related computer readable medium |
BR112017003893A8 (pt) * | 2014-09-12 | 2017-12-26 | Microsoft Corp | Rede dnn aluno aprendiz via distribuição de saída |
US9990307B1 (en) | 2014-10-29 | 2018-06-05 | Netronome Systems, Inc. | Split packet transmission DMA engine |
EP3035249B1 (en) | 2014-12-19 | 2019-11-27 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
US10223635B2 (en) | 2015-01-22 | 2019-03-05 | Qualcomm Incorporated | Model compression and fine-tuning |
CN104573064B (zh) * | 2015-01-23 | 2017-12-08 | 四川中科腾信科技有限公司 | 一种大数据环境下的数据处理方法 |
US10234930B2 (en) * | 2015-02-13 | 2019-03-19 | Intel Corporation | Performing power management in a multicore processor |
CA2923600A1 (en) * | 2015-03-12 | 2016-09-12 | Staples, Inc. | Review sentiment analysis |
WO2016149944A1 (zh) * | 2015-03-26 | 2016-09-29 | 北京旷视科技有限公司 | 用于识别人脸的方法、系统和计算机程序产品 |
US9378044B1 (en) * | 2015-03-28 | 2016-06-28 | Vmware, Inc. | Method and system that anticipates deleterious virtual-machine state changes within a virtualization layer |
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 |
US9965824B2 (en) * | 2015-04-23 | 2018-05-08 | Google Llc | Architecture for high performance, power efficient, programmable image processing |
US20160328644A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Adaptive selection of artificial neural networks |
US10083395B2 (en) * | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
CN106203619B (zh) * | 2015-05-29 | 2022-09-13 | 三星电子株式会社 | 数据优化的神经网络遍历 |
US9595002B2 (en) * | 2015-05-29 | 2017-03-14 | Sas Institute Inc. | Normalizing electronic communications using a vector having a repeating substring as input for a neural network |
US20160350653A1 (en) * | 2015-06-01 | 2016-12-01 | Salesforce.Com, Inc. | Dynamic Memory Network |
US20160358069A1 (en) * | 2015-06-03 | 2016-12-08 | Samsung Electronics Co., Ltd. | Neural network suppression |
CN106250981B (zh) * | 2015-06-10 | 2022-04-01 | 三星电子株式会社 | 减少存储器访问和网络内带宽消耗的脉冲神经网络 |
US20160378491A1 (en) | 2015-06-26 | 2016-12-29 | Microsoft Technology Licensing, Llc | Determination of target location for transfer of processor control |
US10275001B2 (en) | 2015-06-26 | 2019-04-30 | Intel Corporation | Thermal throttling of electronic devices |
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 |
CN108140131B (zh) | 2015-10-04 | 2021-09-14 | 艾腾怀斯股份有限公司 | 用于将卷积网络应用于空间数据的系统和方法 |
US11029949B2 (en) * | 2015-10-08 | 2021-06-08 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit |
CN106485321B (zh) * | 2015-10-08 | 2019-02-12 | 上海兆芯集成电路有限公司 | 具有架构神经网络执行单元的处理器 |
US10471594B2 (en) * | 2015-12-01 | 2019-11-12 | Kindred Systems Inc. | Systems, devices, and methods for the distribution and collection of multimodal data associated with robots |
CN105488563A (zh) * | 2015-12-16 | 2016-04-13 | 重庆大学 | 面向深度学习的稀疏自适应神经网络、算法及实现装置 |
US10007519B2 (en) * | 2015-12-22 | 2018-06-26 | Intel IP Corporation | Instructions and logic for vector bit field compression and expansion |
US11232085B2 (en) * | 2016-01-07 | 2022-01-25 | Amazon Technologies, Inc. | Outlier detection for streaming data |
CN107609642B (zh) * | 2016-01-20 | 2021-08-31 | 中科寒武纪科技股份有限公司 | 计算装置和方法 |
US10565207B2 (en) * | 2016-04-12 | 2020-02-18 | Hsilin Huang | Method, system and program product for mask-based compression of a sparse matrix |
CN106203624B (zh) * | 2016-06-23 | 2019-06-21 | 上海交通大学 | 基于深度神经网络的矢量量化系统及方法 |
CN106204468B (zh) * | 2016-06-27 | 2019-04-26 | 深圳市未来媒体技术研究院 | 一种基于ReLU卷积神经网络的图像去噪方法 |
US10528864B2 (en) * | 2016-08-11 | 2020-01-07 | Nvidia Corporation | Sparse convolutional neural network accelerator |
WO2018058452A1 (zh) * | 2016-09-29 | 2018-04-05 | 北京中科寒武纪科技有限公司 | 一种执行人工神经网络运算的装置和方法 |
US10296292B2 (en) * | 2016-10-20 | 2019-05-21 | Advanced Micro Devices, Inc. | Dynamic variable precision computation |
CN106530200B (zh) | 2016-10-23 | 2020-01-07 | 深圳大学 | 一种基于深度学习模型的隐写图像检测方法及系统 |
US9959498B1 (en) | 2016-10-27 | 2018-05-01 | Google Llc | Neural network instruction set architecture |
CN106529670B (zh) * | 2016-10-27 | 2019-01-25 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
US10067710B2 (en) * | 2016-11-23 | 2018-09-04 | Advanced Micro Devices, Inc. | Detecting buffer overflows in general-purpose GPU applications |
US20180164866A1 (en) * | 2016-12-13 | 2018-06-14 | Qualcomm Incorporated | Low-power architecture for sparse neural network |
US10037490B2 (en) * | 2016-12-13 | 2018-07-31 | Google Llc | Performing average pooling in hardware |
US10169296B2 (en) * | 2016-12-30 | 2019-01-01 | Intel Corporation | Distributed matrix multiplication for neural networks |
US10417364B2 (en) | 2017-01-04 | 2019-09-17 | Stmicroelectronics International N.V. | Tool to create a reconfigurable interconnect framework |
US10096134B2 (en) * | 2017-02-01 | 2018-10-09 | Nvidia Corporation | Data compaction and memory bandwidth reduction for sparse neural networks |
US10333549B1 (en) * | 2017-03-08 | 2019-06-25 | iDensify LLC | System and components for encoding integers |
US10909447B2 (en) | 2017-03-09 | 2021-02-02 | Google Llc | Transposing neural network matrices in hardware |
US10795836B2 (en) | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
US10671349B2 (en) * | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US20190081637A1 (en) * | 2017-09-08 | 2019-03-14 | Nvidia Corporation | Data inspection for compression/decompression configuration and data type determination |
KR20190066473A (ko) * | 2017-12-05 | 2019-06-13 | 삼성전자주식회사 | 뉴럴 네트워크에서 컨볼루션 연산을 처리하는 방법 및 장치 |
US12014505B2 (en) * | 2019-01-31 | 2024-06-18 | Samsung Electronics Co., Ltd. | Method and apparatus with convolution neural network processing using shared operand |
US11671111B2 (en) * | 2019-04-17 | 2023-06-06 | Samsung Electronics Co., Ltd. | Hardware channel-parallel data compression/decompression |
CN112465129B (zh) * | 2019-09-09 | 2024-01-09 | 上海登临科技有限公司 | 片内异构人工智能处理器 |
-
2017
- 2017-09-01 US US15/694,663 patent/US10795836B2/en active Active
- 2017-09-12 US US15/702,311 patent/US10540584B2/en active Active
- 2017-09-28 US US15/719,351 patent/US11256976B2/en active Active
- 2017-10-17 US US15/786,514 patent/US20180300602A1/en not_active Abandoned
- 2017-11-15 US US15/813,952 patent/US11182667B2/en active Active
- 2017-12-01 US US15/829,832 patent/US10963403B2/en active Active
-
2018
- 2018-01-26 US US15/881,519 patent/US11010315B2/en active Active
- 2018-04-06 WO PCT/US2018/026353 patent/WO2018194846A1/en unknown
- 2018-04-06 WO PCT/US2018/026354 patent/WO2018194847A1/en unknown
- 2018-04-06 CN CN202310865940.6A patent/CN116909984A/zh active Pending
- 2018-04-06 EP EP18720862.4A patent/EP3612947B1/en active Active
- 2018-04-06 EP EP18720860.8A patent/EP3612945B1/en active Active
- 2018-04-06 WO PCT/US2018/026357 patent/WO2018194850A1/en unknown
- 2018-04-06 WO PCT/US2018/026355 patent/WO2018194848A1/en unknown
- 2018-04-06 WO PCT/US2018/026358 patent/WO2018194851A1/en unknown
- 2018-04-06 CN CN202310874704.0A patent/CN116909985A/zh active Pending
- 2018-04-06 CN CN201880025227.8A patent/CN110520870B/zh active Active
- 2018-04-06 WO PCT/US2018/026352 patent/WO2018194845A1/en unknown
- 2018-04-06 EP EP18720863.2A patent/EP3612989B1/en active Active
- 2018-04-06 CN CN201880025503.0A patent/CN110520853B/zh active Active
- 2018-04-06 CN CN201880025417.XA patent/CN110520846B/zh active Active
- 2018-04-06 EP EP18724637.6A patent/EP3612948A1/en not_active Ceased
- 2018-04-06 EP EP18725024.6A patent/EP3612937A1/en not_active Withdrawn
- 2018-04-06 EP EP18720861.6A patent/EP3612946B1/en active Active
- 2018-04-06 EP EP18720710.5A patent/EP3612942B1/en active Active
- 2018-04-06 CN CN201880025415.0A patent/CN110546628B/zh active Active
- 2018-04-06 CN CN201880024892.5A patent/CN110506260B/zh active Active
- 2018-04-06 CN CN201880025504.5A patent/CN110520857B/zh active Active
- 2018-04-06 CN CN201880025244.1A patent/CN110520856B/zh active Active
- 2018-04-06 WO PCT/US2018/026356 patent/WO2018194849A1/en unknown
- 2018-04-11 US US15/950,550 patent/US11100390B2/en active Active
- 2018-04-11 US US15/950,644 patent/US10628345B2/en active Active
- 2018-04-11 US US15/951,106 patent/US11100391B2/en active Active
- 2018-04-12 US US15/951,690 patent/US11205118B2/en active Active
- 2018-04-13 US US15/953,195 patent/US11341399B2/en active Active
- 2018-04-13 US US15/953,388 patent/US11405051B2/en active Active
- 2018-04-13 US US15/953,356 patent/US11528033B2/en active Active
- 2018-04-13 CN CN201880025488.XA patent/CN110537194B/zh active Active
- 2018-04-13 WO PCT/US2018/027680 patent/WO2018194940A1/en active Application Filing
- 2018-04-13 WO PCT/US2018/027674 patent/WO2018194939A1/en unknown
- 2018-04-13 EP EP18721658.5A patent/EP3612990B1/en active Active
- 2018-04-13 US US15/953,330 patent/US11476869B2/en active Active
- 2018-04-16 WO PCT/US2018/027835 patent/WO2018194994A2/en unknown
- 2018-04-16 EP EP18722340.9A patent/EP3612934A1/en active Pending
- 2018-04-16 WO PCT/US2018/027840 patent/WO2018194998A1/en active Application Filing
- 2018-04-16 CN CN201880025508.3A patent/CN110582785B/zh active Active
- 2018-04-16 CN CN201880025420.1A patent/CN110520909B/zh active Active
- 2018-04-16 CN CN201880025130.7A patent/CN110546654B/zh active Active
- 2018-04-16 NZ NZ756870A patent/NZ756870A/en unknown
- 2018-04-16 EP EP18724644.2A patent/EP3612988A2/en not_active Withdrawn
- 2018-04-16 AU AU2018256212A patent/AU2018256212B2/en active Active
- 2018-04-16 EP EP18721665.0A patent/EP3612991B1/en active Active
- 2018-04-16 EP EP18722339.1A patent/EP3612933B1/en active Active
- 2018-04-16 CN CN202410312381.0A patent/CN118153639A/zh active Pending
- 2018-04-16 MX MX2019012388A patent/MX2019012388A/es unknown
- 2018-04-16 MY MYPI2019006051A patent/MY201868A/en unknown
- 2018-04-16 JP JP2019555659A patent/JP7004741B2/ja active Active
- 2018-04-16 WO PCT/US2018/027837 patent/WO2018194996A1/en unknown
- 2018-04-16 CN CN201880025426.9A patent/CN110678843B/zh active Active
- 2018-04-16 KR KR1020237037000A patent/KR102663557B1/ko active IP Right Grant
- 2018-04-16 CN CN201880025126.0A patent/CN110546610B/zh active Active
- 2018-04-16 WO PCT/US2018/027828 patent/WO2018194988A1/en unknown
- 2018-04-16 EP EP18721932.4A patent/EP3613026B1/en active Active
- 2018-04-16 WO PCT/US2018/027834 patent/WO2018194993A1/en unknown
- 2018-04-16 CN CN201880025480.3A patent/CN110546611B/zh active Active
- 2018-04-16 KR KR1020197033456A patent/KR102596644B1/ko active IP Right Grant
- 2018-04-16 CA CA3056660A patent/CA3056660A1/en active Pending
- 2018-04-16 WO PCT/US2018/027836 patent/WO2018194995A1/en unknown
- 2018-04-16 SG SG11201909175X patent/SG11201909175XA/en unknown
- 2018-04-16 EP EP18723123.8A patent/EP3612936B1/en active Active
- 2018-04-16 BR BR112019021541-7A patent/BR112019021541A2/pt unknown
- 2018-04-16 RU RU2019136750A patent/RU2767447C2/ru active
-
2019
- 2019-09-05 ZA ZA2019/05874A patent/ZA201905874B/en unknown
- 2019-09-14 PH PH12019550191A patent/PH12019550191A1/en unknown
- 2019-10-04 CO CONC2019/0011014A patent/CO2019011014A2/es unknown
- 2019-10-07 IL IL269888A patent/IL269888B/en unknown
- 2019-10-07 CL CL2019002864A patent/CL2019002864A1/es unknown
- 2019-10-16 MX MX2023008178A patent/MX2023008178A/es unknown
-
2020
- 2020-04-08 US US16/843,800 patent/US11176448B2/en active Active
- 2020-07-29 US US16/942,728 patent/US11030131B2/en active Active
-
2021
- 2021-04-15 US US17/232,074 patent/US11750212B2/en active Active
-
2022
- 2022-01-25 US US17/583,499 patent/US11722147B2/en active Active
- 2022-11-11 US US18/054,851 patent/US11909422B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065631A1 (en) * | 2001-10-03 | 2003-04-03 | Mcbride Chad B. | Pipelined hardware implementation of a neural network circuit |
CN101946249A (zh) * | 2008-02-13 | 2011-01-12 | 微软公司 | 使用相关用户的数据来增强web搜索 |
CN106104512A (zh) * | 2013-09-19 | 2016-11-09 | 西斯摩斯公司 | 用于主动获取社交数据的系统和方法 |
US20160179434A1 (en) * | 2014-12-19 | 2016-06-23 | Intel Corporation | Storage device and method for performing convolution operations |
US20160292040A1 (en) * | 2015-03-30 | 2016-10-06 | Commvault Systems, Inc. | Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage |
US20160335119A1 (en) * | 2015-05-12 | 2016-11-17 | minds.ai inc | Batch-based neural network system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592082A (zh) * | 2020-04-30 | 2021-11-02 | 意法半导体股份有限公司 | 用于从人工神经网络分配中间数据的设备和方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110520846A (zh) | 对用于优化存储器利用和神经网络的性能的数据分区的动态排序 | |
Chauhan et al. | A brief review of hypernetworks in deep learning | |
Siebel | Digital transformation: survive and thrive in an era of mass extinction | |
US11106976B2 (en) | Neural network output layer for machine learning | |
Raj et al. | High-performance big-data analytics | |
US20190279038A1 (en) | Data flow graph node parallel update for machine learning | |
US11709783B1 (en) | Tensor data distribution using grid direct-memory access (DMA) controller | |
KR20230065038A (ko) | 쿼리 기반 데이터베이스 연동 딥러닝 분산 시스템 및 그 방법 | |
Senk et al. | A collaborative simulation-analysis workflow for computational neuroscience using HPC | |
Barua | Data science and Machine learning in the Clouds: A Perspective for the Future | |
Graham | The art of data science | |
Chakraborty et al. | Computing for Data Analysis: Theory and Practices | |
Mishra | Scalable AI and Design Patterns: Design, Develop, and Deploy Scalable AI Solutions | |
Sloot et al. | Computational Science-ICCS 2002: International Conference, Amsterdam, The Netherlands, April 21-24, 2002. Proceedings | |
Dai | 3D Interior Design System Model Based on Computer Virtual Reality Technology. | |
US20240348663A1 (en) | Ai-enhanced simulation and modeling experimentation and control | |
US20230168923A1 (en) | Annotation of a Machine Learning Pipeline with Operational Semantics | |
US20230169354A1 (en) | Annotation of a Machine Learning Pipeline with Operational Semantics to Support Distributed Lineage Tracking | |
Restelli | Dynamic Selection Techniques for Federated Learning | |
Rane et al. | Future Research Opportunities for Artificial Intelligence in Industry 4.0 and 5.0 | |
Vlantis | Big Data Visual Analytics Architecture | |
Dietrich et al. | Understanding the eResearch Ecosystem in New Zealand-Workshop Reflection Report | |
Vlantis et al. | On-Line Big-Data Processing for Visual Analytics with Argus-Panoptes | |
De Bosschere et al. | HiPEAC Vision 2015 | |
Gates et al. | Advance Praise for Digital Transformation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |