US 12,153,900 B2
Sparse data handling and buffer sharing to reduce memory allocation and reclamation
Gary Shon Katzenberger, Fall City, WA (US); Petro Luferenko, Redmond, WA (US); Costin I. Eseanu, Redmond, WA (US); Eric Anthony Erhardt, Bismark, ND (US); and Ivan Matantsev, Bothell, WA (US)
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Oct. 31, 2019, as Appl. No. 16/670,779.
Claims priority of provisional application 62/843,245, filed on May 3, 2019.
Prior Publication US 2020/0348990 A1, Nov. 5, 2020
Int. Cl. G06N 20/00 (2019.01); G06F 8/30 (2018.01); G06F 9/30 (2018.01); G06F 9/50 (2006.01); G06F 9/54 (2006.01); G06F 16/2453 (2019.01); G06F 16/2455 (2019.01)
CPC G06F 8/31 (2013.01) [G06F 9/30036 (2013.01); G06F 9/30079 (2013.01); G06F 9/5016 (2013.01); G06F 9/5022 (2013.01); G06F 9/544 (2013.01); G06F 16/24535 (2019.01); G06F 16/24568 (2019.01); G06N 20/00 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
processing source data in a machine learning (ML) pipeline, including:
retrieving a first value, from fixed or variable length data in a dataview of the ML pipeline, wherein the dataview provides a non-materialized view of the data and retrieving the first value comprises calling a first delegate function referenced in the dataview to perform a first computation to determine the first value;
storing the first value in a first set of arrays of a first buffer, the first set of arrays comprising a first array and a second array;
reassigning the first set of arrays from the first buffer to a second buffer;
retrieving a second value from the fixed or variable length data, by calling the first delegate function or a second delegate function referenced in the dataview to perform a second computation to determine the second value; and
storing the second value in the first buffer.