US 12,105,630 B2
Compile time logic for inserting a buffer between a producer operation unit and a consumer operation unit in a dataflow graph
Kevin James Brown, Belmont, CA (US); David Alan Koeplinger, Menlo Park, CA (US); Weiwei Chen, Mountain View, CA (US); and Xiaoming Gu, Campbell, CA (US)
Assigned to SambaNova Systems, Inc., Palo Alto, CA (US)
Filed by SambaNova Systems, Inc., Palo Alto, CA (US)
Filed on Jan. 24, 2022, as Appl. No. 17/582,421.
Application 17/582,421 is a continuation of application No. 17/023,015, filed on Sep. 16, 2020, granted, now 11,237,971.
Prior Publication US 2022/0147328 A1, May 12, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 12/0842 (2016.01); G06F 8/41 (2018.01); G06F 15/78 (2006.01); G06F 5/10 (2006.01); G06F 9/448 (2018.01); G06F 11/30 (2006.01)
CPC G06F 12/0842 (2013.01) [G06F 8/447 (2013.01); G06F 8/457 (2013.01); G06F 15/7892 (2013.01); G06F 5/10 (2013.01); G06F 11/3072 (2013.01); G06F 2205/123 (2013.01); G06F 2212/1016 (2013.01); G06F 2212/45 (2013.01)] 22 Claims
OG exemplary drawing
 
1. A data processing system, comprising:
memory storing a dataflow graph for an application, the dataflow graph having operation units, including producer operation units to generate tensors and consumer operation units to process the tensors, for execution of the application;
the memory storing a write access pattern for elements of the tensor by the producer operation unit and a read access pattern for the elements of the tensor by the consumer operation unit; and
a compile time logic having access to the memory and configured to process the dataflow graph to compare the write access pattern to the read access pattern,
identify a group of consumer operation units having a same read access pattern,
classify a data access pattern between a producer operation unit and the group of consumer operation units as streaming compatible if the read access pattern is same as the write access pattern,
classify the data access pattern between the producer operation unit and the group of consumer operation units as broadcast compatible if the read access pattern is different from the write access pattern,
and insert only a single buffer between the producer operation unit and the group of consumer operation units if the data access pattern is broadcast compatible, thereby resolving the difference between the write access pattern and the read access pattern using the single buffer.