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 05/07/2026. Claims 1-31 are pending in this application. Claims 1, 7, 25, 30 and 31 are independent claims.
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 scalar and vector resources of a processor during compilation, the method comprising: generating multiple vectorized loops from a scalar loop of 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 to offload execution to the scalar resources of the processor to reduce processor stalls; and selecting one of the multiple scalar interpolated vectorized loops based on a cost model”.
Claim 7 recites “a method of balancing scalar and vector resources of a processor 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 to offload execution to the scalar resources of the processor to reduce processor stalls”.
Claim 25 recites “A method, during code compilation, of balancing computing runtime scalar and vector resources of 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 to offload execution to the scalar resources of the target processor to reduce processor stalls; 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 from a scalar loop of 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 from a scalar loop of 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 to offload execution to the scalar resources of the processor to reduce processor stalls” 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 to offload execution to the scalar resources of the processor to reduce processor stall 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 to offload execution to the scalar resources of the processor to reduce processor stalls” 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 to offload execution to the scalar resources of the processor to reduce processor stalls 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 to offload execution to the scalar resources of the target processor to reduce processor stalls” 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 to offload execution to the scalar resources of the target processor to reduce processor stalls 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.
The limitation of the claim 5 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 mathematical operation but for the recitation of generic computer components. For example, but for the “interleaving” 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 “Mathematical Operation” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 5 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” 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 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 5 of “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) of 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 5 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, 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 6 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.
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, via a first machine-learned model, that scalar interpolation reduces a vector operations queue to decrease execution time of 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, via a first machine-learned model, that scalar interpolation reduces a vector operations queue to decrease execution time of 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.
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
4. 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 of balancing scalar and vector resources of a processor during compilation, the method comprising: generating multiple vectorized loops from a scalar loop of 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 to offload execution to the scalar resources of the processor to reduce processor stalls; 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 of balancing scalar and vector resources of a processor 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 to offload execution to the scalar resources of the processor to reduce processor stalls.
. 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, during code compilation, of balancing computing runtime scalar and vector resources of 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 to offload execution to the scalar resources of the target processor to reduce processor stalls; 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 to offload execution to the scalar resources of the processor to reduce processor stalls” for claim 1, “interpolating one or more scalar iterations of the vectorized loop into the vectorized loop to generate a scalar interpolated vectorized loop to offload execution to the scalar resources of the processor to reduce processor stalls” 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 to offload execution to the scalar resources of the target processor to reduce processor stalls” 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.
5. 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
6. 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 w.r.t. 101 Abstract Idea rejection on claims 1, 7, 25, 30 and 31 of the remark on pages 8-9 that the claim limitations subject to abstract idea such as mathematical operations or mental processes do not recite abstract idea because it requires a hardware dependent compiler optimization technique to perform and physically interleaving into a sequence of SIMD instructions, the examiner also would like to point out that a claim that requires a general-purpose computer (a hardware 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 or a mathematical operation.
Regarding another argument w.r.t. 101 Abstract Idea rejection on claims 1, 7, 25, 30 and 31 of the remark on pages 8-9 that the amendment integrates a judicial exception into a practical application, the examiner would like to point out that in order to determine if additional element is integrating the abstract idea into a practical application, 1) The specification should describe the claimed improvement to achieve the desired goal and 2) The claimed improvement should be reflected at least in the additional elements by specifying how the claimed improvement performs the additional element to improve functioning of a computer or existing technical field.
2106.05(a) Improvements to the Functioning of a Computer or To Any Other Technology or Technical Field [R-07.2022]
If it is asserted that the invention improves upon conventional functioning of a computer, or upon conventional technology or technological processes, a technical explanation as to how to implement the invention should be present in the specification. That is, the disclosure must provide sufficient details such that one of ordinary skill in the art would recognize the claimed invention as providing an improvement. The specification need not explicitly set forth the improvement, but it must describe the invention such that the improvement would be apparent to one of ordinary skill in the art.
I. RELEVANT CONSIDERATIONS FOR EVALUATING WHETHER ADDITIONAL ELEMENTS INTEGRATE A JUDICIAL EXCEPTION INTO A PRACTICAL APPLICATION
The Supreme Court and Federal Circuit have identified a number of considerations as relevant to the evaluation of whether the claimed additional elements demonstrate that a claim is directed to patent-eligible subject matter. The list of considerations here is not intended to be exclusive or limiting. Additional elements can often be analyzed based on more than one type of consideration and the type of consideration is of no import to the eligibility analysis. Additional discussion of these considerations, and how they were applied in particular judicial decisions, is provided in MPEP § 2106.05(a) through (c) and MPEP § 2106.05(e) through (h).
Limitations the courts have found indicative that an additional element (or combination of elements) may have integrated the exception into a practical application include:
• An improvement in the functioning of a computer, or an improvement to other technology or technical field, as discussed in MPEP §§ 2106.04(d)(1) and 2106.05(a);
The examiner would like to point out two things, 1) the claimed improvement is part of the abstract idea such as mathematical operation such as interpolating scalar iterations of the scalar loop and 2) it’s recited as an intended purpose instead of a separate and distinct claim limitation.
*Please request for an interview if the applicant wishes to discuss further amendment to help overcome the 101 abstract idea rejection.
Conclusion
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