Streaming transfers and ordering model
AssigneeGoogle Inc.
InventorsRahul Nagarajan, Arpith Chacko Jacob, Suvinay Subramanian, Hema Hariharan
Life of this patent
Estimating the term…
Abstract
Generally disclosed herein is a hardware/software interface for asynchronous data movement between an off-core memory and a core-local memory, referred to as “stream transfers”, and a stream ordering model. The stream transfers allow software to more efficiently express common data-movement patterns, specifically ones seen in sparse workloads. Direct stream instructions that belong to a stream are processed in-order. For indirect stream instructions, offset elements in an offset list are processed in order. A sync flag is updated to indicate monotonic incremental progress for the stream.
Claims20
A method for transferring data between an off-core memory and a core-local memory, the method comprising:
- processing, with one or more processors, reads from and writes to the core-local memory in response to the core-local memory respectively being a source of the data and a destination for the data;
- accessing, with the one or more processors, the off-core memory based on indirect scatter/gather memory accesses for reads from and writes to the off-core memory in response to the off-core memory respectively being the source of the data and the destination for the data;
- and
- tracking, with the one or more processors, monotonic incremental progress for the transferring data after each processing of a read from or write to the core-local memory without tracking progress of at least one of the reads from or the writes to the off-core memory.
A system comprising:
- one or more processors;
- and
- one or more non-transitory storage devices coupled to the one or more processors and storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations for transferring data between an off-core memory and a core-local memory, the operations comprising:
- processing reads from and writes to the core-local memory in response to the core-local memory respectively being a source of the data and a destination for the data;
- accessing the off-core memory based on indirect scatter/gather memory accesses for reads from and writes to the off-core memory in response to the off-core memory respectively being the source of the data and the destination for the data;
- and
- tracking monotonic incremental progress for the transferring data after each processing of a read from or write to the core-local memory without tracking progress of at least one of the reads from or the writes to the off-core memory.
A non-transitory computer readable storage medium for storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations for transferring data between an off-core memory and a core-local memory, the operations comprising:
- processing reads from and writes to the core-local memory in response to the core-local memory respectively being a source of the data and a destination for the data;
- accessing the off-core memory based on indirect scatter/gather memory accesses for reads from and writes to the off-core memory in response to the off-core memory respectively being the source of the data and the destination for the data;
- and
- tracking monotonic incremental progress for the transferring data after each processing of a read from or write to the core-local memory without tracking progress of at least one of the reads from or the writes to the off-core memory.
Dependencies are inferred from the claim text.