Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
1. This Office Action is in response to the amendment filed on 09/26/2025. Claims 1-31 are pending in this application. Claims 1, 7, 25, 30 and 31 are independent claims. This Office Action is made Final.
Claim Rejections - 35 USC § 101
2. 35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
3. Claims 1-31 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The independent claims 1, 7, 25, 30 and 31 are corresponding to one of four statutory categories including method, system, and method respectively under step 1.
The claims 1, 30 and 31 similarly recites “a method of balancing computing resources during compilation, the method comprising: generating multiple vectorized loops of a scalar code; interpolating one or more scalar iterations of the scalar loop into each of the multiple vectorized loops to generate multiple scalar interpolated vectorized loops; and selecting one of the multiple scalar interpolated vectorized loops based on a cost model”.
Claim 7 recites “a method of balancing computing resource based on feedback or profiling information obtained during program execution, the method comprising: obtaining a vectorized loop from a program; and interpolating one or more scalar iterations of the vectorized loop into the vectorized loop to generate a scalar interpolated vectorized loop”.
Claim 25 recites “a method of balancing computing resources executed at runtime on a target processor, the method comprising: generating multiple versions of a vectorized loop; interpolating one or more scalar iterations of the vectorized loop into each of the multiple versions of the vectorized loop to generate multiple scalar interpolated vectorized loops; and selecting one version of the vectorized loop from: the vectorized loop and the multiple scalar interpolated vectorized loops”.
The limitation of the claims 1, 30 and 31 of “generating multiple vectorized loops of a scalar code” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “generating (writing a code)” in the context of this claim encompasses the user may generate multiple vectorized loops of a scalar code with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 25 of “generating multiple versions of a vectorized loop” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “generating” in the context of this claim encompasses the user may generate multiple versions of a vectorized loop with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claims 1, 30 and 31 of “interpolating one or more scalar iterations of the scalar loop into each of the multiple vectorized loops to generate multiple scalar interpolated vectorized loops;” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mathematical operation but for the recitation of generic computer components. For example, but for the “calculating interpolation” in the context of this claim encompasses the user may calculate interpolation (e.g. taking a weighted average of the vectors) of one or more scalar iterations of the scalar loop into each of the multiple vectorized loops to generate multiple scalar interpolated vectorized loops with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mathematical Operation” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 7 of “interpolating one or more scalar iterations of the vectorized loop into the vectorized loop to generate a scalar interpolated vectorized loop” as drafted, is a mathematical operation that, under its broadest reasonable interpretation, covers a mathematical operation but for the recitation of generic computer components. For example, but for the “calculating interpolation” in the context of this claim encompasses the user may calculate interpolation (e.g. taking a weighted average of the vectors) of one or more scalar iterations of the vectorized loop into the vectorized loop to generate a scalar interpolated vectorized loop with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mathematical Operation” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 25 of “interpolating one or more scalar iterations of the vectorized loop into each of the multiple versions of the vectorized loop to generate multiple scalar interpolated vectorized loops” as drafted, is a mathematical operation that, under its broadest reasonable interpretation, covers a mathematical operation but for the recitation of generic computer components. For example, but for the “calculating interpolation” in the context of this claim encompasses the user may calculate interpolation (e.g. taking a weighted average of the vectors) of one or more scalar iterations of the vectorized loop into each of the multiple versions of the vectorized loop to generate multiple scalar interpolated vectorized loops with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mathematical Operation” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claims 1, 30 and 31 of “selecting one of the multiple scalar interpolated vectorized loops based on a cost model” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “selecting” in the context of this claim encompasses the user may select one of the multiple scalar interpolated vectorized loops based on a cost model with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 25 of “selecting one version of the vectorized loop from: the vectorized loop and the multiple scalar interpolated vectorized loops” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “selecting” in the context of this claim encompasses the user may select one version of the vectorized loop from: the vectorized loop and the multiple scalar interpolated vectorized loops with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 7 recites additional elements such as “obtaining a vectorized loop from a program”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data gathering under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 2 of “determining that the scalar loop is legal to vectorize” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine that the scalar loop is legal to vectorize with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 3 of “determining that scalar interpolation is legal for each of the multiple vectorized loops” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine that scalar interpolation is legal for each of the multiple vectorized loops with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 4 of “for each of the multiple vectorized loops, determining a number of scalar iterations to interpolate based on the available scalar resources, wherein the one or more scalar iterations interpolated into each of the multiple vectorized loops is based on the determined number of scalar iterations” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine a number of scalar iterations to interpolate based on the available scalar resources, wherein the one or more scalar iterations interpolated into each of the multiple vectorized loops is based on the determined number of scalar iterations with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 5 recites additional elements such as “the cost model is based on one or more of: heuristics calculated based on number of instructions in each of the multiple interleaved and scalar interpolated vectorized loops; latency of instructions in each of the multiple interleaved and scalar interpolated vectorized loops; and instruction-Level Parallelism (ILP) present in each of the multiple interleaved and scalar interpolated vectorized loops”.
Examiner would like to point out that with the broad reasonable interpretation, this element
amounts to field of use under MPEP § 2106.05(h): Field of Use and Technological Environment, which
does not impose any meaningful limits on practicing the mental process. Accordingly, this additional
element does not integrate the abstract idea into a practical application because it does not impose any
meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Step 2A Prong 2 and 2B.
The limitation of the claim 3 of “determining that scalar interpolation is legal for each of the multiple vectorized loops” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine that scalar interpolation is legal for each of the multiple vectorized loops with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 6 of “interleaving one or more of the multiple vectorized loops to generate one or more interleaved vectorized loops, the interleaving being based on available vector resources” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “interleaving (switching order)” in the context of this claim encompasses the user may interleave one or more of the multiple vectorized loops to generate one or more interleaved vectorized loops, the interleaving being based on available vector resources with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 6 of “wherein: interpolating one or more scalar iterations of the scalar loop into each of the multiple vectorized loops to generate multiple scalar interpolated vectorized loops further comprises: interpolating one or more scalar iterations of the scalar loop into each of the one or more interleaved vectorized loops to generate one or more interleaved and scalar interpolated vectorized loops” as drafted, is a mathematical operation that, under its broadest reasonable interpretation, covers a mathematical operation but for the recitation of generic computer components. For example, but for the “calculating interpolation” in the context of this claim encompasses the user may calculate interpolation (e.g. taking a weighted average of the vectors) one or more scalar iterations of the scalar loop into each of the multiple vectorized loops to generate multiple scalar interpolated vectorized loops further comprises: interpolating one or more scalar iterations of the scalar loop into each of the one or more interleaved vectorized loops to generate one or more interleaved and scalar interpolated vectorized loops with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mathematical Operation” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 6 of “selecting one of the multiple scalar interpolated vectorized loops based on a cost model comprises selecting, based on the cost model, one of: the multiple scalar interpolated vectorized loops and the one or more interleaved and scalar interpolated vectorized loops” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “selecting” in the context of this claim encompasses the user may select one of the multiple scalar interpolated vectorized loops based on a cost model comprises selecting, based on the cost model, one of: the multiple scalar interpolated vectorized loops and the one or more interleaved and scalar interpolated vectorized loops with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 8 recites additional elements such as “obtaining the vectorized loop from a program comprises vectorizing the program”.
Examiner would like to point out that with the broad reasonable interpretation, this element
amounts to field of use under MPEP § 2106.05(h): Field of Use and Technological Environment, which
does not impose any meaningful limits on practicing the mental process. Accordingly, this additional
element does not integrate the abstract idea into a practical application because it does not impose any
meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Step 2A Prong 2 and 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 9 recites additional elements such as “the program is a pre-compiled program”.
Examiner would like to point out that with the broad reasonable interpretation, this element
amounts to field of use under MPEP § 2106.05(h): Field of Use and Technological Environment, which
does not impose any meaningful limits on practicing the mental process. Accordingly, this additional
element does not integrate the abstract idea into a practical application because it does not impose any
meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Step 2A Prong 2 and 2B.
The limitation of the claim 10 of “determining that scalar interpolation is legal for the vectorized loop” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine that scalar interpolation is legal for the vectorized loop with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 11 recites additional elements such as “obtaining runtime data of the vectorized loop”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data gathering under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 12 of “determining, based on the obtained runtime data, that scalar interpolation is beneficial to the vectorized loop in terms of resource utilization, wherein the obtained runtime data is performance data indicating resource utilization” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine, based on the obtained runtime data, that scalar interpolation is beneficial to the vectorized loop in terms of resource utilization, wherein the obtained runtime data is performance data indicating resource utilization with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 13 of “interpolating based on the obtained runtime data” as drafted, is a mathematical operation that, under its broadest reasonable interpretation, covers a mathematical operation but for the recitation of generic computer components. For example, but for the “calculating interpolation” in the context of this claim encompasses the user may calculate interpolation (e.g. taking a weighted average of the vectors) based on the obtained runtime data with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mathematical Operation” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 14 of “interpolating one or more scalar iterations of the vectorized loop into the vectorized loop comprises: generating one or more equivalent scalar iterations of the vectorized loop; and interpolating the one or more of the generated equivalent scalar iterations into the vectorized loop” as drafted, is a mathematical operation that, under its broadest reasonable interpretation, covers a mathematical operation but for the recitation of generic computer components. For example, but for the “calculating interpolation” in the context of this claim encompasses the user may calculate interpolation (e.g. taking a weighted average of the vectors) one or more scalar iterations of the vectorized loop into the vectorized loop comprises: generating one or more equivalent scalar iterations of the vectorized loop; and calculate interpolation of the one or more of the generated equivalent scalar iterations into the vectorized loop with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mathematical Operation” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 15 of “determining the available scalar resources for scalar interpolation” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine the available scalar resources for scalar interpolation with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 16 of “determining a number of scalar iterations to interpolate into the vectorized loop based on one or more of: the obtained runtime data and the available scalar resources, wherein the one or more scalar iterations interpolated into the vectorized loop is based on the determined number of scalar iterations” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine a number of scalar iterations to interpolate into the vectorized loop based on one or more of: the obtained runtime data and the available scalar resources, wherein the one or more scalar iterations interpolated into the vectorized loop is based on the determined number of scalar iterations with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 17 of “scheduling, according to an order of performance based on execution time, vector instructions and scalar instructions in the scalar interpolated vectorized loop to generate a scheduled scalar interpolated vectorized loop” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “scheduling” in the context of this claim encompasses the user may schedule, according to an order of performance based on execution time, vector instructions and scalar instructions in the scalar interpolated vectorized loop to generate a scheduled scalar interpolated vectorized loop with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 18 of “unrolling one or more iterations of the vectorized loop to generate an unrolled and scalar interpolated vectorized loop” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “unrolling (by changing a code)” in the context of this claim encompasses the user may unroll one or more iterations of the vectorized loop to generate an unrolled and scalar interpolated vectorized loop with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 19 of “determining a number of iterations of the vectorized loop to unroll based on one or more of: the obtained runtime data, the available scalar resources and available vector resources, wherein the unrolled one or more iterations of the vectorized loop is based on the determined number of iterations of the vectorized loop to unroll” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine a number of iterations of the vectorized loop to unroll based on one or more of: the obtained runtime data, the available scalar resources and available vector resources, wherein the unrolled one or more iterations of the vectorized loop is based on the determined number of iterations of the vectorized loop to unroll with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 20 of “scheduling, according to an order of performance based on execution time, vector instructions and scalar instructions in the unrolled and scalar interpolated vectorized loop to generate a scheduled unrolled and scalar interpolated vectorized loop” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “scheduling” in the context of this claim encompasses the user may schedule, according to an order of performance based on execution time, vector instructions and scalar instructions in the unrolled and scalar interpolated vectorized loop to generate a scheduled unrolled and scalar interpolated vectorized loop with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 21 of “determining, based on the obtained runtime data, that scalar interpolation is beneficial to the vectorized loop in terms of resource utilization comprises: determining, via a first machine- learned model, that scalar interpolation is beneficial to the vectorized loop in terms of resource utilization” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine, based on the obtained runtime data, that scalar interpolation is beneficial to the vectorized loop in terms of resource utilization comprises: determining, via a first machine- learned model, that scalar interpolation is beneficial to the vectorized loop in terms of resource utilization with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 22 of “determining the number of scalar iterations to interpolate into the vectorized loop comprises: determining, via a second machine-learned model, the number of scalar iterations” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine the number of scalar iterations with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 23 of “determining, via a third machine-learned model, the number of iterations of the vectorized loop to unroll, wherein the third machine-learned model is different from or same as the second machine-learned model” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine the number of iterations of the vectorized loop to unroll, wherein the third machine-learned model is different from or same as the second machine-learned model with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 24 of “scheduling, via a fourth machine-learned model, the vector instructions and scalar instructions, wherein the fourth machine-learned model is different from or same as the third machine-learned model” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “scheduling” in the context of this claim encompasses the user may schedule, via a fourth machine-learned model, the vector instructions and scalar instructions, wherein the fourth machine-learned model is different from or same as the third machine-learned model with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 26 recites additional elements such as “for k iterations of the vectorized loop, executing: the vectorized loop; and each of the multiple scalar interpolated vectorized loops, wherein the vectorized loop terminates at nth iteration and n>k”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to apply it under MPEP § 2106.05(f): Mere Instructions to Apply an Exception, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 27 of “measuring execution time, based on the k iterations, for each of: the vectorized loop, and multiple scalar interpolated vectorized loops” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “measuring” in the context of this claim encompasses the user may measure execution time, based on the k iterations, for each of: the vectorized loop, and multiple scalar interpolated vectorized loops with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 28 of “selecting one version of the vectorized loop is based on the measured execution time” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “selecting” in the context of this claim encompasses the user may select one version of the vectorized loop is based on the measured execution time with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 29 recites additional elements such as “obtaining runtime data of the vectorized loop”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data gathering under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 29 of “determining that scalar interpolation is legal for the vectorized loop based on the obtained runtime data” as drafted, is a mental process that, under its broadest reasonable interpretation, covers a mental process but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine that scalar interpolation is legal for the vectorized loop based on the obtained runtime data with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
Dependent claims 2-6, 8-24 and 26-29 are also similar rejected under same rationale as cited above wherein these claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. These claims are merely further elaborate the mental process itself or providing additional definition of process which does not impose any meaningful limits on practicing the abstract idea. Claims 2-6, 8-24 and 26-29 are also rejected for incorporating the deficiency of their independent claims 1, 7 and 25 respectively.
Reasons for Allowance
6. The following is an examiner’s statement of reasons for allowance: the prior-art, Mishra (US PGPub 20230073063), in view of Sato (WO 2015125311), in view of Redford (US PGPub 20240119708), and further in view of Ido (US PGPub 20180181404) failed to disclose of a method comprising: generating multiple vectorized loops of a scalar code; interpolating one or more scalar iterations of the scalar loop into each of the multiple vectorized loops to generate multiple scalar interpolated vectorized loops; and selecting one of the multiple scalar interpolated vectorized loops based on a cost model, as recited by the independent claim 1.
Regarding Claim 1, the closest prior-art found, Mishra, Sato, Redford and Ido discloses of a method comprising: generating multiple vectorized loops of a scalar code; and selecting one of the multiple scalar interpolated vectorized loops based on a cost model.
The prior-art, Mishra, Sato, Redford and Ido failed to disclose of a method comprising: obtaining a vectorized loop from a program; and interpolating one or more scalar iterations of the vectorized loop into the vectorized loop to generate a scalar interpolated vectorized loop, as recited by the independent claim 7.
Regarding Claim 7, the closest prior-art found, Mishra, Sato, Redford and Ido discloses of a method comprising: obtaining a vectorized loop from a program in terms of code; and interpolating vectors or scalar values.
. The prior-art, Mishra, Sato, Redford and Ido failed to disclose of a method comprising: generating multiple versions of a vectorized loop; interpolating one or more scalar iterations of the vectorized loop into each of the multiple versions of the vectorized loop to generate multiple scalar interpolated vectorized loops; and selecting one version of the vectorized loop from: the vectorized loop and the multiple scalar interpolated vectorized loops, as recited by the independent claim 25.
Regarding Claim 25, the closest prior-art found, Mishra, Sato, Redford and Ido discloses of a method comprising: generating multiple versions of a vectorized loop; interpolating vectors or scalar values; and selecting one version of the vectorized loop from: the vectorized loop and the multiple scalar interpolated vectorized loops.
Individually, Mishra teaches that once the optimization unit 108 has detected the vectorizable loops, it can calculate a cost for a vectorized loop and the loop in its original scalar form. The optimization unit 108 can then compare the cost of vectorization to the cost of keeping the loops in their original scalar form. The vectorized loop cost is the cost of one iteration of the vectorized loop. The scalar loop cost is the cost of one iteration of the scalar loop. For example, the optimization unit 108 can compare the number of clocks cycles needed to execute one iteration of the vectorized loop and the number of clocks cycles needed to execute one iteration of the scalar loop. The optimization unit 108 can compare the difference in clock cycles to a threshold difference and determine whether vectorization is optimal. If vectorization is not optimal, the optimization unit 108 leaves the loop in a scalar form. If vectorization is optimal, the optimization unit 108 rewrites the loop code to vectorize the code.
Sato teaches that an interpolation step (S3) in which the computed scalars are used to interpolate scalars for the unmeasured sections using two different interpolation methods; an extraction step (S4) in which sections for which the absolute value of the difference between the two scalars interpolated therefor using the aforementioned two different interpolation methods is greater than or equal to a prescribed threshold are extracted; and an iteration step (S5) in which the aforementioned steps, from the measurement step (S1) to the extraction step (S4), are repeated using the extracted sections as the abovementioned specified sections.
Redford teaches that alternatively, the mapping may be from a grid cell of the first data representation to a region of the second representation spanning multiple grid cells thereof, and the second vector or scalar may be determined via interpolation of vectors or scalars of the multiple grid cells.
Ido teaches that the vector cost and the scalar cost of the selected loop can be aggregated based on vector costs and scalar costs for any number of statements within the selected loop. If the vector cost of a loop does not exceed the scalar cost, the process flow continues at block 334 where the compiler can execute the loop using vector techniques before ending. If the vector cost of a loop does exceed the scalar cost, the process flow continues at block 336 where the compiler can execute the loop using scalar techniques such as executing each statement with a single value before ending.
However, the prior-art, Mishra, Sato, Redford and Ido failed to disclose the following subject matter such as “interpolating one or more scalar iterations of the scalar loop into each of the multiple vectorized loops to generate multiple scalar interpolated vectorized loops” for claim 1, “interpolating one or more scalar iterations of the vectorized loop into the vectorized loop to generate a scalar interpolated vectorized loop” for claim 7 and “interpolating one or more scalar iterations of the vectorized loop into each of the multiple versions of the vectorized loop to generate multiple scalar interpolated vectorized loops” for claim 25.
Claim 30 is a system claim, similar to the claim 1 and Claim 31 is another system claim, similar to the claim 1.
Therefore, the prior-art, Mishra, Sato, Redford and Ido failed to teach a method of claim 1 and another method of claim 7 and another method of claim 25 and a system of claim 30 and another system of claim 31 as well as their dependent claims. Thus, claims 1-31 contain allowable subject matter.
7. Any comments considered necessary by applicant must be submitted no later than the payment of the issue fee and, to avoid processing delays, should preferably accompany the issue fee. Such submissions should be clearly labeled “Comments on Statement of Reasons for Allowance.”
Response to Arguments
Applicant's arguments with respect to the claims 1, 7, 25, 30 and 31 and their dependent claims have been fully considered but they are not persuasive.
Regarding the argument about 101 Abstract Idea rejection of the remark on pages 7-9 that the claims are directed to balancing computing resources such that the amendment to the claims 1 further recites “a method of balancing computing resources during compilation”, the amendment to Claim 7 recites “a method of balancing computing resource based on feedback or profiling information obtained during program execution” and Claim 25 recites “a method of balancing computing resources executed at runtime on a target processor”, the examiner would like to point out that the amendment as in the preamble does not carry patentable weight as it only provides the intended purpose for the claim limitations. The examiner still determines that each step of the claim limitation can be performed as an abstract idea (mental processes or mathematical operations) as provided above.
The examiner also would like to point out that a claim that requires a general-purpose computer such as compiler may still recite a mental process and the concept performed 1) on a generic computer, or 2) in a computer environment, or 3) is merely using a computer as a tool to perform the concept can be still considered as a mental process.
C. A Claim That Requires a Computer May Still Recite a Mental Process
Claims can recite a mental process even if they are claimed as being performed on a computer. The Supreme Court recognized this in Benson, determining that a mathematical algorithm for converting binary coded decimal to pure binary within a computer’s shift register was an abstract idea. The Court concluded that the algorithm could be performed purely mentally even though the claimed procedures “can be carried out in existing computers long in use, no new machinery being necessary.” 409 U.S at 67, 175 USPQ at 675. See also Mortgage Grader, 811 F.3d at 1324, 117 USPQ2d at 1699 (concluding that concept of “anonymous loan shopping” recited in a computer system claim is an abstract idea because it could be “performed by humans without a computer”).
In evaluating whether a claim that requires a computer recites a mental process, examiners should carefully consider the broadest reasonable interpretation of the claim in light of the specification. For instance, examiners should review the specification to determine if the claimed invention is described as a concept that is performed in the human mind and applicant is merely claiming that concept performed 1) on a generic computer, or 2) in a computer environment, or 3) is merely using a computer as a tool to perform the concept. In these situations, the claim is considered to recite a mental process.
1. Performing a mental process on a generic computer. An example of a case identifying a mental process performed on a generic computer as an abstract idea is Voter Verified, Inc. v. Election Systems & Software, LLC, 887 F.3d 1376, 1385, 126 USPQ2d 1498, 1504 (Fed. Cir. 2018). In this case, the Federal Circuit relied upon the specification in explaining that the claimed steps of voting, verifying the vote, and submitting the vote for tabulation are “human cognitive actions” that humans have performed for hundreds of years. The claims therefore recited an abstract idea, despite the fact that the claimed voting steps were performed on a computer. 887 F.3d at 1385, 126 USPQ2d at 1504. Another example is Versata, in which the patentee claimed a system and method for determining a price of a product offered to a purchasing organization that was implemented using general purpose computer hardware. 793 F.3d at 1312-13, 1331, 115 USPQ2d at 1685, 1699. The Federal Circuit acknowledged that the claims were performed on a generic computer, but still described the claims as “directed to the abstract idea of determining a price, using organizational and product group hierarchies, in the same way that the claims in Alice were directed to the abstract idea of intermediated settlement, and the claims in Bilski were directed to the abstract idea of risk hedging.” 793 F.3d at 1333; 115 USPQ2d at 1700-01.
2. Performing a mental process in a computer environment. An example of a case identifying a mental process performed in a computer environment as an abstract idea is Symantec Corp., 838 F.3d at 1316-18, 120 USPQ2d at 1360. In this case, the Federal Circuit relied upon the specification when explaining that the claimed electronic post office, which recited limitations describing how the system would receive, screen and distribute email on a computer network, was analogous to how a person decides whether to read or dispose of a particular piece of mail and that “with the exception of generic computer-implemented steps, there is nothing in the claims themselves that foreclose them from being performed by a human, mentally or with pen and paper”. 838 F.3d at 1318, 120 USPQ2d at 1360. Another example is FairWarning IP, LLC v. Iatric Sys., Inc., 839 F.3d 1089, 120 USPQ2d 1293 (Fed. Cir. 2016). The patentee in FairWarning claimed a system and method of detecting fraud and/or misuse in a computer environment, in which information regarding accesses of a patient’s personal health information was analyzed according to one of several rules (i.e., related to accesses in excess of a specific volume, accesses during a pre-determined time interval, or accesses by a specific user) to determine if the activity indicates improper access. 839 F.3d. at 1092, 120 USPQ2d at 1294. The court determined that these claims were directed to a mental process of detecting misuse, and that the claimed rules here were “the same questions (though perhaps phrased with different words) that humans in analogous situations detecting fraud have asked for decades, if not centuries.” 839 F.3d. at 1094-95, 120 USPQ2d at 1296.
3. Using a computer as a tool to perform a mental process. An example of a case in which a computer was used as a tool to perform a mental process is Mortgage Grader, 811 F.3d. at 1324, 117 USPQ2d at 1699. The patentee in Mortgage Grader claimed a computer-implemented system for enabling borrowers to anonymously shop for loan packages offered by a plurality of lenders, comprising a database that stores loan package data from the lenders, and a computer system providing an interface and a grading module. The interface prompts a borrower to enter personal information, which the grading module uses to calculate the borrower’s credit grading, and allows the borrower to identify and compare loan packages in the database using the credit grading. 811 F.3d. at 1318, 117 USPQ2d at 1695. The Federal Circuit determined that these claims were directed to the concept of “anonymous loan shopping”, which was a concept that could be “performed by humans without a computer.” 811 F.3d. at 1324, 117 USPQ2d at 1699. Another example is Berkheimer v. HP, Inc., 881 F.3d 1360, 125 USPQ2d 1649 (Fed. Cir. 2018), in which the patentee claimed methods for parsing and evaluating data using a computer processing system. The Federal Circuit determined that these claims were directed to mental processes of parsing and comparing data, because the steps were recited at a high level of generality and merely used computers as a tool to perform the processes. 881 F.3d at 1366, 125 USPQ2d at 1652-53.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JAE UK JEON whose telephone number is (571)270-3649. The examiner can normally be reached 9am-6pm. 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, Chat Do can be reached on 571-272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/JAE U JEON/Primary Examiner, Art Unit 2193