US 12,333,417 B2
Rotating data for neural network computations
Jonathan Ross, Mountain View, CA (US); and Gregory Michael Thorson, Waunakee, WI (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Sep. 11, 2023, as Appl. No. 18/464,935.
Application 18/464,935 is a continuation of application No. 17/520,919, filed on Nov. 8, 2021, granted, now 11,755,895.
Application 17/520,919 is a continuation of application No. 16/857,808, filed on Apr. 24, 2020, granted, now 11,170,291, issued on Nov. 9, 2021.
Application 16/857,808 is a continuation of application No. 15/792,872, filed on Oct. 25, 2017, granted, now 11,210,580, issued on Dec. 28, 2021.
Application 15/792,872 is a continuation of application No. 14/845,022, filed on Sep. 3, 2015, granted, now 9,805,303, issued on Oct. 31, 2017.
Claims priority of provisional application 62/164,998, filed on May 21, 2015.
Prior Publication US 2024/0185047 A1, Jun. 6, 2024
Int. Cl. G06N 5/04 (2023.01); G06F 15/80 (2006.01); G06N 3/045 (2023.01); G06N 3/063 (2023.01); G06N 3/08 (2023.01)
CPC G06N 3/063 (2013.01) [G06F 15/8046 (2013.01); G06N 3/045 (2023.01); G06N 3/08 (2013.01); G06N 5/04 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for computing neural network inferences using a special-purpose processor comprising a hardware integrated circuit configured to implement the neural network, the method comprising:
receiving, at the special-purpose processor:
i) a kernel weight matrix comprising weights for a layer of the neural network and
ii) activations provided as inputs to the layer;
loading the kernel weight matrix into a matrix unit of the special-purpose processor by shifting the weights for the layer along a first dimension of the matrix unit;
loading the activations into the matrix unit by shifting activations representing inputs to the layer along a second dimension of the matrix unit;
computing, at the matrix unit, accumulated values from convolutions executed on the weights and activations shifted along dimensions of the matrix unit; and
generating an output for the layer based on the accumulated values.