US 12,124,469 B1
Systems and methods for data layout selection
Jocelyn Knight, Cambridge (GB); Benjamin Hinkle, Brookline, MA (US); Gautam Pendse, Hopkinton, MA (US); Richard Lang, Royston (GB); Jon Cherrie, Histon (GB); Christine Tobler, Ismaning (DE); and Christopher Turnes, Natick, MA (US)
Assigned to The Math Works, Inc., Natick, MA (US)
Filed by The MathWorks, Inc., Natick, MA (US)
Filed on Jul. 6, 2020, as Appl. No. 16/946,780.
Claims priority of provisional application 63/038,090, filed on Jun. 11, 2020.
Int. Cl. G06F 16/25 (2019.01)
CPC G06F 16/252 (2019.01) 22 Claims
OG exemplary drawing
 
1. A system comprising at least one processor; and
at least one memory containing instructions that, when executed by the at least one processor, cause the system to perform system operations comprising:
obtaining input data stored in a first layout;
receiving at least two operations;
determining a second layout for performing the at least two operations, the second layout:
independent of the first layout; and
determined based on at least one of the at least two operations and at least one of:
a characteristic of the input data;
a characteristic of the system; or
historical performance data;
rearranging or permuting the input data into the second layout;
determining a mapping between the second layout and the first layout;
performing the at least two operations using the input data in the second layout;
during or after performance of the at least two operations, in response to a request by a third operation to access the input data, providing access to the input data in the first layout using the mapping; and
wherein the at least one of the at least two operations is a convolution operation, the input data is a multi-dimensional array having a channel dimension, a batch dimension, and two or more spatial dimensions; and
determining the second layout comprises selecting as a first dimension of the multi-dimensional array one of:
the channel dimension;
the batch dimension; or
one of the two or more spatial dimensions.