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 |
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.
|