DETAILED ACTION
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 .
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1-2, 12, 14-15 and 21 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Weber et al. 20230120516 herein Weber.
Per claim 1, Weber discloses: determining first parameter information of a memory transfer operator and a first memory layout corresponding to input feature data; (¶0044; if the user wants to store, export or deploy the neural network 56, it first needs to be in the default layout to guarantee that the toolchain the user is using works on the correct memory layouts. If the data is in a device specific layout, then it needs to be converted first before the process can continue.) determining a second memory layout supported by a hardware unit executing the memory transfer operator; (¶0044; The process, executed by the wrapper 58, for conversion includes first asking if the model is in a default data layout at step 60. If not, the wrapper creates a new neural network at step 62, runs the reverse pre-evaluating step with the old neural network as the input and the new neural network as the output at step 64, deletes the old neural network and stores the new neural network as the current neural network at step 66. The wrapper 58 then returns the model parameters at step 68. If the model is in a default layout at step 60, the wrapper 56 returns or exports the model parameters at step 68. After step 68, the User receives an exported, stored, or deployed neural network at step 70 as requested) in response to that the first memory layout is different from the second memory layout, (fig. 7, ¶0043; ) determining whether the first memory layout meets a rearrangement condition; (¶0042; When the user or the application triggers the execution of the neural network 28, this wrapper 26 checks on which device the neural network 28 shall be executed. If memory layout transformations are required, the wrapper 26 generates a new instance of the neural network 28 with the necessary parameters 30 and shapes, and then executes the pre-evaluation step, with the old neural network parameters as input and the new neural network parameters as output 44. Then, the wrapper 26 frees the old neural network and replaces it with the new neural network; the examiner notes that the rearrangement condition is interpreted as a conversion trigger for a new layout for a target device or incorrect layout) and in response to that the first memory layout meets the rearrangement condition, generating an executable instruction for the neural network processor based on the first parameter information, the first memory layout, and the second memory layout (¶0042; When the user or the application triggers the execution of the neural network 28, this wrapper 26 checks on which device the neural network 28 shall be executed. If memory layout transformations are required, the wrapper 26 generates a new instance of the neural network 28 with the necessary parameters 30 and shapes, and then executes the pre-evaluation step, with the old neural network parameters as input and the new neural network parameters as output 44. Then, the wrapper 26 frees the old neural network and replaces it with the new neural network).
Per claim 2, Weber discloses: wherein the determining whether the first memory layout meets a rearrangement condition comprises: in response to that a number of elements corresponding to the first memory layout is same as a number of elements corresponding to the second memory layout, determining that the first memory layout meets a conversion condition; (¶0015; OneDNN for X86 instruction set architectures requires convolution inputs to be in a channel-blocked layout that splits the channel dimension into two parts. The channels get split into an inner and outer part, where the blocking size depends on the used vector instructions, e.g., AVX2: block_size=8, AVX512: block_size=16. This requires to reshape, permute and sometimes also to add padding to the original data. For recurrent neural network (RNN) layers, it uses a similar blocked format; the examiner notes that under the broadest reasonable interpretation of a method claim, the limitation is a contingent limitation. For example, assume a method claim requires step A if a first condition happens and step B if a second condition happens. If the claimed invention may be practiced without either the first or second condition happening, then neither step A or B is required by the broadest reasonable interpretation of the claim. If the claimed invention requires the first condition to occur, then the broadest reasonable interpretation of the claim requires step A. See MPEP 2111.04) and determining whether the first memory layout meets an arrangement condition based on the first parameter information, the first memory layout, and the second memory layout, wherein the rearrangement condition comprises the conversion condition and the arrangement condition (¶0042; When the user or the application triggers the execution of the neural network 28, this wrapper 26 checks on which device the neural network 28 shall be executed. If memory layout transformations are required, the wrapper 26 generates a new instance of the neural network 28 with the necessary parameters 30 and shapes, and then executes the pre-evaluation step, with the old neural network parameters as input and the new neural network parameters as output 44. Then, the wrapper 26 frees the old neural network and replaces it with the new neural network).
Claim 12 is the CRM claim corresponding to the method claim 1 and is rejected under the same reasons set forth in connection with the rejection of claim 1.
Per claim 21, Weber discloses: wherein the determining whether the first memory layout meets a rearrangement condition comprises: in response to that a number of elements corresponding to the first memory layout is same as a number of elements corresponding to the second memory layout, determining that the first memory layout meets a conversion condition; (¶0015; OneDNN for X86 instruction set architectures requires convolution inputs to be in a channel-blocked layout that splits the channel dimension into two parts. The channels get split into an inner and outer part, where the blocking size depends on the used vector instructions, e.g., AVX2: block_size=8, AVX512: block_size=16. This requires to reshape, permute and sometimes also to add padding to the original data. For recurrent neural network (RNN) layers, it uses a similar blocked format; the examiner notes that the claim does not set forth what the “number of elements” is and for the interest of compact prosecution, the examiner is interpreting it as checking to see if the two layouts are similar enough to convert from one to the other) and determining whether the first memory layout meets an arrangement condition based on the first parameter information, the first memory layout, and the second memory layout, wherein the rearrangement condition comprises the conversion condition and the arrangement condition (¶0042; When the user or the application triggers the execution of the neural network 28, this wrapper 26 checks on which device the neural network 28 shall be executed. If memory layout transformations are required, the wrapper 26 generates a new instance of the neural network 28 with the necessary parameters 30 and shapes, and then executes the pre-evaluation step, with the old neural network parameters as input and the new neural network parameters as output 44. Then, the wrapper 26 frees the old neural network and replaces it with the new neural network).
Claim 14 is the device claim corresponding to the method claim 1 and is rejected under the same reasons set forth in connection with the rejection of claim 1.
Per claim 15, Weber discloses: wherein the determining whether the first memory layout meets a rearrangement condition comprises: in response to that a number of elements corresponding to the first memory layout is same as a number of elements corresponding to the second memory layout, determining that the first memory layout meets a conversion condition; (¶0015; OneDNN for X86 instruction set architectures requires convolution inputs to be in a channel-blocked layout that splits the channel dimension into two parts. The channels get split into an inner and outer part, where the blocking size depends on the used vector instructions, e.g., AVX2: block_size=8, AVX512: block_size=16. This requires to reshape, permute and sometimes also to add padding to the original data. For recurrent neural network (RNN) layers, it uses a similar blocked format; the examiner notes that the claim does not set forth what the “number of elements” is and for the interest of compact prosecution, the examiner is interpreting it as checking to see if the two layouts are similar enough to convert from one to the other) and determining whether the first memory layout meets an arrangement condition based on the first parameter information, the first memory layout, and the second memory layout, wherein the rearrangement condition comprises the conversion condition and the arrangement condition (¶0042; When the user or the application triggers the execution of the neural network 28, this wrapper 26 checks on which device the neural network 28 shall be executed. If memory layout transformations are required, the wrapper 26 generates a new instance of the neural network 28 with the necessary parameters 30 and shapes, and then executes the pre-evaluation step, with the old neural network parameters as input and the new neural network parameters as output 44. Then, the wrapper 26 frees the old neural network and replaces it with the new neural network).
Allowable Subject Matter
Claims 3-7, 16-19 and 22-26 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Remark
Examiner respectfully requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line number(s) in the specification and/or drawing figure(s). This will assist Examiner in prosecuting the application.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BABOUCARR FAAL whose telephone number is (571)270-5073. The examiner can normally be reached M-F 8:30-5:30 EST.
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, Tim VO can be reached at 5712723642. 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.
BABOUCARR . FAAL
Primary Examiner
Art Unit 2138
/BABOUCARR FAAL/Primary Examiner, Art Unit 2138