CN110520870A - 用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件 - Google Patents

用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件 Download PDF

Info

Publication number
CN110520870A
CN110520870A CN201880025227.8A CN201880025227A CN110520870A CN 110520870 A CN110520870 A CN 110520870A CN 201880025227 A CN201880025227 A CN 201880025227A CN 110520870 A CN110520870 A CN 110520870A
Authority
CN
China
Prior art keywords
vectors
data
vector
neural network
neuron
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
Application number
CN201880025227.8A
Other languages
English (en)
Other versions
CN110520870B (zh
Inventor
A·A·安巴德卡
A·托米克
C·B·麦克布赖德
G·彼得
K·D·塞多拉
L·M·瓦尔
B·博布罗夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110520870A publication Critical patent/CN110520870A/zh
Application granted granted Critical
Publication of CN110520870B publication Critical patent/CN110520870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5033Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6058Saving memory space in the encoder or decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (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的总体性能。操作地,权重值的一个或多个连续段可以被转换为任意长度的一个或多个向量,并且一个或多个向量中的每个向量可以被分配有索引。所生成的索引可以被存储在示例性向量量化查找表中并且在飞行中在运行时由示例性快速权重查找硬件来取回,作为NN的示例性数据处理功能的一部分,作为内联去量化操作的一部分,以获得所需要的一个或多个神经元权重值。

Description

用于具有动态向量长度和码本大小的高吞吐量向量去量化的 灵活硬件
背景技术
在人工神经网络(NN)中,神经元是用于对大脑中的生物神经元进行建模的基本单元。人工神经元的模型包括输入向量与添加到具有应用的非线性的偏置的权重向量的内积。对于深度神经网络(DNN)(例如,如由示例性DNN模块所表达),神经元可以紧密地映射到人工神经元。
在跨NN或DNN处理数据中,执行示例性处理操作的示例性神经元被要求以处理大量的数据以便应用各种数据处理/操纵操作,其可能影响导致对期望的状态处理目标不利的关键潜在因素的总体NN或DNN性能(例如,标识示例性输入数据中的对象和/或对象特性——图像、声音、地理坐标等)。通常,现有NN和DNN在执行这些各种操作时花费可避免的处理时间(例如,每秒浮动/固定点操作(每秒所执行的浮点运算次数,GFlops/s))和存储器空间(例如,每秒传送的字节数(每秒G字节数,GBytes/s))。特别地,当前实践要求在由人工神经元处理之前从协作存储器部件读取神经元权重值。通常,权重值可以被存储在通用存储器(诸如DRAM)中或者被高速缓存在快速本地存储器(诸如SRAM)中。利用通用存储器,要求时间和功率以读取权重值。利用本地存储器,高性能高速缓存存储器是昂贵的,并且通常是大小有限的。由于可避免的时间/功率被要求或者直接地从通用存储器或者间接地从本地高速缓存存储器读取权重值,因而当前实践缺乏完全优化NN/DNN的处理能力。
克服当前实践的低效率的传统方法是降低权重数据的精度以降低所要求的存储器量。例如,32位浮点权重值可以减少到16位半精度值,其导致权重存储器要求中的50%节省。具有权重值的精度的大降低的问题是结果准确度的降低。
更有利的NN/DNN将部署操作地允许更多权重值表示在给定量的本地存储器中的神经元权重值的向量量化的使用,其进而减少将权重值从主存储器加载到本地存储器高速缓存中的开销和/或降低所要求的本地存储器量。特别地,向量量化过程可以利用查找表将权重编码转换为权重数据。操作地,通过利用向量量化,整个权重团块可以操作地解译为可以在运行时期间解码的权重编码。
更特别地,权重值的向量量化操作地可以将权重值的连续段转换为任意长度的向量(例如,2个权重值、4个权重值等)并且每个向量可以分配有索引值。在要求权重值的神经元计算操作的执行期间,索引被用于引用查找表中被用于计算的特定向量。由于单个索引被用于引用多个权重值,因而实现存储器空间的降低,而不必降低权重值的精度。
所呈现的本文中做出的公开内容关于这些考虑和其他考虑。
发明内容
本文所描述的技术提供使用神经元权重值的向量量化来减少示例性神经网络(NN)和/或深度神经网络(DNN)环境的存储器要求和处理周期。本文所描述的系统和方法的方面涉及机器/人工智能(MI)硬件架构。这样的架构和其实现可以被称为“NN”。在说明性实现中,示例性NN中的向量量化(VQ)的使用可能导致读取权重值的有效神经元性能的增加。在说明性操作中,一个或多个索引可以被存储到可以利用快速查找表(物理或虚拟)表示权重值的一个或多个向量行。“权重”可以被认为是当处理一个或多个数据元素时由神经元处理器消耗的数值。权重值的可能格式可以为可以是有符号或无符号、字节、整数和/或浮点的任意位长度。由于索引而不是全部权重数据存储,因而存储器传送中的降低能够通过使用向量量化实现。
在说明性实现中,权重值的一个或多个连续段可以操作地转换为任意长度的一个或多个向量,并且一个或多个向量中的每个向量可以分配索引。所生成的索引可以被存储在示例性VQ查找表中。在说明性操作中,在可以要求权重值的神经元计算操作的示例性执行期间,索引可以从可以表示包含一个或多个权重值的特定向量的所生成的查找表被取回。神经元计算操作可以被认为是由一个或多个神经元执行以根据所选择的操作(诸如卷积)处理输入数据或者完全连接以生成输出数据的一个或多个计算步骤。
VQ查找表的一个或多个行可以从协作存储器部件(诸如通用或者本地存储器部件)被读取。VQ查找表可以包括N行和M宽,并且可以由用于将索引快速转换为VQ行的协作快速权重查找硬件(FWLH)操作地使用。FWLH可以被认为是存在于NN中的硬件逻辑,其可操作以迅速地执行将权重值转换为VQ查找表的VQ行。在说明性实现中,行数N可以表示索引范围。例如,对于4096个向量行,可以要求12位的索引。作为每行权重值的数目的宽M可以包括任意值,其可以包括但不限于2的倍数,诸如2、4、8和16等。如果这样要求,则也可以操作地部署VQ查找表的较大宽度。
在说明性操作中,在使用来自VQ查找表的说明性索引值执行取回向量时,如由向量表示的对应的权重值可以由神经元消耗作为NN的示例性数据处理功能的一部分。
在说明性实现中,VQ查找表可以存储在NN的一个或多个协作硬件部件中,诸如寄存器、SRAM和DRAM。这样的硬件部件可以利用包含具有单个基本索引值的多个VQ表的固定存储器块或者虚拟存储器块实现以选择当前VQ查找表。
在另一说明性实现中,一个或多个虚拟VQ查找表可以定义在具有基础索引值的单个物理VQ表定义。在说明性实现中,与本文所描述的向量量化过程有关的可选择的向量长度可以根据神经元层功能被利用,使得一个神经元层功能可以使用具有第一VQ长度(例如,2)的向量,其中另一神经元层功能可以使用具有第二VQ长度(例如,4)的向量,其中又一神经元层功能可以使用具有第三VQ长度(例如,16)的向量。说明性地,神经元层功能可以被认为是由示例性神经网络环境的一个或多个层执行的一个或多个操作。
在说明性实现中,本文所描述的系统和方法可以被部署为“片上系统”,其中一个或多个NN被实例化,使得NN可以包含用于权重值的VQ查找表。
在说明性操作中,在示例性运行时间处,可以执行内联向量去量化处理以确定可能导致神经元吞吐量的维护并且维持NN的优化性能的底层的(underlying)神经元权重值。在说明性操作中,如本文所描述的向量量化可以根据神经网络层而被启用/禁用。
操作地,向量量化的使用可能导致NN的许多优化性能操作,包括但不限于:对于存储与神经元网络计算有关的神经元权重值的存储器存储要求的减少;当执行神经元层功能时所要求的存储器带宽的减少;当执行神经元层功能时所要求的时间的减少;以及利用神经元权重值数据的较高准确度实现传统神经元权重值存储器管理技术的期望性能水平所要求的本地高速缓存存储器量的减少。
应当理解,虽然相对于系统进行描述,但是上文所描述的主题也可以实现为计算机控制的装置、计算机过程、计算系统、或者制品(诸如计算机可读介质和/或专用芯片集)。这些和各种其他特征从以下具体实施方式的读取和相关联的附图的查阅将是明显的。提供本发明内容以引入以在具体实施方式中下面进一步描述的简化形式的概念的选择。
本发明内容不旨标识要求保护的主题的关键特征或基本特征,本发明内容也不旨在用于要求保护的主题的范围。此外,要求保护的主题不限于解决本公开的任何部分中陈述的任何或所有缺点的实现。
附图说明
参考附图描述具体实施方式。在附图中,附图标记中的最左边的(一个或多个)数字标识附图标记首次出现的附图。不同的附图中的相同附图标记指示类似或者相同项。对多个项的个体项做出的参考可以使用具有字母序列的字母的附图标记以指代每个个体项。对项的通用参考可以使用没有字母序列的特定附图标记。
图1图示了根据本文所描述的系统和方法的示例性神经网络计算环境的块图。
图2图示了根据本文所描述的系统和方法的具有协作部件的示例性神经网络环境的块图。
图3图示了根据本文所描述的系统和方法的说明性逻辑数据映射中表示的示例性输入数据的块图。
图4图示了示出可操作以跨说明性逻辑数据映射的一个或多个线的说明性n个滑动窗口的使用的说明性逻辑数据映射中表示的示例性输入数据的框图。
图5图示了根据本文所描述的系统和方法的示出可操作以跨可操作以允许数据填充作为处理增强的说明性逻辑数据映射的一个或多个线的说明性n个滑动窗口的使用的说明性逻辑数据映射中表示的示例性输入数据的框图。
图6是根据本文所描述的系统和方法的示出可操作以执行神经元权重值的向量量化/去量化的示例性神经网络环境的各种部件的交互的框图。
图7是说明性神经网络计算环境中的用于根据所要求的神经元权重值的向量量化/去量化处理数据的说明性过程的流程图。
图8示出了用于能够执行本文所描述的方法的计算机的说明性计算机架构的附加细节。
图9示出了根据本文所描述的系统和方法协作的说明性计算设备的附加细节。
具体实施方式
以下具体实施方式描述了用于使用神经元权重值的向量量化来减少示例性神经网络(NN)和/或深度神经网络(DNN)环境的存储器要求和处理周期的技术。本文所描述的系统和方法的方面涉及机器/人工智能(MI)硬件架构。这样的架构和其实现可以被称为“NN”。在说明性实现中,示例性NN中的向量量化(VQ)的使用可能导致读取权重值的有效神经元性能的增加。在说明性操作中,一个或多个索引可以被存储到可以利用快速查找表(物理或虚拟)表示权重值的一个或多个向量行。“权重”可以被认为是当处理一个或多个数据元素时由神经元处理器消耗的数值。权重值的可能格式可以为可以是有符号或无符号、字节、整数和/或浮点的任意位长度。通过使用向量量化,与全部权重数据相比,索引被存储,可以实现存储器传送中的减少。
在说明性实现中,权重值的一个或多个连续段可以操作地转换为任意长度的一个或多个向量,并且一个或多个向量中的每个向量可以分配索引。所生成的索引可以被存储在示例性VQ查找表中。在说明性操作中,在可以要求权重值的神经元计算操作的示例性执行期间,可以从可以表示包含一个或多个权重值的特定向量的所生成的查找表取回索引。神经元计算操作可以被认为是由一个或多个神经元执行以根据所选择的操作(诸如卷积)处理输入数据或者完全连接以生成输出数据的一个或多个计算步骤。
VQ查找表的一个或多个行可以从协作存储器部件(诸如通用或者本地存储器部件)读取。VQ查找表可以包括N行和M宽并且可以由用于将索引快速转换为VQ行的协作快速权重查找硬件(FWLH)操作地使用。FWLH可以被认为是存在于NN中的硬件逻辑,其可操作以迅速地执行将权重值转换为VQ查找表的VQ行。在说明性实现中,行数N可以表示索引范围。例如,对于4096向量行,可以要求12位的索引。作为每行权重值的数目的宽M可以包括任意值,其可以包括但不限于2的倍数,诸如2、4、8和16等。如果这样要求,则也可以操作地部署VQ查找表的较大宽度。
在说明性操作中,在使用来自VQ查找表的说明性索引值执行取回向量时,如由向量表示的对应的权重值可以由神经元消耗作为NN的示例性数据处理功能的一部分。
在说明性实现中,VQ查找表可以存储在NN的一个或多个协作硬件部件中,诸如寄存器、SRAM和DRAM。这样的硬件部件可以利用包含具有单个基本索引值的多个VQ表的固定存储器块或者虚拟存储器块实现以选择当前VQ查找表。
在另一说明性实现中,一个或多个虚拟VQ查找表可以定义在具有基础索引值的单个物理VQ表定义。在说明性实现中,与本文所描述的向量量化过程有关的可选择的向量长度可以根据神经元层利用,使得一个神经元层功能可以使用具有第一VQ长度(例如,2)的向量,其中另一神经元层功能可以使用具有第二VQ长度(例如,4)的向量,其中又一神经元层功能可以使用具有第三VQ长度(例如,16)的向量。在说明性实现中,本文所描述的系统和方法可以被部署为“片上系统”,其中一个或多个NN被实例化,使得NN可以包含用于权重值的VQ查找表。说明性地,神经元层功能可以被认为是由示例性神经网络环境的一个或多个层执行的一个或多个操作。
在说明性操作中,在示例性运行时,可以执行内联向量去量化处理以确定可能导致神经元吞吐量的维护并且维持NN的优化性能的底层神经元权重值。在说明性操作中,如本文所描述的向量量化可以根据神经网络层被启用/禁用。
操作地,向量量化的使用可能导致NN的许多优化性能操作,包括但不限于:对于存储与神经元网络计算有关的神经元权重值的存储器存储要求的减少;当执行神经元层功能时所要求的存储器带宽的减少;当执行神经元层功能时所要求的时间的减少;以及利用神经元权重值数据的较高准确度实现传统神经元权重值存储器管理技术的期望性能水平要求的本地高速缓存存储器量的减少。
应当理解,上文所描述的主题可以实现为计算机控制的装置、计算机过程、计算系统、或者制品(诸如计算机可读介质)。除了许多其他益处,本文中的技术改进相对于各种各样的计算资源的效率。例如,移位步长的确定可以降低对于执行许多复杂任务需要的许多计算周期,诸如脸部识别、目标识别、图像生成等。
另外,经改进的人类交互可以通过这样的任务的更准确并且更快速的完成的引入来实现。另外,移位步长的使用可以降低网络流量、降低功率消耗和存储器的使用。除本文所提到的技术效果之外的其他技术效果还可以从本文所公开的技术的实施例来实现。
应当理解,虽然相对于系统描述,但是上文所描述的主题也可以实现为计算机控制的装置、计算机过程、计算系统、或者制品(诸如计算机可读介质和/或专用芯片集)。这些和各种其他特征从以下具体实施方式的读取和相关联的附图的查阅将是明显的。提供本发明内容以引入以在具体实施方式中下面进一步描述的简化形式的概念的选择。
在人工神经网络中,神经元是被用于对大脑中的生物神经元建模的基本单元。人工神经元的模型可以包括输入向量与添加到具有应用的非线性的偏置的权重向量的内积。比较地,在示例性DDN模块(例如,图1的105)中,神经元紧密地映射到人工神经元。
说明性地,DNN模块可以被认为是超标量处理器。操作地,其可以将一个或多个指令分派到被称为神经元的多个执行单元。执行单元可以是“同时分派同时完成”,其中每个执行单元与所有其他同步。DNN模块可以被分类为SIMD(单指令流、多数据流)架构。
转到图1的示例性DNN环境100,DNN模块105具有存储器子系统,该存储器子系统具有唯一的L1和L2高速缓存结构。这些不是传统高速缓存,而是特别地被设计用于神经处理。为了方便起见,这些高速缓存结构已经采取反映其预期目的的名字。以示例的方式,L2高速缓存150可以说明性地维持具有以选择频率(例如,十六吉比特每秒(16Gbps))操作的高速私有接口的选择的存储容量(例如,一个兆字节(1MB))。L1高速缓存可以维持可以在内核与激活数据之间分割的选择的存储容量(例如,八千字节(8KB))。L1高速缓存可以被称为线缓冲器,并且L2高速缓存被称为BaSRAM。
DNN模块可以是仅回忆的神经网络并且以编程方式支持各种各样的网络结构。对于网络的训练可以在服务器群或者数据中心中离线执行。训练的结果是可以被称为或者权重或者内核的参数集。这些参数表示可以应用到输入的传递函数,其中,结果是分类或者语义标记的输出。
在说明性操作中,DNN模块可以接受平面数据作为输入。输入不仅限于图像数据,只要呈现的数据以DNN可以在其上操作的均匀平面格式。
DNN模块在对应于神经网络的层的层描述符的列表上操作。说明性地,层描述符的列表可以由DNN模块视为指令。这些描述符可以从存储器预取到DNN模块中并且按次序执行。
通常,可以存在两个主要种类的层描述符:1)存储器到存储器移动描述符;和2)操作描述符。存储器到存储器移动描述符可以被用于将至/自主存储器的数据移动至/自用于由操作描述符消耗的本地高速缓存。存储器到存储器移动描述符跟随与操作描述符不同的执行管线。对于存储器到存储器移动描述符的目标管线可以是内部DMA引擎,而对于操作描述符的目标管线可以是神经元处理元件。操作描述符能够进行许多不同层操作。
DNN的输出也是数据大块。输出可以可选地流动到本地高速缓存或者流动到主存储器。由于软件将允许,因而DNN模块可以提前预取数据。软件可以通过使用描述符之间的保护和设置依存性控制预取。防止具有依存性集的描述符进步直到已经满足相关性。
现在转到图1,示例性神经网络环境100可以包括各种协作部件,包括DNN模块105、高速缓存存储器125或150、低带宽结构110、桥接器部件115、高带宽结构120、SOC 130、PCIE“端点”135、Tensilica节点140、存储器控制器145、LPDDR4存储器155和输入数据源102。进一步地,如所示出的,DNN模块105还可以包括许多部件,包括预取105(A)、DMA 105(B)、寄存器接口105(D)、负载/存储单元105(C)、层控制器105(D)、保存/恢复部件105(E)和神经元105(F)。操作地,示例性DNN环境100可以根据选择的规格处理数据,其中DNN模块执行如本文所描述的一个或多个功能。
图2图示了可操作以采用直接线缓冲器220作为数据处理的一部分的示例性神经网络环境200。如所示出的,示例性神经网络环境200(在本文中还被称为计算设备或者计算设备环境)包括一个或多个操作控制器235,其与线缓冲器220协作以提供用于数据处理的一个或多个指令。线缓冲器220可以操作以通过外部结构230和结构215从协作外部存储器部件225接收数据以及操作以从(一个或多个)迭代器240(例如,基于硬件和/或虚拟化迭代器)接收一个或多个指令/命令(例如,从协作存储器部件读取数据的指令/命令和/或将从协作存储器部件加载的数据写入在线缓冲器中的指令)。此外,如图2中所示,示例性神经网络环境还可以包括快速权重查找硬件245(FWLH),其可以操作地接收去量化被接收作为示例性码本的索引的列表的一个或多个神经元权重的请求。在说明性操作中,FWLH 245可以通过结构215从一个或多个协作存储器部件(210、225)接收神经元权重数据。FWLH 245可以处理神经元权重索引数据、去量化接收到的数据以产生可以操作地写入到线缓冲器220的相同数目的向量(即,码本条目)。
操作地,线缓冲器220可以根据从一个或多个操作控制器235(在本文中也被称为“协作控制器部件235”)接收到的一个或多个指令根据选择的步长宽度移动数据。此外,线缓冲器220可以与(一个或多个)处理单元(例如,(一个或多个)神经元)协作以提供写入位移位数据以用于直接地或者间接地通过结构215进一步处理。神经网络环境结构可以是能够穿过各种数据的数据总线。直接线缓冲器可以被认为是能够根据一个或多个接收到的指令读取和写入数据和数据元素的存储器部件。
在说明性操作中,示例性神经网络环境200可以根据图7中所描述的过程操作地处理数据。特定于图2中所描述的部件,这些部件仅是说明性的,因为本领域普通技术人员将理解到,图6和7中所描述的处理也将由除了图2中所图示的部件之外的其他部件执行。
此外,如图2中所示出的,示例性神经网络环境可以可选地包括一个或多个迭代器(例如,基于硬件和/或虚拟化迭代器)(如由虚线指示的),其可以说明性地操作以迭代输入数据(未示出)以用于由一个或多个神经元处理器205处理。本领域技术人员将理解到,由于由本文所公开的系统和方法描述的发明构思在没有任何迭代器的情况下操作的示例性神经网络环境200中操作,因而示例性一个或多个迭代器的这样的可选包括仅是说明性的。
图3图示了用于示例性输入数据的示例逻辑数据映射300。如所示,数据305可以被表示为具有包括通道数310、高度315和宽度320的某个维度340(例如,使得总体上采取的数据维度可以定义数据量)的数据。根据本文所描述的系统和方法,数据305可以被分配并且准备用于由协作n个神经元330处理,使得第一部分a可以传递到第一神经元,第二部分b可以传递到第二神经元等,直到n个部分被传递到n个神经元。
在说明性操作中,可以基于由示例性神经网络环境(例如,图2的200)的协作控制器部件提供的一个或多个指令使用n个滑动窗口/内核325来确定数据305的部分。进一步地,如所示出的,输入数据部分a、b、c和d可以使用由示例性神经网络环境(例如,图2的200)的协作操作控制器部件(235)提供的一个或多个初始化参数寻址到物理存储器325。
图4图示了示例性输入数据(未示出)的示例性逻辑数据图400。示例性逻辑数据图400包括第一线410(利用斜线标记图示的)和第二线420(通过虚线图示的)。每个地图线可以包括若干滑动窗口(例如,用于第一线410的430、440和450和用于第二线420的460、470和480)。此外,如所示出的,逻辑数据图400示出滑动窗口的能力以跨输入数据的数据维度边界(例如,跨第一线410和第二线420)。由于更多数据可以更高效地准备用于由协作神经网络处理部件(例如,图2的205)随后处理,因而这样的能力允许增加的性能。
图5类似于图4并且被呈现以描述本文所描述的系统和方法的能力以允许使用填充进一步增强示例性神经网络环境(例如,图1的100和图2的200)的性能特性。如所示出的,逻辑数据图500(未示出的示例性输入数据的)可以包括跨一个或多个线(例如,510和520)的各种滑动窗口(530、540、550、560、570和580)。此外,逻辑数据图500还可以包括填充580。
在说明性操作中,在示例性神经网络环境(图1的100或者图2的200)的运行时处,填充580可以被动态地添加。图2的操作控制器235可以指定待使用在输入数据(例如,大块)的图3中所示的维度340中的每个维度340上的填充量(例如,使得共同取得的维度可以被认为是数据量),并且神经网络环境(例如,迭代器控制器指令)可以操作地构建数据量,好像填充物理地存在于存储器中。默认值还可以在其中添加填充的迭代器输出位置中由示例性神经网络环境(例如,迭代器控制器指令)生成。
图6是示出可操作以执行神经元权重值的向量量化/去量化的示例性神经网络环境600的各种部件的交互的示图。如图6中所示,示例性神经网络环境600可以包括示例性神经处理器605(例如,图1的100)。神经处理器605还可以包括快速权重查找硬件610,其操作地处理权重索引数据615以及来自示例性快速权重查找表625的数据以取回/去量化用于由示例性神经元630消耗的神经元权重值620。进一步地,如所示出的,快速权重查找表625可以包括若干行625(a)、625(b)和625(c)等。
在说明性操作中,一个或多个索引可以被存储到可以利用快速查找表625表示权重值的一个或多个向量行(诸如625(a)、625(b)、625(c)),快速查找表可以说明性地是物理硬件表或者以软件创建的虚拟化表。在说明性实现中,权重值的一个或多个连续段可以操作地转换为任意长度的一个或多个向量并且一个或多个向量中的每个向量可以被分配索引。所生成的索引可以被存储在示例性VQ查找表625中。
VQ查找表625的一个或多个行可以从协作存储器部件(诸如通用或者本地存储器部件)读取。VQ查找表可以包括N行和M宽并且可以由用于将索引快速转换为VQ行的协作快速权重查找硬件(FWLH)610操作地使用。FWLH 610可以被认为是存在于NN中的硬件逻辑,其可操作以迅速地执行将权重值转换为VQ查找表的VQ行625(a)、625(b)和615(c)。
在说明性实现中,行数N可以表示索引范围。例如,对于4096个向量行,可以要求12位的索引。作为每行权重值的数目的宽M可以包括任意值,其可以包括但不限于2的倍数,诸如2、4、8和16等。如果这样要求,则也可以操作地部署VQ查找表的较大宽度。
在说明性操作中,在使用来自VQ查找表的说明性索引值执行向量的取回时,如由向量表示的对应的权重值620可以根据驻留在FWLH 610的物理存储器部件640上的一个或多个码本由FWLH 610去量化,并且可以由神经元630消耗作为NN的示例性数据处理功能的一部分。
如图6中所示,以图示的方式,快速权重查找表625可以存储由FWLH 610可操作并且具有用于在利用选择的码本的存储向量的去量化中使用的一个或多个说明性动态物理存储器配置650、660和670的物理存储器640的示例性阵列的配置数据。码本被表示为被用于量化数据的向量的列表。该列表中的每个向量的位置(索引)可以操作地表示量化向量。超过一个码本可以被用于实现期望的去量化速率。在示例性情况下,在如图6中所示的第二情况660中,采用4个码本和去量化4个索引同时地有效地16(每行4个条目*4个码本)权重项可以去量化以实现期望的去量化速率。
在说明性操作中,如果这样的向量量化/去量化处理被激活用于这样的一个或多个处理层,则一个或多个动态物理存储器配置650、660和670可以由示例性神经网络环境的处理层中的一个或多个处理层来采用。
在说明性操作中,说明性动态物理存储器配置可以通过设置示例性配置寄存器(未示出)来配置,其可以是FWLH 610的驻留部件以允许用于示例性神经网络环境的处理层中的一个或多个的这些示例性物理存储器配置650、660和670之一的使用。操作地,动态物理存储器可以由FWLH 610被用于在其上加载用作向量去量化处理的一部分的示例性码本。
在说明性实现中,协作物理存储器中的每一个可以维持码本的副本。操作地,当示例性码字被加载到物理存储器中时,码本的单个副本可以从协作存储器部件(例如,DRAM)被复制到码本存储器,并且FWLH可以操作地自动地将单个码本存储器数据写入到其他协作物理存储器中。
将理解到,虽然动态物理存储器地址在图6中被描述为具有示例性位数和条目,但是由于本文所描述的发明构思预期其他备选位数和条目计数的使用,因而这样的示例仅是说明性的。
图7是利用神经元权重值的向量量化增强用于NN/DNN环境的性能的说明性过程700的流程图。如所示出的,处理在块705处开始,其中一个或多个初始化参数从神经网络环境的协作部件(例如,操作控制器)被接收,其中一个或多个初始化参数可以包括代表用于包括神经元权重值的一个或多个连续段的输入数据的维度的数据。处理然后转到块710,其中神经元权重值的一个或多个连续段被转换为任意长度的一个或多个向量并且被分配所生成的索引值。
在块715处,经转换的一个或多个向量然后被存储在向量量化查找表的一个或多个行中。处理然后转到块720,其中向量的一个或多个行操作地使用步骤710的生成的索引值中的一个或多个被取回并且去量化以获得底层神经元权重值。在块725处,所取回的权重值然后说明性地由神经网络环境的示例性神经处理器部件的一个或多个神经元来消耗。
然后在块730处执行检查以确定是否存在待处理的附加的输入数据(即,作为迭代操作的一部分)。如果不存在附加输入数据,则在块735处处理终止。然而,如果附加输入数据要求迭代操作,则处理然后返回块710并且从那里进行。
图8中所图示的计算机架构800包括中央处理单元80(“CPU”)、系统存储器804,包括随机存取存储器806(“RAM”)和只读存储器(“ROM”)808、以及将存储器804耦合到CPU 802的系统总线810。基本输入/输出系统(包含帮助在计算机架构800内的元件之间传递信息(诸如在启动期间)的基本例程)被存储在ROM 808中。计算机架构800还包括用于存储操作系统814、其他数据和一个或多个应用程序的大容量存储设备812。
大容量存储设备812通过被连接到总线810的大容量存储控制器(未示出)而被连接到CPU 802。大容量存储设备812和其相关联的计算机可读介质为架构800提供非易失性存储装置。虽然本文包含的计算机可读介质的描述指代大容量存储设备(诸如固态驱动器、硬盘或者CD-ROM驱动器),但是本领域技术人员应当理解,计算机可读介质可以是可以由计算机架构800访问的任何可用计算机存储介质或者通信介质。
通信介质包括计算机可读指令、数据结构、程序模块或者调制数据信号(诸如载波或者其他传输机制)中的其他数据,并且包括任何递送介质。术语“调制数据信号”意味着具有以将信息编码在信号中的方式设定或改变的其特性中的一个或多个特性的信号。以示例而非限制的方式,通信介质包括有线介质(诸如有线网络或直接有线连接)和无线介质(诸如声学、RF、红外线和其他无线介质)。上文的任何组合还应当被包括在计算机可读介质的范围内。
以示例而非限制的方式,计算机存储介质可以包括在用于信息(诸如计算机可读指令、数据结构、程序模块或者其他数据)的存储的任何方法或技术中实现的易失性和非易失性、可移除和不可移除的介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或者其他固态存储器技术、CD-ROM、数字通用光盘(“DVD”)、HD-DVD、BLU-RAY、或者其他光学存储装置、磁带盒、磁带、磁盘存储装置或者其他磁性存储设备或者可以被用于存储期望信息并且可以由计算机架构800访问的期望信息的其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”和其变型不包括波、信号和/或其他暂态和/或无线通信介质本身。
根据各种技术,计算机架构800可以使用通过网络820和/或另一网络(未示出)对远程计算机的逻辑连接在联网环境中操作。计算机架构800可以通过连接到总线810的网络接口单元816连接到网络820。应当理解,网络接口单元816还可以被用于连接到其他类型的网络和远程计算机系统。计算机架构800还可以包括用于接收并且处理来自若干其他设备(包括键盘、鼠标或者电子笔(未示出在图8中))的输入的一个或多个输入/输出控制器818。类似地,输入/输出控制器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的数据的专用计算环境服务器。此外,联网计算环境900可以利用各种数据安全协议,诸如安全套接字层(SSL)或良好隐私(PGP)。客户端计算环境801、810、815、820、825、830和835中的每一个可以装备有可操作以支持一个或多个计算应用或者终端会话的计算环境805,诸如网络浏览器(未示出)、或其他图形用户接口(未示出)、或移动桌面环境(未示出),以获得对(一个或多个)服务器计算环境905的访问。
(一个或多个)服务器905可以通信地耦合到其他计算环境(未示出)并且接收关于参与用户的交互/资源网络的数据。在说明性操作中,用户(未示出)可以与在(一个或多个)客户端计算环境上运行的计算应用交互以获得期望的数据和/或计算应用。数据和/或计算应用可以被存储在(一个或多个)服务器计算环境905上并且在过示例性通信网络820之上通过客户端计算环境901、910、915、920、925、930和935传递到协作用户。参与用户(未示出)可以请求全部或者部分安置在(一个或多个)服务器计算环境905上的特定用户和应用的访问。这些数据可以在客户端计算环境801、910、915、920、925、930、935与(一个或多个)服务器计算环境905之间传递以用于处理和存储。(一个或多个)服务器计算环境905可以托管用于数据和应用的生成、认证、加密和通信的计算应用、过程和小程序并且可以与其他服务器计算环境(未示出)、第三方服务提供商(未示出)、网络附加存储(NAS)和存储区域网络(SAN)协作以实现应用/数据事务。
示例条款
可以鉴于以下条款考虑本文中呈现的公开内容。
示例条款A,一种用于神经网络环境(100)中的增强数据处理的系统,系统包括至少一个处理器、至少一个存储器部件、以及与至少一个处理器通信的至少一个存储器,至少一个存储器具有存储在其上的计算机可读指令,其当由至少一个处理器执行时,使得至少一个处理器:
从神经网络环境的协作控制器部件接收一个或多个初始化参数,初始化参数包括代表待由神经网络环境处理的数据的维度的数据以及代表一个或多个向量量化索引值的数据,一个或多个索引值代表被存储在至少一个存储器部件上的一个或多个向量,一个或多个向量包括代表一个或多个神经元权重值的一个或多个连续段的数据,利用一个或多个向量量化索引值(615)从至少一个存储器部件取回代表一个或多个神经元权重值的一个或多个向量,去量化所取回的一个或多个向量以取回底层一个或多个神经元权重值,并且传递一个或多个神经元权重值(620)以用于由神经网络环境的一个或多个处理部件(630)处理。
示例条款B,根据示例条款A的系统,其中一个或多个向量被存储在驻留在至少一个存储器部件上的快速查找表中。
示例条款C,根据示例条款A和B所述的系统,其中一个或多个向量具有任意长度。
示例条款D,根据示例条款A到C所述的系统,其中计算机可读指令还使得至少一个处理器从快速查找表的一个或多个行取回一个或多个向量。
示例条款E,根据示例条款A到D所述的系统,其中一个或多个向量的向量长度对于神经网络环境的神经元层中的每一个是可选择的。
示例条款F,根据示例条款A到E所述的系统,其中计算机可读指令还使得至少一个处理器执行用于神经网络环境的神经元层中的所选择的一个或多个神经元层的一个或多个神经元权重值的向量去量化。
示例条款G,根据示例条款A到F所述的系统,其中计算机可读指令还包括可操作以执行对被存储在快速查找表上的向量的快速查找的一个或多个硬件部件。
示例条款H,一种计算机实现的方法,包括:从神经网络环境的协作控制器部件接收一个或多个初始化参数,初始化参数包括代表待由神经网络环境处理的数据的维度的数据以及代表一个或多个向量量化索引值的数据,一个或多个索引值代表被存储在至少一个存储器部件上的一个或多个向量,一个或多个向量包括代表一个或多个神经元权重值的一个或多个连续段的数据,一个或多个向量由神经网络环境的处理器生成,利用一个或多个向量量化索引值从至少一个存储器部件取回代表一个或多个神经元权重值的一个或多个向量,一个或多个向量操作地被存储在快速查找表上,去量化所取回的一个或多个向量以取回底层一个或多个神经元权重值,并且传递一个或多个神经元权重值以用于由神经网络环境的一个或多个处理部件处理。
示例条款H,根据示例条款G所述的计算机实现的方法,还包括对于由神经网络环境的一个或多个协作硬件部件对所取回的一个或多个向量的进行内联去量化以获得一个或多个神经元权重值。
示例条款I,根据示例条款G和H所述的计算机实现的方法,还包括利用用于所生成的一个或多个向量的协作存储器部件中的基索引以生成虚拟化的一个或多个快速查找表。
示例条款J,根据示例G到I所述的计算机实现的方法,还包括生成用于神经网络环境的一个或多个神经元层的一个或多个向量。
示例条款K,根据示例条款G到J所述的计算机实现的方法,还包括将一个或多个向量存储在快速查找表的一个或多个行中。
示例条款L,根据示例条款G到K所述的计算机实现的方法,还包括生成任意长度的一个或多个向量。
示例条款M,根据示例条款G到L所述的计算机实现的方法,还包括选择向量长度以用于神经网络环境的神经元层中的每个神经元层的一个或多个向量的生成。
示例条款N,根据示例条款G到M所述的计算机实现的方法,还包括将所生成的一个或多个向量存储在本地存储器部件中。
示例条款O,一种具有存储在其上的计算机可执行指令的计算机可读存储介质,计算机可执行指令当由计算设备的一个或多个处理器执行时,使得计算设备的一个或多个处理器:从神经网络环境的协作控制器部件接收一个或多个初始化参数,初始化参数包括代表待由神经网络环境处理的数据的维度的数据以及代表一个或多个向量量化索引值的数据,一个或多个索引值代表被存储在至少一个存储器部件上的一个或多个向量,一个或多个向量包括代表一个或多个神经元权重值的一个或多个连续段的数据,利用一个或多个向量量化索引值从至少一个存储器部件取回代表一个或多个神经元权重值的一个或多个向量,去量化取回的一个或多个向量以取回底层的一个或多个神经元权重值,并且传递一个或多个神经元权重值(620)以用于由神经网络环境的一个或多个处理部件(630)处理。
示例条款P,根据示例条款O所述的计算机可读存储介质,其中指令还使得计算设备的一个或多个处理器:将一个或多个向量存储在一个或多个快速查找表中。
示例条款Q,根据示例条款O和P所述的计算机可读存储介质,其中指令还使得计算设备的一个或多个处理器:选择一个或多个向量的长度。
示例条款R,根据示例条款O到Q所述的计算机可读存储介质,其中指令还使得计算设备的一个或多个处理器:不取回神经网络环境的神经元层的向量。
示例条款S,根据示例条款O到R所述的计算机可读存储介质,其中指令还使得计算设备的一个或多个处理器:执行一个或多个向量的内联去量化以取回底层一个或多个神经元权重值。
示例条款T,根据示例条款O到S所述的计算机可读介质,其中存储器部件与物理传感器协作,物理传感器能够产生包括音频数据、视频数据、触觉感觉数据和其他数据的输入数据以用于由一个或多个协作处理单元后续处理。
示例条款U,根据示例条款O到T所述的计算机可读介质,其中协作处理单元与可操作以接收包括音频数据、视频数据、触觉感觉数据和其他数据的人类交互处理输入数据的一个或多个输出物理部件电子地协作。
结论
最后,虽然已经以特定于结构特征和/或方法动作的语言描述各个实施例,但是将理解到,所附表示中定义的主题不必限于上文所描述的特定特征或动作。相反,特定特征或动作被公开为实现要求保护的主题的示例形式。

Claims (15)

1.一种用于神经网络环境中的增强数据处理的系统,所述系统包括:
至少一个处理器;
至少一个存储器部件;以及
至少一个存储器,其与所述至少一个处理器通信,所述至少一个存储器具有存储在其上的计算机可读指令,所述计算机可读指令当由所述至少一个处理器执行时,使得所述至少一个处理器:
从所述神经网络环境的协作控制器部件接收一个或多个初始化参数,所述初始化参数包括代表待由所述神经网络环境处理的数据的维度的数据以及代表一个或多个向量量化索引值的数据,所述一个或多个索引值代表被存储在所述至少一个存储器部件上的一个或多个向量,所述一个或多个向量包括代表一个或多个神经元权重值的一个或多个连续段的数据;
利用所述一个或多个向量量化索引值从所述至少一个存储器部件取回代表一个或多个神经元权重值的所述一个或多个向量;
将所取回的所述一个或多个向量进行去量化以取回底层的一个或多个神经元权重值;以及
传递所述一个或多个神经元权重值以用于由所述神经网络环境的所述一个或多个处理部件处理。
2.根据权利要求1所述的系统,其中所述一个或多个向量被存储在驻留在所述至少一个存储器部件上的快速查找表中。
3.根据权利要求2所述的系统,其中所述一个或多个向量具有任意长度。
4.根据权利要求3所述的系统,其中所述计算机可读指令还使得所述至少一个处理器从所述快速查找表的一个或多个行取回所述一个或多个向量。
5.根据权利要求4所述的系统,其中所述一个或多个向量的向量长度对于所述神经网络环境的所述神经元层中的每个神经元层是可选择的。
6.根据权利要求5所述的系统,其中所述计算机可读指令还使得所述至少一个处理器执行用于所述神经网络环境的所述神经元层中的所选择的一个或多个神经元层的一个或多个神经元权重值的向量去量化。
7.根据权利要求2所述的系统,其中所述计算机可读指令还包括可操作以执行存储在所述快速查找表上的所述向量的快速查找的一个或多个硬件部件。
8.一种计算机实现的方法,包括:
从所述神经网络环境的协作控制器部件接收一个或多个初始化参数,所述初始化参数包括代表待由所述神经网络环境处理的数据的维度的数据以及代表一个或多个向量量化索引值的数据,所述一个或多个索引值代表被存储在所述至少一个存储器部件上的一个或多个向量,所述一个或多个向量包括代表一个或多个神经元权重值的一个或多个连续段的数据,所述一个或多个向量由所述神经网络环境的处理器生成;
利用所述一个或多个向量量化索引值从所述至少一个存储器部件取回代表一个或多个神经元权重值的所述一个或多个向量,所述一个或多个向量被操作地存储在快速查找表上;
将所取回的所述一个或多个向量进行去量化以取回底层的一个或多个神经元权重值;以及
传递所述一个或多个神经元权重值以用于由所述神经网络环境的所述一个或多个处理部件处理。
9.根据权利要求8所述的计算机实现的方法,还包括通过所述神经网络环境的一个或多个协作硬件部件对所取回的所述一个或多个向量进行内联去量化,以获得所述一个或多个神经元权重值。
10.根据权利要求8所述的计算机实现的方法,还包括利用用于所生成的所述一个或多个向量的协作存储器部件中的基索引来生成虚拟化的一个或多个快速查找表。
11.根据权利要求8所述的计算机实现的方法,还包括生成用于所述神经网络环境的一个或多个神经元层的一个或多个向量。
12.根据权利要求11所述的计算机实现的方法,还包括将所述一个或多个向量存储在快速查找表的一个或多个行中。
13.根据权利要求12所述的计算机实现的方法,还包括生成任意长度的一个或多个向量。
14.根据权利要求8所述的计算机实现的方法,还包括选择向量长度以用于所述神经网络环境的所述神经元层中的每个神经元层的所述一个或多个向量的所述生成。
15.根据权利要求8所述的计算机实现的方法,还包括将所生成的所述一个或多个向量存储在本地存储器部件中。
CN201880025227.8A 2017-04-17 2018-04-06 用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件 Active CN110520870B (zh)

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/881,519 2018-01-26
US15/881,519 US11010315B2 (en) 2017-04-17 2018-01-26 Flexible hardware for high throughput vector dequantization with dynamic vector length and codebook size
PCT/US2018/026358 WO2018194851A1 (en) 2017-04-17 2018-04-06 Flexible hardware for high throughput vector dequantization with dynamic vector length and codebook size

Publications (2)

Publication Number Publication Date
CN110520870A true CN110520870A (zh) 2019-11-29
CN110520870B CN110520870B (zh) 2023-07-14

Family

ID=63790158

Family Applications (16)

Application Number Title Priority Date Filing Date
CN201880025503.0A Active CN110520853B (zh) 2017-04-17 2018-04-06 直接存储器访问的队列管理
CN202310874704.0A Pending CN116909985A (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 处理不邻近存储器作为邻近存储器以提高神经网络的性能
CN202310865940.6A Pending CN116909984A (zh) 2017-04-17 2018-04-06 使用虚拟化数据迭代器对神经网络进行数据处理性能增强
CN201880025417.XA Active CN110520846B (zh) 2017-04-17 2018-04-06 对数据分区的动态排序
CN201880025227.8A Active CN110520870B (zh) 2017-04-17 2018-04-06 用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件
CN201880025415.0A Active CN110546628B (zh) 2017-04-17 2018-04-06 用有向线缓冲器最小化存储器读取提高神经网络环境性能
CN201880025488.XA Active CN110537194B (zh) 2017-04-17 2018-04-13 被配置用于层和操作防护和依赖性管理的功率高效的深度神经网络处理器及方法
CN201880025480.3A Active CN110546611B (zh) 2017-04-17 2018-04-16 通过跳过处理操作来减少神经网络处理器中的功耗
CN201880025126.0A Active CN110546610B (zh) 2017-04-17 2018-04-16 通过数据共享和分配增强人工智能/机器硬件的处理性能
CN201880025426.9A Active CN110678843B (zh) 2017-04-17 2018-04-16 在深度神经网络模块中动态划分工作负载以降低功率消耗
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模块的处理性能

Family Applications Before (7)

Application Number Title Priority Date Filing Date
CN201880025503.0A Active CN110520853B (zh) 2017-04-17 2018-04-06 直接存储器访问的队列管理
CN202310874704.0A Pending CN116909985A (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 处理不邻近存储器作为邻近存储器以提高神经网络的性能
CN202310865940.6A Pending CN116909984A (zh) 2017-04-17 2018-04-06 使用虚拟化数据迭代器对神经网络进行数据处理性能增强
CN201880025417.XA Active CN110520846B (zh) 2017-04-17 2018-04-06 对数据分区的动态排序

Family Applications After (8)

Application Number Title Priority Date Filing Date
CN201880025415.0A Active CN110546628B (zh) 2017-04-17 2018-04-06 用有向线缓冲器最小化存储器读取提高神经网络环境性能
CN201880025488.XA Active CN110537194B (zh) 2017-04-17 2018-04-13 被配置用于层和操作防护和依赖性管理的功率高效的深度神经网络处理器及方法
CN201880025480.3A Active CN110546611B (zh) 2017-04-17 2018-04-16 通过跳过处理操作来减少神经网络处理器中的功耗
CN201880025126.0A Active CN110546610B (zh) 2017-04-17 2018-04-16 通过数据共享和分配增强人工智能/机器硬件的处理性能
CN201880025426.9A Active CN110678843B (zh) 2017-04-17 2018-04-16 在深度神经网络模块中动态划分工作负载以降低功率消耗
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模块的处理性能

Country Status (19)

Country Link
US (20) US10795836B2 (zh)
EP (14) EP3612989B1 (zh)
JP (1) JP7004741B2 (zh)
KR (2) KR102663557B1 (zh)
CN (16) CN110520853B (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 (1) MX2019012388A (zh)
MY (1) MY201868A (zh)
NZ (1) NZ756870A (zh)
PH (1) PH12019550191A1 (zh)
RU (1) RU2767447C2 (zh)
SG (1) SG11201909175XA (zh)
WO (15) WO2018194849A1 (zh)
ZA (1) ZA201905874B (zh)

Families Citing this family (107)

* Cited by examiner, † Cited by third party
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
KR102569086B1 (ko) * 2017-11-20 2023-08-22 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 태스크 병렬 처리 방법, 장치, 시스템, 기억 매체 및 컴퓨터 기기
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
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
US11016801B1 (en) 2018-05-22 2021-05-25 Marvell Asia Pte, Ltd. Architecture to support color scheme-based synchronization for machine learning
US10997510B1 (en) 2018-05-22 2021-05-04 Marvell Asia Pte, Ltd. Architecture to support tanh and sigmoid operations for inference acceleration in machine learning
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
WO2020032816A1 (en) * 2018-08-09 2020-02-13 Huawei Technologies Co., Ltd Device and method for compacting compressed and uncompressed data blocks
KR102519467B1 (ko) * 2018-08-28 2023-04-06 캠브리콘 테크놀로지스 코퍼레이션 리미티드 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체
KR20200034499A (ko) * 2018-09-21 2020-03-31 삼성전자주식회사 메모리 장치와 통신하는 데이터 처리 장치 및 방법
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 阿里巴巴集团控股有限公司 一种芯片及基于其的数据处理方法
US20200117981A1 (en) * 2018-10-11 2020-04-16 International Business Machines Corporation Data representation for dynamic precision in neural network cores
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 北京灵汐科技有限公司 一种可重构的处理器架构及计算设备
US11687783B2 (en) * 2019-02-04 2023-06-27 International Business Machines Corporation L2-nonexpansive neural networks
US11625554B2 (en) 2019-02-04 2023-04-11 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
CN111767078A (zh) * 2019-04-02 2020-10-13 上海寒武纪信息科技有限公司 数据运行方法、装置和相关产品
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 삼성전자주식회사 전자 장치 및 그의 연산 수행 방법
CN114008636A (zh) * 2019-06-18 2022-02-01 高通股份有限公司 优化机器学习模型性能
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
US20210224191A1 (en) * 2020-01-22 2021-07-22 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 优刻得科技股份有限公司 数据传输方法、装置及系统
CN111522643A (zh) * 2020-04-22 2020-08-11 杭州迪普科技股份有限公司 基于fpga的多队列调度方法、装置、计算机设备及存储介质
CN113592082A (zh) * 2020-04-30 2021-11-02 意法半导体股份有限公司 用于从人工神经网络分配中间数据的设备和方法
KR20210136476A (ko) * 2020-05-07 2021-11-17 삼성전자주식회사 쿼드 트리 방법의 파라미터들을 이용하여 압축하는 장치 및 방법
US20210377122A1 (en) * 2020-05-26 2021-12-02 Synopsys, Inc. Mixed-precision neural networks
GB202008299D0 (en) 2020-06-02 2020-07-15 Imagination Tech Ltd Manipulation of data in a memory
EP4169165A1 (en) * 2020-06-18 2023-04-26 InterDigital VC Holdings France, SAS Systems and methods for encoding/decoding a deep neural network
US11275701B2 (en) * 2020-06-24 2022-03-15 Qualcomm Incorporated Secure timer synchronization between function block and external SOC
CN111723053A (zh) * 2020-06-24 2020-09-29 北京航天数据股份有限公司 一种数据的压缩方法及装置、解压方法及装置
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
JPWO2022014500A1 (zh) * 2020-07-17 2022-01-20
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
JP2022094508A (ja) 2020-12-15 2022-06-27 富士通株式会社 演算処理装置、演算処理方法および演算処理プログラム
TWI745227B (zh) * 2021-02-01 2021-11-01 國立陽明交通大學 用於進行原始服務端與外地服務端之間的第三方認證的通訊系統及方法
KR102298766B1 (ko) * 2021-02-15 2021-09-07 주식회사 딥이티 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법
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 富士通株式会社 情報処理プログラム、情報処理方法及び情報処理装置
US20230079975A1 (en) * 2021-09-10 2023-03-16 Arm Limited Power management for system-on-chip
WO2023075564A1 (ko) * 2021-11-01 2023-05-04 엘지전자 주식회사 피쳐 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20130325775A1 (en) * 2012-06-04 2013-12-05 Brain Corporation Dynamically reconfigurable stochastic learning apparatus and methods
US20150254551A1 (en) * 2012-09-14 2015-09-10 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
US20160350646A1 (en) * 2015-05-29 2016-12-01 Sas Institute Inc. Normalizing electronic communications using a neural network
CN106203624A (zh) * 2016-06-23 2016-12-07 上海交通大学 基于深度神经网络的矢量量化系统及方法

Family Cites Families (188)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 並列処理装置
EP0340901A3 (en) * 1988-03-23 1992-12-30 Du Pont Pixel Systems Limited Access system for dual port memory
EP0334624A3 (en) * 1988-03-23 1993-03-31 Du Pont Pixel Systems Limited Microcoded computer system
US5056015A (en) * 1988-03-23 1991-10-08 Du Pont Pixel Systems Limited Architectures for serial or parallel loading of writable control store
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
GB2382898B (en) 2000-12-29 2005-06-29 Zarlink Semiconductor Ltd A method of managing data
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
US6836767B2 (en) 2001-10-03 2004-12-28 International Business Machines Corporation Pipelined hardware implementation of a neural network circuit
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
CN100437456C (zh) 2003-12-09 2008-11-26 松下电器产业株式会社 电子装置及其控制方法、主机装置及其控制方法
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
CN101689130A (zh) * 2006-12-06 2010-03-31 弗森多系统公司(dba弗森-艾奥) 采用渐进raid存储数据的装置、系统和方法
US8103606B2 (en) 2006-12-08 2012-01-24 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
US8244721B2 (en) * 2008-02-13 2012-08-14 Microsoft Corporation Using related users data to enhance web search
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 ブラザー工業株式会社 ノード装置、ノード処理プログラム及び検索方法
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
CN102971997B (zh) * 2010-01-18 2016-11-09 马维尔国际有限公司 包括数据分段和数据描述分段的分组缓冲器
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 西安百利信息科技有限公司 基于人工神经网络的医学图像兴趣区自动识别和分级压缩方法
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
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
US9703500B2 (en) * 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
US9509632B2 (en) * 2012-04-25 2016-11-29 Empire Technology Development Llc Workload prediction for network-based computing
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
WO2014085975A1 (zh) * 2012-12-04 2014-06-12 中国科学院半导体研究所 可动态重构的多级并行单指令多数据阵列处理系统
KR20150064197A (ko) 2012-12-26 2015-06-10 인텔 코포레이션 인접한 수집/분산 연산들의 통합
EP2949047B1 (en) * 2013-01-22 2021-03-31 Altera Corporation 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
WO2014204331A1 (en) 2013-06-17 2014-12-24 Llc "Topcon Positioning Systems" Nand flash memory interface controller with gnss receiver firmware booting capability
EP3047390A1 (en) * 2013-09-19 2016-07-27 Sysomos L.P. Systems and methods for actively composing content for use in continuous social communication
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
EP3087454A4 (en) * 2013-12-23 2017-08-02 Intel Corporation Input output data alignment
GB2521828A (en) * 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
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
EP3132389A1 (en) * 2014-04-15 2017-02-22 Intel Corporation Methods, systems and computer program products for neuromorphic graph compression using associative memories
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
RU2666631C2 (ru) * 2014-09-12 2018-09-11 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Обучение dnn-студента посредством распределения вывода
US9990307B1 (en) 2014-10-29 2018-06-05 Netronome Systems, Inc. Split packet transmission DMA engine
EP3035204B1 (en) 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
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
US10262190B2 (en) * 2015-03-26 2019-04-16 Beijing Kuangshi Technology Co., Ltd. Method, system, and computer program product for recognizing face
US9378044B1 (en) * 2015-03-28 2016-06-28 Vmware, Inc. Method and system that anticipates deleterious virtual-machine state changes within a virtualization layer
US9928144B2 (en) * 2015-03-30 2018-03-27 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
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
US20160335119A1 (en) 2015-05-12 2016-11-17 minds.ai inc Batch-based neural network system
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 三星电子株式会社 数据优化的神经网络遍历
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
EP3680820B1 (en) 2015-10-04 2021-12-01 Atomwise Inc. Method for applying a convolutional network to spatial data
CN106503796B (zh) * 2015-10-08 2019-02-12 上海兆芯集成电路有限公司 多运算神经网络单元
US11029949B2 (en) * 2015-10-08 2021-06-08 Shanghai Zhaoxin Semiconductor Co., Ltd. Neural network unit
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
CN107578099B (zh) * 2016-01-20 2021-06-11 中科寒武纪科技股份有限公司 计算装置和方法
US10565207B2 (en) * 2016-04-12 2020-02-18 Hsilin Huang Method, system and program product for mask-based compression of a sparse matrix
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 深圳大学 一种基于深度学习模型的隐写图像检测方法及系统
CN106529670B (zh) * 2016-10-27 2019-01-25 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片
US9959498B1 (en) 2016-10-27 2018-05-01 Google Llc Neural network instruction set architecture
US10067710B2 (en) * 2016-11-23 2018-09-04 Advanced Micro Devices, Inc. Detecting buffer overflows in general-purpose GPU applications
US10037490B2 (en) * 2016-12-13 2018-07-31 Google Llc Performing average pooling in hardware
US20180164866A1 (en) * 2016-12-13 2018-06-14 Qualcomm Incorporated Low-power architecture for sparse neural network
US10169296B2 (en) * 2016-12-30 2019-01-01 Intel Corporation Distributed matrix multiplication for neural networks
US10402527B2 (en) 2017-01-04 2019-09-03 Stmicroelectronics S.R.L. Reconfigurable interconnect
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 삼성전자주식회사 뉴럴 네트워크에서 컨볼루션 연산을 처리하는 방법 및 장치
US20200250842A1 (en) * 2019-01-31 2020-08-06 Samsung Electronics Co., Ltd. Method and apparatus with convolution neural network processing
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 上海登临科技有限公司 片内异构人工智能处理器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20130325775A1 (en) * 2012-06-04 2013-12-05 Brain Corporation Dynamically reconfigurable stochastic learning apparatus and methods
US20150254551A1 (en) * 2012-09-14 2015-09-10 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
US20160350646A1 (en) * 2015-05-29 2016-12-01 Sas Institute Inc. Normalizing electronic communications using a neural network
CN106203624A (zh) * 2016-06-23 2016-12-07 上海交通大学 基于深度神经网络的矢量量化系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SONG HAN ET AL.: "A Deep Neual Networks Compression Pipeline: Pruning, Quantization, Huffman Encoding", 《ARXIV.ORG》 *
张海涛 等: "引入神经网络中间神经元的快速小波图像压缩", 《中国图象图形学报》 *

Also Published As

Publication number Publication date
CN110520846B (zh) 2023-07-28
US11182667B2 (en) 2021-11-23
US20180300607A1 (en) 2018-10-18
CN110546654B (zh) 2024-03-29
EP3612946B1 (en) 2023-12-06
EP3612989B1 (en) 2024-05-29
CN116909985A (zh) 2023-10-20
US20210232904A1 (en) 2021-07-29
CN110678843A (zh) 2020-01-10
US11750212B2 (en) 2023-09-05
WO2018194851A1 (en) 2018-10-25
CN110520846A (zh) 2019-11-29
WO2018194849A1 (en) 2018-10-25
CL2019002864A1 (es) 2020-03-06
CN110546610B (zh) 2023-02-10
WO2018194994A2 (en) 2018-10-25
EP3612942A1 (en) 2020-02-26
RU2019136750A3 (zh) 2021-12-22
WO2018194995A1 (en) 2018-10-25
PH12019550191A1 (en) 2020-06-29
US11030131B2 (en) 2021-06-08
AU2018256212B2 (en) 2022-08-11
US20180300613A1 (en) 2018-10-18
WO2018194996A1 (en) 2018-10-25
US20180300603A1 (en) 2018-10-18
EP3612934A1 (en) 2020-02-26
US20180300606A1 (en) 2018-10-18
EP3612942B1 (en) 2021-03-03
US11256976B2 (en) 2022-02-22
EP3612989A1 (en) 2020-02-26
CN110520909B (zh) 2021-03-19
US10795836B2 (en) 2020-10-06
WO2018194845A1 (en) 2018-10-25
EP3612990B1 (en) 2022-04-27
CN110546654A (zh) 2019-12-06
WO2018194848A1 (en) 2018-10-25
CA3056660A1 (en) 2018-10-25
MY201868A (en) 2024-03-21
CN110520853A (zh) 2019-11-29
RU2019136750A (ru) 2021-05-18
EP3612936B1 (en) 2023-10-18
WO2018194940A1 (en) 2018-10-25
KR102596644B1 (ko) 2023-10-31
US20180299943A1 (en) 2018-10-18
US11176448B2 (en) 2021-11-16
US20180300605A1 (en) 2018-10-18
EP3612988A2 (en) 2020-02-26
US20200356500A1 (en) 2020-11-12
WO2018194993A1 (en) 2018-10-25
CN116909984A (zh) 2023-10-20
US20180300617A1 (en) 2018-10-18
US11341399B2 (en) 2022-05-24
WO2018194988A1 (en) 2018-10-25
US11205118B2 (en) 2021-12-21
CN110520856B (zh) 2023-03-31
EP3612945A1 (en) 2020-02-26
CN110520857A (zh) 2019-11-29
US20180300602A1 (en) 2018-10-18
US11528033B2 (en) 2022-12-13
US20180300601A1 (en) 2018-10-18
ZA201905874B (en) 2020-11-25
WO2018194846A1 (en) 2018-10-25
US20180300614A1 (en) 2018-10-18
US20180300615A1 (en) 2018-10-18
AU2018256212A1 (en) 2019-09-19
CN110546628B (zh) 2023-10-20
WO2018194939A1 (en) 2018-10-25
US10628345B2 (en) 2020-04-21
US11405051B2 (en) 2022-08-02
CN110506260B (zh) 2023-09-22
EP3612947A1 (en) 2020-02-26
US11909422B2 (en) 2024-02-20
CO2019011014A2 (es) 2019-10-21
US20200233820A1 (en) 2020-07-23
EP3612946A1 (en) 2020-02-26
IL269888B (en) 2022-04-01
EP3612936A1 (en) 2020-02-26
EP3612945B1 (en) 2024-05-29
NZ756870A (en) 2023-07-28
US20230071352A1 (en) 2023-03-09
CN110546611A (zh) 2019-12-06
US11476869B2 (en) 2022-10-18
CN110537194B (zh) 2023-07-07
WO2018194998A1 (en) 2018-10-25
CN110546628A (zh) 2019-12-06
US20180300616A1 (en) 2018-10-18
CN110506260A (zh) 2019-11-26
CN110537194A (zh) 2019-12-03
EP3613026B1 (en) 2021-05-26
CN110520870B (zh) 2023-07-14
JP2020517014A (ja) 2020-06-11
KR102663557B1 (ko) 2024-05-03
SG11201909175XA (en) 2019-11-28
CN110582785A (zh) 2019-12-17
US11100390B2 (en) 2021-08-24
CN110520853B (zh) 2023-08-15
US10540584B2 (en) 2020-01-21
CN110520909A (zh) 2019-11-29
CN110582785B (zh) 2024-02-27
EP3612991B1 (en) 2023-12-13
EP3612948A1 (en) 2020-02-26
BR112019021541A2 (pt) 2020-05-12
JP7004741B2 (ja) 2022-01-21
US11100391B2 (en) 2021-08-24
EP3613026A1 (en) 2020-02-26
US20180300634A1 (en) 2018-10-18
RU2767447C2 (ru) 2022-03-17
US20180300633A1 (en) 2018-10-18
US10963403B2 (en) 2021-03-30
EP3612947B1 (en) 2023-09-06
EP3612991A1 (en) 2020-02-26
CN110520857B (zh) 2023-07-28
KR20190141694A (ko) 2019-12-24
US20180300604A1 (en) 2018-10-18
CN110546610A (zh) 2019-12-06
EP3612990A1 (en) 2020-02-26
CN110520856A (zh) 2019-11-29
EP3612937A1 (en) 2020-02-26
WO2018194847A1 (en) 2018-10-25
KR20230152828A (ko) 2023-11-03
CN110546611B (zh) 2023-05-02
EP3612933A1 (en) 2020-02-26
US11010315B2 (en) 2021-05-18
US11722147B2 (en) 2023-08-08
MX2019012388A (es) 2020-01-23
WO2018194850A1 (en) 2018-10-25
US20220147833A1 (en) 2022-05-12
CN110678843B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
CN110520870A (zh) 用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件
US11487342B2 (en) Reducing power consumption in a neural network environment using data management

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