Outer product-based matrix-vector multiplication operation apparatus for accelerating vector operation and method using the same
US-2024362297-A1 · Oct 31, 2024 · US
US8959130B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-8959130-B2 |
| Application number | US-201213534552-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 27, 2012 |
| Priority date | Jun 30, 2011 |
| Publication date | Feb 17, 2015 |
| Grant date | Feb 17, 2015 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Exponents, mantissas and signs of floating-point numbers are compressed in encoding groups. Differences between maximum exponents of encoding groups are encoded by exponent tokens selected from a code table. Each mantissa of an encoding group is encoded to a mantissa token having a length based on the maximum exponent. Signs are encoded directly or are compressed to produce sign tokens. Exponent tokens, mantissa tokens and sign tokens are packed in a compressed data packet. For decompression, the exponent tokens are decoded using the code table. The decoded exponent difference is added to a previous reconstructed maximum exponent to produce the reconstructed maximum exponent for the encoding group. The reconstructed maximum exponent is used to determine the length of the mantissa tokens that are decoded to produce the reconstructed mantissas for the encoding group. The reconstructed sign, reconstructed exponent and reconstructed mantissa are combined to form a reconstructed floating-point number.
Opening claim text (preview).
I claim: 1. A method for compressing a plurality of floating-point numbers, wherein each floating-point number includes an original number of bits in accordance with a floating-point format used in a data processing system, the floating-point format defining a sign bit to represent a sign, a plurality of exponent bits to represent an exponent and a plurality of mantissa bits to represent a mantissa, the method comprising: setting a code table in a memory of the data processing system, wherein the code table associates a set of exponent difference values with a set of corresponding exponent tokens; grouping the plurality of floating-point numbers into a sequence of encoding groups; compressing a maximum exponent of the encoding group to produce an exponent token for the encoding group, comprising: determining the maximum exponent for the encoding group of exponents; calculating an exponent difference between the maximum exponent and a previous maximum exponent of a previous encoding group; and encoding the exponent difference by identifying the exponent token corresponding to the exponent difference using the code table; compressing the mantissas of the encoding group to produce mantissa tokens, comprising: determining a number of encoded mantissa bits based on the maximum exponent of the encoding group; and encoding the mantissa to produce the mantissa token having the number of encoded mantissa bits; encoding the signs of the encoding group to produce one or more sign tokens; and packing the exponent token, the mantissa tokens and the sign tokens for each encoding group of the sequence of encoding groups in a compressed data packet. 2. The method of claim 1 , wherein said encoding the signs further comprises compressing the signs of the encoding group to produce the one or more sign tokens representing compressed signs. 3. The method of claim 1 , wherein said encoding the signs further comprises using the value of the sign of the as the sign token. 4. The method of claim 1 , wherein the code table includes an escape token, said encoding the exponent difference further comprising: combining the escape token with the exponent difference to form the exponent token when the exponent difference differs from the set of exponent difference values in the code table. 5. The method of claim 1 , wherein the code table associates corresponding exponent tokens with exponent difference values having higher frequencies of occurrence in accordance with a Huffman encoding. 6. The method of claim 1 , wherein the code table associates corresponding exponent tokens with exponent difference values having higher frequencies of occurrence in accordance with an entropy encoding. 7. The method of claim 1 , wherein said setting a code table in memory provides a plurality of code tables, wherein each code table is associated with a table indicator, said compressing the exponent further comprising: calculating a statistic of the exponent differences for at least a portion of the plurality of floating-point numbers; selecting the code table based on the statistic, wherein said encoding the exponent difference selects the exponent token from the selected code table; and saving the table indicator associated with the selected code table in the compressed data packet. 8. The method of claim 7 , wherein said calculating a statistic comprises calculating a histogram of the exponent differences, wherein said selecting the code table further comprises: calculating a total number of bits for the corresponding exponent tokens of each of the plurality of code tables based on the histogram of exponent differences; and selecting the code table where the total number of bits is lowest. 9. The method of claim 1 , wherein said encoding the mantissa further comprises: subtracting the exponent corresponding to the mantissa from the maximum exponent for the encoding group to produce a shift number; inserting the shift number of zeros followed by a “1” in most significant bit positions of the mantissa to form an aligned mantissa; and saving most significant bits of the aligned mantissa to form the mantissa token having the number of encoded mantissa bits. 10. The method of claim 1 , further comprising: setting a mapping function in the memory that relates a set of maximum exponent values to a set of numbers of encoded mantissa bits, wherein said determining a number of encoded mantissa bits uses the mapping function to determine the number of encoded mantissa bits based on the maximum exponent of the encoding group. 11. The method of claim 10 , wherein said setting a mapping function provides a plurality of mapping functions, each mapping function associated with a mapping function indicator, further comprising: calculating a statistic of the maximum exponents for at least a portion of the sequence of encoding groups; selecting the mapping function based on the statistic, wherein said determining a number of encoded mantissa bits uses the selected mapping function; and storing the mapping function indicator in the compressed data packet. 12. The method of claim 11 , wherein said calculating a statistic comprises calculating a histogram of the maximum exponents, said selecting the mapping function further comprising: calculating a total number of encoded mantissa bits for each of the mapping functions based on the histogram of maximum exponents; and selecting the mapping function where the total number of encoded mantissa bits is lowest. 13. A method for reconstructing floating-point numbers from encoded floating-point numbers corresponding to original floating-point numbers, each having an original number of bits in accordance with a floating-point format used in a data processing system, the floating-point format defining a sign bit to represent a sign, a number of exponent bits to represent an exponent and a number of mantissa bits to represent a mantissa, the method comprising: setting a code table in a memory of the data processing system, wherein the code table associates a set of exponent difference values with a set of corresponding exponent tokens; receiving a compressed data packet containing a plurality of encoded floating-point numbers, represented by sign tokens, exponent tokens and mantissa tokens arranged in a sequence of encoding groups; decompressing the exponent token for the encoding group to form a reconstructed maximum exponent, comprising: extracting the exponent token for the encoding group from the compressed data packet; and decoding the exponent token by identifying the exponent difference value corresponding to the exponent token using the code table to produce a decoded exponent difference; adding the decoded exponent difference to a previous reconstructed maximum exponent corresponding to a previous encoding group to produce the reconstructed maximum exponent having the number of exponent bits in accordance with the floating-point format; decompressing the each mantissa token of the encoding group, comprising: determining a number of encoded mantissa bits for each mantissa token in the encoding group based on the reconstructed maximum exponent; extracting the mantissa tokens for the encoding group from the compressed data packet; and decoding each mantissa token to form a reconstructed mantissa having the number of mantissa bits in accordance with the floating-point format; reconstructing exponents for the encoding group based on the reconstructed maximum exponent and the mantissa tokens to form reconstructed exponents, each having the number of exponent bits in accordance with the floating-point format; extracting one or
Statistical coding, e.g. Huffman, run length coding · CPC title
Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction · CPC title
Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers {(G06F7/4806, G06F7/4824, G06F7/49, G06F7/491, G06F7/544 take precedence)} · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.