IP Library › Granted Patent US 12,425,047
Granted Patent B2
US 12,425,047 · App. 17/483,693 · Granted Sep 23, 2025

Methods and apparatus to perform weight and activation compression and decompression

Inventors: Nilesh Jain (Portland, OR); Menachem Adelman (Haifa, IL); Raanan Sade (Kibutz Sarid, IL); Ravishankar Iyer (Portland, OR); Rajesh Poornachandran (Portland, OR); Yash Akhauri (Uttar Pradesh, IN)
Assignee: INTEL CORPORATION
H03M7/70G06F17/16G06N3/082
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,425,047
App. No.
17/483,693
Granted
Sep 23, 2025
Kind
B2
Abstract

Methods, apparatus, systems, and articles of manufacture to perform weight and activation compression and decompression are disclosed. An example apparatus includes memory, instructions in the apparatus, and processor circuitry to execute the instructions to execute a compression operation to obtain compressed data corresponding to weights in a weight matrix, and determine meta-data associated with the weight matrix, a first portion of the meta-data indicative of whether the weight matrix is compressed, a second portion of the meta-data indicative of a cache size of the compressed data, and a third portion of the meta-data indicative of the compression operation executed to obtain the compressed data.

Claims (49)

1. An apparatus comprising:

memory;

instructions in the apparatus; and

processor circuitry to execute the instructions to:

execute a compression operation on a first portion of a matrix of weights for a neural network to obtain first compressed data, the first portion of the matrix is a sparse portion;

execute the compression operation on a second portion of the matrix of weights for a neural network to obtain second compressed data, the second portion of the matrix is a sparse portion;

determine first meta-data associated with the first compressed data and second meta-data associated with the second compressed data, a first portion of the first meta-data indicative of whether the first compressed data is compressed, a second portion of the first meta-data indicative of a cache size of the first compressed data, and a third portion of the first meta-data indicative of the compression operation executed to obtain the first compressed data;

cause the first meta-data and the second meta-data to be stored contiguously in a first row of a memory;

cause the first compressed data to be stored in a second row in the memory; and

cause the second compressed data to be stored in a third row in the memory, wherein the second row and the third row are consecutive rows.

2. The apparatus of claim 1 , wherein the first meta-data is a byte.

3. The apparatus of claim 1 , wherein the first portion of the first meta-data is of a first size, the third portion of the first meta-data is of a second size larger than the first size, and the second portion of the first meta-data is of a third size larger than the second size.

4. The apparatus of claim 1 , wherein the first portion of the first meta-data is a bit, wherein the processor circuitry is to:

assign a first value to the bit in response to the first compressed data being compressed; and

assign a second value to the bit in response to the first compressed data being uncompressed.

5. The apparatus of claim 1 , wherein the processor circuitry is to record a quantity of cache lines occupied by the first compressed data in the second portion of the first meta-data.

6. The apparatus of claim 1 , wherein the processor circuitry is to:

pack non-zero weights from the matrix of weights into a compressed tile; and

generate a bitmap indicative of respective locations of the non-zero weights in the matrix of weights.

7. A non-transitory machine readable medium comprising instructions which, when executed, cause one or more processors to:

execute a compression operation on a first portion of a matrix of weights for a neural network to obtain first compressed data, the first portion of the matrix is a sparse portion;

execute the compression operation on a second portion of the matrix of weights for a neural network to obtain second compressed data, the second portion of the matrix is a sparse portion;

determine first meta-data associated with the first compressed data and second meta-data associated with the second compressed data, a first portion of the first meta-data indicative of whether the first compressed data is compressed, a second portion of the first meta-data indicative of a cache size of the first compressed data, and a third portion of the first meta-data indicative of the compression operation executed to obtain the first compressed data;

cause the first meta-data and the second meta-data to be stored contiguously in a first row of a memory;

cause the first compressed data to be stored in a second row in the memory; and

cause the second compressed data to be stored in a third row in the memory, wherein the second row and the third row are consecutive rows.

8. The non-transitory machine readable medium of claim 7 , wherein the first meta-data is a byte.

9. The non-transitory machine readable medium of claim 7 , wherein the first portion of the first meta-data is of a first size, the third portion of the first meta-data is of a second size larger than the first size, and the second portion of the first meta-data is of a third size larger than the second size.

10. The non-transitory machine readable medium of claim 7 , wherein the first portion of the first meta-data is a bit, wherein the instructions, when executed, cause the one or more processors to:

assign a first value to the bit in response to the first compressed data being compressed; and

assign a second value to the bit in response to the first compressed data being uncompressed.

11. The non-transitory machine readable medium of claim 7 , wherein the instructions, when executed, cause the one or more processors to record a quantity of cache lines occupied by the first compressed data in the second portion of the first meta-data.

12. The non-transitory machine readable medium of claim 7 , wherein the compressed data includes non-zero weights from the matrix of weights and a bitmap indicative of respective locations of the non-zero weights in the matrix of weights.

13. A method comprising:

executing a compression operation on a first portion of a matrix of weights for a neural network to obtain first compressed data, the first portion of the matrix is a sparse portion;

executing the compression operation on a second portion of the matrix of weights for a neural network to obtain second compressed data, the second portion of the matrix is a sparse portion;

determining first meta-data associated with the first compressed data and second meta-data associated with the second compressed data, a first portion of the first meta-data indicative of whether the first compressed data is compressed, a second portion of the first meta-data indicative of a cache size of the first compressed data, and a third portion of the first meta-data indicative of the compression operation executed to obtain the first compressed data;

causing the first meta-data and the second meta-data to be stored contiguously in a first row of a memory;

causing the first compressed data to be stored in a second row in the memory; and

causing the second compressed data to be stored in a third row in the memory, wherein the second row and the third row are consecutive rows.

14. The method of claim 13 , wherein the first meta-data is a byte.

15. The method of claim 13 , wherein the first portion of the first meta-data is of a first size, the third portion of the first meta-data is of a second size larger than the first size, and the second portion of the first meta-data is of a third size larger than the second size.

16. The method of claim 13 , wherein the first portion of the first meta-data is a bit, wherein determining the first meta-data associated with the first compressed data includes:

assigning a first value to the bit in response to the first compressed data being compressed; and

assigning a second value to the bit in response to the first compressed data being uncompressed.

17. The method of claim 13 , wherein determining the first meta-data includes a quantity of cache lines occupied by the first compressed data in the second portion of the second meta-data.

18. The method of claim 13 , wherein executing the compression operation includes:

packing non-zero weights from the matrix of weights into a compressed array; and

generating a bitmap indicative of respective positions of the non-zero weights in the matrix of weights.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2021
From: JAIN, NILESH; ADELMAN, MENACHEM; SADE, RAANAN; IYER, RAVISHANKAR; POORNACHANDRAN, RAJESH; AKHAURI, YASH
To: INTEL CORPORATION
Reel/Frame 057960/0246 →
Priority Claims (1)
IN 202141026534 · Jun 15, 2021 · national
Continuity (1)
Related Publication 20220012592A1 · Jan 13, 2022
References Cited (8)
US 7680992B1 · Van Dyke · 2010 [cited by examiner]
US 20030031371A1 · Kato · 2003 [cited by examiner]
US 20180150991A1 · Tannenbaum · 2018 [cited by examiner]
US 20180285733A1 · Mellempudi · 2018 [cited by examiner]
US 20200104691A1 · Bai · 2020 [cited by examiner]
US 20200143249A1 · Georgiadis · 2020 [cited by examiner]
US 20200233666A1 · Valentine et al. · 2020 [cited by applicant]
Intel, “Intel C++ Compiler Classic Developer Guide and Reference,” retrieved from [https://www.intel.com/content/www/us/en/developer/articles/guide/download-documentation-intel-compiler-current-and-previous.html], Versi… [cited by applicant]