Patent classifications
H03M7/02
Hamming distance based binary representations of numbers
Technology is described herein for encoding and decoding numbers. In one aspect, floating point numbers are represented as binary strings. The binary strings may be encoded in a manner such that if one bit flips, the average and maximum distortion in the number that is represented by the binary string is relatively small. In one aspect, 2^n binary strings are ordered across an interval [a, b) in accordance with their Hamming weights. Numbers in the interval may be uniformly quantized into one of 2^n sub-intervals. For example, floating point numbers in the interval [a, b) may be uniformly quantized into 2^n sub-intervals. These 2^n sub-intervals may be mapped to the 2^n binary strings. Thus, the number may be assigned to one of the 2^n binary strings. Doing so may reduce the distortion in the number in the event that there is a bit flip in the assigned binary string.
Hamming distance based binary representations of numbers
Technology is described herein for encoding and decoding numbers. In one aspect, floating point numbers are represented as binary strings. The binary strings may be encoded in a manner such that if one bit flips, the average and maximum distortion in the number that is represented by the binary string is relatively small. In one aspect, 2^n binary strings are ordered across an interval [a, b) in accordance with their Hamming weights. Numbers in the interval may be uniformly quantized into one of 2^n sub-intervals. For example, floating point numbers in the interval [a, b) may be uniformly quantized into 2^n sub-intervals. These 2^n sub-intervals may be mapped to the 2^n binary strings. Thus, the number may be assigned to one of the 2^n binary strings. Doing so may reduce the distortion in the number in the event that there is a bit flip in the assigned binary string.
Arithmetic Encoders, Arithmetic Decoders, Video Encoder, Video Decoder, Methods for Encoding, Methods for Decoding and Computer Program
An arithmetic encoder for encoding a plurality of symbols having symbol values to derive an interval size information for an arithmetic encoding of one or more symbol values to be encoded based on a plurality of state variable values representing statistics of a plurality of previously encoded symbol values with different adaptation time constants. The arithmetic encoder maps a first state variable value, or a scaled and/or rounded version thereof, using a lookup-table and maps a second state variable value, or a scaled and/or rounded version thereof using the lookup-table, to obtain the interval size information describing an interval size for the arithmetic encoding of one or more symbols to be encoded. Further arithmetic encoders, arithmetic decoders, video encoders, video decoder, methods for encoding, methods for decoding and computer programs are also disclosed.
Arithmetic Encoders, Arithmetic Decoders, Video Encoder, Video Decoder, Methods for Encoding, Methods for Decoding and Computer Program
An arithmetic encoder for encoding a plurality of symbols having symbol values to derive an interval size information for an arithmetic encoding of one or more symbol values to be encoded based on a plurality of state variable values representing statistics of a plurality of previously encoded symbol values with different adaptation time constants. The arithmetic encoder maps a first state variable value, or a scaled and/or rounded version thereof, using a lookup-table and maps a second state variable value, or a scaled and/or rounded version thereof using the lookup-table, to obtain the interval size information describing an interval size for the arithmetic encoding of one or more symbols to be encoded. Further arithmetic encoders, arithmetic decoders, video encoders, video decoder, methods for encoding, methods for decoding and computer programs are also disclosed.
METHOD AND SYSTEM FOR COMPRESSING APPLICATION DATA FOR OPERATIONS ON MULTI-CORE SYSTEMS
A system and method to compress application control data, such as weights for a layer of a convolutional neural network, is disclosed. A multi-core system for executing at least one layer of the convolutional neural network includes a storage device storing a compressed weight matrix of a set of weights of the at least one layer of the convolutional network and a decompression matrix. The compressed weight matrix is formed by matrix factorization and quantization of a floating point value of each weight to a floating point format. A decompression module is operable to obtain an approximation of the weight values by decompressing the compressed weight matrix through the decompression matrix. A plurality of cores executes the at least one layer of the convolutional neural network with the approximation of weight values to produce an inference output.
METHOD AND SYSTEM FOR COMPRESSING APPLICATION DATA FOR OPERATIONS ON MULTI-CORE SYSTEMS
A system and method to compress application control data, such as weights for a layer of a convolutional neural network, is disclosed. A multi-core system for executing at least one layer of the convolutional neural network includes a storage device storing a compressed weight matrix of a set of weights of the at least one layer of the convolutional network and a decompression matrix. The compressed weight matrix is formed by matrix factorization and quantization of a floating point value of each weight to a floating point format. A decompression module is operable to obtain an approximation of the weight values by decompressing the compressed weight matrix through the decompression matrix. A plurality of cores executes the at least one layer of the convolutional neural network with the approximation of weight values to produce an inference output.
MACHINE LEARNING ACCELERATOR, COMPUTING DEVICE INCLUDING MACHINE LEARNING ACCELERATOR, AND METHOD OF LOADING DATA TO MACHINE LEARNING ACCELERATOR
Disclosed is a machine learning accelerator which includes a first data controller that stores original length information indicating an original length, receives first data with a first length, and decompresses the first data with the first length to output second data with the original length, a second data controller that stores the original length information, receives third data with a second length shorter than the first length, and decompresses the third data with the second length to output fourth data with the original length, a first accelerator core that receives the second data with the original length from the first data controller and performs a first machine learning-based operation, and a second accelerator core that receives the fourth data with the original length from the second data controller and performs a second machine learning-based operation.
MACHINE LEARNING ACCELERATOR, COMPUTING DEVICE INCLUDING MACHINE LEARNING ACCELERATOR, AND METHOD OF LOADING DATA TO MACHINE LEARNING ACCELERATOR
Disclosed is a machine learning accelerator which includes a first data controller that stores original length information indicating an original length, receives first data with a first length, and decompresses the first data with the first length to output second data with the original length, a second data controller that stores the original length information, receives third data with a second length shorter than the first length, and decompresses the third data with the second length to output fourth data with the original length, a first accelerator core that receives the second data with the original length from the first data controller and performs a first machine learning-based operation, and a second accelerator core that receives the fourth data with the original length from the second data controller and performs a second machine learning-based operation.
Efficient encoding methods
A method of encoding data values comprises mapping each of a plurality of input values to one of a pre-defined set of codes based on a probability distribution of the input values. In various examples an input value may be mapped to a code having the same bit-length as the input value and in other examples, the code may be longer than the input value. In various examples, the input values may be grouped into data words and may additionally comprise one or more padding bits.
Efficient encoding methods
A method of encoding data values comprises mapping each of a plurality of input values to one of a pre-defined set of codes based on a probability distribution of the input values. In various examples an input value may be mapped to a code having the same bit-length as the input value and in other examples, the code may be longer than the input value. In various examples, the input values may be grouped into data words and may additionally comprise one or more padding bits.