US 12,001,953 B2
Neural network data computation using mixed-precision
James Hippisley Robinson, New York, NY (US); and Sanjay Patel, San Ramon, CA (US)
Assigned to MIPS Tech, LLC, San Jose, CA (US)
Filed by MIPS Tech, LLC, San Jose, CA (US)
Filed on Feb. 24, 2023, as Appl. No. 18/114,044.
Application 18/114,044 is a continuation of application No. 16/985,307, filed on Aug. 5, 2020, granted, now 11,615,307.
Application 16/985,307 is a continuation in part of application No. 16/778,258, filed on Jan. 31, 2020.
Application 16/778,258 is a continuation in part of application No. 16/704,263, filed on Dec. 5, 2019, granted, now 11,893,470.
Claims priority of provisional application 62/883,155, filed on Aug. 6, 2019.
Claims priority of provisional application 62/867,966, filed on Jun. 28, 2019.
Claims priority of provisional application 62/800,431, filed on Feb. 2, 2019.
Claims priority of provisional application 62/791,788, filed on Jan. 12, 2019.
Claims priority of provisional application 62/776,032, filed on Dec. 6, 2018.
Prior Publication US 2023/0237325 A1, Jul. 27, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06N 3/08 (2023.01); G06F 7/544 (2006.01); G06N 3/063 (2023.01)
CPC G06N 3/08 (2013.01) [G06F 7/5443 (2013.01); G06N 3/063 (2013.01); G06F 2207/3824 (2013.01); G06F 2207/4824 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A processor-implemented method for data manipulation comprising:
obtaining, from input data, a first left group comprising eight bytes of data from a first row of a first matrix and a first right group of eight bytes of data from a second row of the first matrix for computation using a processor;
obtaining, from the input data, a second left group comprising eight bytes of data from a first column of a second matrix and a second right group of eight bytes of data from a second column of the second matrix;
performing a sum of products between the first left and right groups and the second left and right groups, wherein the sum of products is performed on bytes of 8-bit integer data, and wherein:
a first result is based on a summation of eight values that are products of the first group's left eight bytes and the second group's left eight bytes; and
a second result is based on the summation of eight values that are products of the first group's left eight bytes and the second group's right eight bytes;
outputting the first result and the second result as four-byte results for neural network data processing, based on the performing;
adding the first result to a value in a first accumulation register and adding the second result to a value in a second accumulation register;
determining whether the input data comprises greater than 32 bytes of input data; and
in response to a determination that the input data comprises greater than 32 bytes of input data then iterating the obtaining, performing, output, and adding steps.