Prosecution Insights
Last updated: October 04, 2026
Application No. 17/978,439

COMPUTER-IMPLEMENTED ACCUMULATION METHOD FOR SPARSE MATRIX MULTIPLICATION APPLICATIONS

Non-Final OA §102§103
Filed
Nov 01, 2022
Priority
Jul 01, 2022 — CN 202210775690.2
Examiner
LAROCQUE, EMILY E
Art Unit
2182
Tech Center
2100 — Computer Architecture & Software
Assignee
Alibaba Group Holding Limited
OA Round
1 (Non-Final)
81%
Grant Probability
Favorable
1-2
OA Rounds
0m
Est. Remaining
94%
With Interview

Examiner Intelligence

Grants 81% — above average
81%
Career Allowance Rate
387 granted / 480 resolved
+25.6% vs TC avg
Moderate +13% lift
Without
With
+13.0%
Interview Lift
resolved cases with interview
Typical timeline
2y 8m
Avg Prosecution
31 currently pending
Career history
506
Total Applications
across all art units

Statute-Specific Performance

§101
30.6%
-9.4% vs TC avg
§103
22.3%
-17.7% vs TC avg
§102
12.7%
-27.3% vs TC avg
§112
29.6%
-10.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 480 resolved cases

Office Action

§102 §103
DETAILED ACTION The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Claim Objections Claims 13-20 are objected to because of the following informalities. Claim 13 line 25 recites “memoriesas”. This appears to be a typographical error and should possible recite “memories as”. Claims 14-17 inherit the same deficiency as claim 13 based on dependence. Claim 18 recites substantially the same element and is objected to for the same reason. Claims 19-20 inherit the same deficiency as claim 18 based on dependence. Claim 17 lines 3-4 recite what appears to be an extraneous artifact “—FIG. 1” and should be deleted. Appropriate correction is required. Claim Rejections - 35 USC § 102 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. Claims 1-9, and 11-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Z. Du et al., Accelerating CPU0Based Sparse General Matrix Multiplication with Binary Row Merging, arXiv:2206.06611v1 [cs.DC], 14 Jun 2022, et al., (hereinafter “Du”). Regarding claim 1, Du teaches the following: a computer-implemented method for memory-efficient accumulation in executing sparse matrix-matrix multiplications (SpGEMM) (abstract), comprising: obtaining, by a processor associated with a memory, a first sparse matrix and a second sparse matrix for performing SpGEMM (Algorithm 1,Require A, Bin CSR format, line 10, line 11, Section 4.1, Table 2); allocating, by the processor from the memory, a pair of buffers that are respectively pointed by a first pointer and a second pointer (Algorithm 1 line 2, line 3, line 7, line 8, p. 6 least paragraph, thru end of paragraph p. 7); for each first row in the first sparse matrix that comprises a plurality of non-zero elements, identifying, by the processor, a plurality of second rows in the second sparse matrix that correspond to the plurality of non-zero elements (section 2.1.3); obtaining, by the processor, a plurality of intermediate lists computed based on each of the plurality of non-zero elements in the first row and one of the plurality of second rows that corresponds to the non-zero element of the first row (fig 1 left most lists); storing, by the processor, the plurality of intermediate lists into the buffer pointed by the first pointer (Alg 1 line 7, line 12, section 3.1); executing, by the processor, an iterative process comprising: merging the plurality of intermediate lists from the buffer pointed by the first pointer into a smaller number of intermediate lists (fig 2, section 3.1); storing the smaller number of intermediate lists into the buffer pointed by the second pointer (fig 2, Alg 1, lines 21-36); swapping the first pointer and the second pointer (Alg 1 line 7, line 19, line 33, line 34); and determining whether an exit condition to exit the iterative process is met, wherein the exit condition comprises whether the smaller number of intermediate lists comprises one final merged list (Alg 1 line 30); and migrating, by the processor, the one final merged list from the buffer pointed by the first pointer to a system memory as a row of an output matrix of the SpGEMM (Alg 1 line 36). Regarding claim 2, in addition to the teachings addressed in the claim 1 analysis, Du teaches the following: allocating an offset buffer comprising a plurality of offsets respectively corresponding to the plurality of intermediate lists, wherein each offset points to a first unmerged element in the corresponding intermediate list (Alg 1, line 14, lines 21-31). Regarding claim 3, in addition to the teachings addressed in the claim 2 analysis, Du teaches the following: in response to merging the plurality of intermediate lists into the smaller number of intermediate lists, updating the offset buffer so that each offset points to an offset of a first unmerged element in one of the smaller number of intermediate lists (Alg 1 line 34). Regarding claim 4, in addition to the teachings addressed in the claim 1 analysis, Du teaches the following: wherein the merging the plurality of intermediate lists from the buffer pointed by the first pointer into the smaller number of intermediate lists and storing the smaller number of intermediate lists into the buffer pointed by the second pointer comprises: for two adjacent intermediate lists of the plurality of intermediate lists: (1) determining two memory offsets in the buffer pointed by the first pointer, the two memory offsets pointing to the two intermediate lists respectively; (2) determining a destination memory offset in the buffer pointed by the second pointer; (3) retrieving, at the memory offsets of the buffer pointed by the first pointer, column indices of two elements; (4) in response to the column indices of the two elements being same, aggregating values of the two unmerged elements to obtain an aggregated value, storing the aggregated value into a merged list starting at the destination memory offset in the buffer pointed by the second pointer; (5) in response to the column indices of the two elements being different, storing one of the two unmerged elements that comprises a smaller value into the merged list starting at the destination memory offset in the buffer pointed by the second pointer; and repeating steps (1)-(5) until the two intermediate lists are merged into the merged list in the buffer pointed by the second pointer (Section 3.1, image and description of figure 2 describes steps 1-5, Alg 1 with the repeating). Regarding claim 5, in addition to the teachings addressed in the claim 1 analysis, Du teaches the following: wherein the first sparse matrix and the second sparse matrix are stored in a compact data format, wherein the compact data format excludes zero-value data in the first sparse matrix and the second sparse matrix (Alg 1 Require A, B in CSR format, section 2.1.3). Regarding claim 6, in addition to the teachings addressed in the claim 1 analysis, Du teaches the following: determining a buffer size for the pair of buffers by performing a symbolic computation based on indices of non-zero elements in the first sparse matrix and row sizes of the second sparse matrix, wherein the symbolic computation estimates a maximum number of floating-point multiplication operations (FLOP) in a hypothetical multiplication between each of the plurality of first rows and the second sparse matrix (Al 1 line 1), wherein the allocating the pair of buffers comprises: allocating each of the pair of buffers with the buffer size (Alg 1 line 2-3, section 3.2). Regarding claim 7, in addition to the teachings addressed in the claim 6 analysis, Du teaches the following: wherein the symbolic computation comprises: for each of the plurality of first rows that comprises one or more non-zero elements, identifying one or more corresponding second rows from the second sparse matrix; determining a number of FLOP for the each first row based on a number of non-zero elements in the one or more corresponding second rows from the second sparse matrix; and determining the maximum number of FLOP of the plurality of first rows as the buffer size (section 3.2 2nd to last paragraph). Regarding claim 8, in addition to the teachings addressed in the claim 1 analysis, Du teaches the following: wherein the processor comprises a multi-core processor (Abstract first paragraph), and the method further comprises: segmenting rows of the first sparse matrix into multiple groups of first rows according to a number of cores in the multi-core processor (section 2.1.2 last two paragraphs); and assigning the multiple groups of first rows into the number of cores for parallel processing, wherein each core allocates a corresponding pair of buffers (section 2.1.2 last two paragraphs). Regarding claim 9, in addition to the teachings addressed in the claim 8 analysis, Du teaches the following: wherein the multi-core processor comprises a multi-core CPU (abstract first paragraph). Regarding claim 11, in addition to the teachings addressed in the claim 2 analysis, Du teaches the following: wherein the offset buffer comprises a pair of index lists respectively corresponding to the pair of buffers (Alg 1 lines 4-5). Regarding claim 12, in addition to the teachings addressed in the claim 2 analysis, Du teaches the following: Determining a buffer size for the offset buffer based on a maximum number of non-zero data in each row of the first sparse matrix (Alg 1 lines 4-5). Regarding claim 13, Du teaches the following: a system for memory-efficient accumulation to accelerate SpGEMM computations, comprising one or more processors and one or more non-transitory computer-readable memories coupled to the one or more processors and configured with instructions executable by the one or more processors to cause the system to perform operations (abstract) comprising: obtaining a first sparse matrix and a second sparse matrix for performing SpGEMM (Algorithm 1,Require A, Bin CSR format, line 10, line 11, Section 4.1, Table 2); allocating a pair of buffers in a cache associated with the one or more processors, the pair of buffers respectively pointed by a first pointer and a second pointer (Algorithm 1 line 2, line 3, line 7, line 8, p. 6 least paragraph, thru end of paragraph p. 7, abstract second paragraph, section 3.3, 3.3.1); for each first row in the first sparse matrix that comprises a plurality of non-zero elements, identifying, by the processor, a plurality of second rows in the second sparse matrix that correspond to the plurality of non-zero elements (section 2.1.3); obtaining a plurality of intermediate lists computed based on each of the plurality of non-zero elements in the first row and one of the plurality of second rows that corresponds to the non-zero element of the first row (fig 1 left most lists); storing the plurality of intermediate lists into the buffer pointed by the first pointer (Alg 1 line 7, line 12, section 3.1); executing an iterative process comprising: merging the plurality of intermediate lists from the buffer pointed by the first pointer into a smaller number of intermediate lists (fig 2, section 3.1); storing the smaller number of intermediate lists into the buffer pointed by the second pointer (fig 2, Alg 1, lines 21-36); swapping the first pointer and the second pointer (Alg 1 line 7, line 19, line 33, line 34); and determining whether an exit condition to exit the iterative process is met, wherein the exit condition comprises whether the smaller number of intermediate lists comprises one final merged list (Alg 1 line 30); and migrating the one final merged list from the cache to the one or more non-transitory memoriesas a row of an output matrix of the SpGEMM (Alg 1 line 36). Regarding claim 14, in addition to the teachings addressed in the claim 13 analysis, Du teaches the following: determining a buffer size for the pair of buffers by performing a symbolic computation based on indices of non-zero elements in the first sparse matrix and row sizes of the second sparse matrix, wherein the symbolic computation estimates a maximum number of floating-point multiplication operations (FLOP) in a hypothetical multiplication between each of the plurality of first rows and the second sparse matrix (Al 1 line 1), wherein the allocating the pair of buffers comprises: allocating each of the pair of buffers with the buffer size (Alf 1 line 2-3, section 3.2). Regarding claim 15, in addition to the teachings addressed in the claim 14 analysis, Du teaches the following: wherein the symbolic computation comprises: for each of the plurality of first rows that comprises one or more non-zero elements, identifying one or more corresponding second rows from the second sparse matrix; determining a number of FLOP for the each first row based on a number of non-zero elements in the one or more corresponding second rows from the second sparse matrix; and determining the maximum number of FLOP of the plurality of first rows as the buffer size (section 3.2 2nd to last paragraph). Regarding claim 16, in addition to the teachings addressed in the claim 13 analysis, Du teaches the following: allocating an offset buffer comprising a plurality of offsets respectively corresponding to the plurality of intermediate lists, wherein each offset points to a first unmerged element in the corresponding intermediate list (Alg 1, line 14, lines 21-31). Regarding claim 17, in addition to the teachings addressed in the claim 13 analysis, Du teaches the following: wherein the merging the plurality of intermediate lists from the buffer pointed by the first pointer into the smaller number of intermediate lists and storing the smaller number of intermediate lists into the buffer pointed by the second pointer comprises: -- FIG 1 for two adjacent intermediate lists of the plurality of intermediate lists: (1) determining two memory offsets in the buffer pointed by the first pointer, the two memory offsets pointing to the two intermediate lists respectively; (2) determining a destination memory offset in the buffer pointed by the second pointer; (3) retrieving, at the memory offsets of the buffer pointed by the first pointer, column indices of two elements; (4) in response to the column indices of the two elements being same, aggregating values of the two unmerged elements to obtain an aggregated value, storing the aggregated value into a merged list starting at the destination memory offset in the buffer pointed by the second pointer; (5) in response to the column indices of the two elements being different, storing one of the two unmerged elements that comprises a smaller value into the merged list starting at the destination memory offset in the buffer pointed by the second pointer; and repeating steps (1)-(5) until the two intermediate lists are merged into the merged list in the buffer pointed by the second pointer (Section 3.1, image and description of figure 2 describes steps 1-5, Alg 1 with the repeating). Regarding claim 18, Du teaches the following: a non-transitory computer-readable storage medium for memory-efficient accumulation to accelerate SpGEMM computations between a first sparse matrix and a second sparse matrix, the storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations (abstract) comprising: obtaining a first sparse matrix and a second sparse matrix for performing SpGEMM (Algorithm 1,Require A, Bin CSR format, line 10, line 11, Section 4.1, Table 2); allocating a pair of buffers in a cache associated with the one or more processors, the pair of buffers pointed by a first pointer and a second pointer (Algorithm 1 line 2, line 3, line 7, line 8, p. 6 least paragraph, thru end of paragraph p. 7, Abstract second paragraph, section 3.3 second paragraph, section 3.3.1); for each first row in the first sparse matrix that comprises a plurality of non-zero elements, identifying, by the processor, a plurality of second rows in the second sparse matrix that correspond to the plurality of non-zero elements (section 2.1.3); obtaining a plurality of intermediate lists computed based on each of the plurality of non-zero elements in the first row and one of the plurality of second rows that corresponds to the non-zero element of the first row (fig 1 left most lists); storing the plurality of intermediate lists into the buffer pointed by the first pointer (Alg 1 line 7, line 12, section 3.1); executing an iterative process comprising: merging the plurality of intermediate lists from the buffer pointed by the first pointer into a smaller number of intermediate lists (fig 2, section 3.1); storing the smaller number of intermediate lists into the buffer pointed by the second pointer (fig 2, Alg 1, lines 21-36); swapping the first pointer and the second pointer (Alg 1 line 7, line 19, line 33, line 34); and determining whether an exit condition to exit the iterative process is met, wherein the exit condition comprises whether the smaller number of intermediate lists comprises one final merged list (Alg 1 line 30); and migrating the one final merged list to the one or more non-transitory memoriesas a row of an output matrix of the SpGEMM (Alg 1 line 36). Regarding claim 19, in addition to the teachings addressed in the claim 18 analysis, Du teaches the following: determining a buffer size for the pair of buffers by performing a symbolic computation based on indices of non-zero elements in the first sparse matrix and row sizes of the second sparse matrix, wherein the symbolic computation estimates a maximum number of floating-point multiplication operations (FLOP) in a hypothetical multiplication between each of the plurality of first rows and the second sparse matrix (Al 1 line 1), wherein the allocating the pair of buffers comprises: allocating each of the pair of buffers with the buffer size (Alf 1 line 2-3, section 3.2). Regarding claim 20, in addition to the teachings addressed in the claim 19 analysis, Du teaches the following: wherein the symbolic computation comprises: for each of the plurality of first rows that comprises one or more non-zero elements, identifying one or more corresponding second rows from the second sparse matrix; determining a number of FLOP for the each first row based on a number of non-zero elements in the one or more corresponding second rows from the second sparse matrix; and determining the maximum number of FLOP of the plurality of first rows as the buffer size (section 3.2 2nd to last paragraph). Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Du. Regarding claim 10, in addition to the teachings addressed in the claim 8 analysis, Du teaches: Wherein the multi-core processor comprises a CPU, and the number of cores comprise a plurality of Streaming Multiprocessors (SMs) of the CPU (abstract, Introduction p. 2 middle, section 3.3.1). Du discloses SpGEMM row-wise dataflow executed on GPU, with disclosure of numerous methods cited (section 2.1.2 second to last paragraph). It would have been obvious to one of ordinary skill in the art before the effective filing date to implement Du’s algorithm on a multi-core processor comprising a plurality of SMs on a GPU. It is obvious to apply a known technique to a known device ready for improvement to yield predictable results. MPEP 2141.III.(D). Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. H. Li et al., Merge-based Parallel Sparse Matrix-Sparse Vector Multiplication with a Vector Architecture, 2018 IEEE 20th International Conference on High Performance Computing and Communications, IEEE 16th International Conference on Smart City, IEEE 4th Intl. Conference on Data Science Systems, 2018 (hereinafter “Li”) discloses a merge-based method to accelerate sparse matrix, dense vector multiplication (abstract). Li further discloses a parallel merge in a horizontal direction by comparing index of pointers for vector pairs (fig 2, alg 2, alg 3). Any inquiry concerning this communication or earlier communications from the examiner should be directed to EMILY E LAROCQUE whose telephone number is (469)295-9289. The examiner can normally be reached on 10:00am - 1200pm, 2:00pm - 8pm ET M-F. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor Andrew Caldwell can be reached on 571-272-3701. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /EMILY E LAROCQUE/Examiner, Art Unit 2182
Read full office action

Prosecution Timeline

Nov 01, 2022
Application Filed
Jun 05, 2026
Non-Final Rejection mailed — §102, §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12730608
METHOD FOR GRAPHING COMPLEX FUNCTION, PROGRAM STORAGE MEDIUM, AND INFORMATION PROCESSING APPARATUS
4y 6m to grant Granted Sep 08, 2026
Patent 12730609
Apparatus and Method for Processing Floating-Point Numbers
3y 6m to grant Granted Sep 08, 2026
Patent 12725644
PROCESSING-IN-MEMORY (PIM) DEVICE FOR PERFORMING A BURST MULTIPLICATION AND ACCUMULATION (MAC) OPERATION
4y 1m to grant Granted Sep 01, 2026
Patent 12724586
ELECTRONIC DEVICE INCLUDING NEURAL PROCESSING UNIT SUPPORTING DIFFERENT DATA TYPES AND METHOD FOR CONTROLLING THE SAME
4y 1m to grant Granted Sep 01, 2026
Patent 12688010
PROCESSING ELEMENT, NEURAL PROCESSING DEVICE INCLUDING SAME, AND METHOD FOR CALCULATING THEREOF
4y 4m to grant Granted Jul 21, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
81%
Grant Probability
94%
With Interview (+13.0%)
2y 8m (~0m remaining)
Median Time to Grant
Low
PTA Risk
Based on 480 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month