Automatic stale data detection for accelerator-enabled programs
AssigneeNVIDIA Corporation
InventorsMichael Joseph Wolfe, Simone Atzeni
Life of this patent
Estimating the term…
Abstract
Apparatuses, systems, and techniques to automatically detect stale data in accelerator-enabled programs. In at least one embodiment, a runtime monitors a software program that has been segmented between accelerated and non-accelerated portions and, during debugging, identifies when various memory locations associated with the accelerated and non-accelerated code segments are read or written to, and if their values are out-of-sync.
Claims26
A processor comprising:
- one or more circuits to;
- cause one or more central processing unit (CPU) cores to monitor performance of graphics processing unit (GPU) code to identify one or more operations that cause shared information to be accessed by one or more GPU cores at a first memory location of a memory storage that was subsequently modified by at least one of the one or more CPU cores at a second memory location of the memory storage, wherein a shadow memory is to track the first memory location and the second memory location of the memory storage, and the shadow memory is used to determine that the shared information to be accessed by the one or more GPU cores was subsequently modified by the one or more CPU cores;
- and
- output an indication.
A non-transitory machine-readable medium having stored thereon a set of instructions, which if performed by one or more processors, cause the one or more processors to at least:
- perform GPU code on one or more CPU cores in order to identify shared information to be stored by one more GPU cores that was subsequently modified by at least one of the one or more CPU cores or the one or more GPU cores;
- monitor a shadow memory using a debugger, the shadow memory tracking locations in a memory storage in which the shared information is to be stored;
- determine if one or more locations in the shadow memory contain data of the shared information was modified by at least one of the one or more CPU cores when performing CPU code;
- and
- as a result of any location of the one or more locations in the shadow memory containing a data value that is out-of-date, generate an indication.
A method, comprising:
- performing GPU code on one or more CPU cores;
- causing a shadow memory to track one or more locations in a memory storage in which shared information is to be stored;
- determining, using the shadow memory, that shared information to be accessed by one or more operations of one or more GPU cores that was also modified by at least one of the one or more CPU cores;
- and
- output an indication of the determination.
Dependencies are inferred from the claim text.