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.
Claims20
One or more processors, comprising:
- circuitry to:
- execute a program comprising a first portion executable by a central processing unit (CPU) and a second portion executable by accelerator hardware;
- identify, by monitoring the execution, one or more load operations in the second portion of the program that attempt to access a shared data value that is stale with respect to corresponding data stored in memory associated with the CPU;
- and
- insert one or more instructions into the second portion of the program to cause the shared data value to be copied, before a load operation is performed, from the memory associated with the CPU to memory associated with the accelerator hardware.
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:
- execute a program comprising a first portion executable by a central processing unit (CPU) and a second portion executable by accelerator hardware;
- identify, by monitoring the execution, one or more load operations in the second portion of the program that attempt to access a shared data value that is stale with respect to corresponding data stored in memory associated with the CPU;
- and
- insert one or more instructions into the second portion of the program to cause the shared data value to be copied, before a load operation is performed, from the memory associated with the CPU to memory associated with the accelerator hardware.
A method, comprising:
- executing a program comprising a first portion executable by a central processing unit (CPU) and a second portion executable by accelerator hardware;
- identifying, by monitoring the execution, one or more load operations in the second portion of the program that attempt to access a shared data value that is stale with respect to corresponding data stored in memory associated with the CPU;
- and
- inserting one or more instructions into the second portion of the program to cause the shared data value to be copied, before a load operation is performed, from the memory associated with the CPU to memory associated with the accelerator hardware.
Dependencies are inferred from the claim text.