IP Library › Granted Patent US 11,188,406
Granted Patent B1
US 11,188,406 · App. 17/218,506 · Granted Nov 30, 2021

Detecting execution hazards in offloaded operations

Inventors: Johnathan Alsop (Bellevue, WA); Shaizeen Aga (Santa Clara, CA)
Assignee: ADVANCED MICRO DEVICES, INC.
G06F11/0772G06F11/141G06F11/1471G06F11/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,188,406
App. No.
17/218,506
Granted
Nov 30, 2021
Kind
B1
Abstract

Detecting execution hazards in offloaded operations is disclosed. A second offload operation is compared to a first offload operation that precedes the second offload operation. It is determined whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation. If the execution hazard is detected, an error handling operation may be performed. In some examples, the offload operations are processing-in-memory operations.

Claims (41)

1. A method of detecting execution hazards in offloaded operations, the method comprising:

comparing a second offload operation to a first offload operation that precedes the second offload operation;

determining whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation; and

initiating an error handling action in response to determining that the second offload operation creates the execution hazard on the offload target device.

2. The method of claim 1 , wherein initiating an error handling action includes forcing a failure.

3. The method of claim 1 , wherein initiating an error handling action includes at least one of sending an error message, creating an error log entry, and triggering a fault.

4. The method of claim 1 , wherein comparing a second offload operation to a first offload operation that precedes the second offload operation includes comparing a second offload target device identifier associated with the second offload operation to a first offload target device identifier associated with the first offload operation; and

wherein determining whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation includes detecting the execution hazard when the first offload target device identifier and the second offload target device identifier disagree.

5. The method of claim 4 further comprising storing the first offload target device identifier in response to an indication that the first offload operation begins a sequence of offload operations.

6. The method of claim 5 further comprising storing a sequence label for the first offload operation;

wherein comparing a second offload operation to a first offload operation that precedes the second offload operation further includes:

identifying a sequence label of the second offload operation; and

identifying the first offload target device identifier based on the sequence label of the second offload operation.

7. The method of claim 4 further comprising identifying a pattern of sequential offload instructions having the first offload target device identifier.

8. The method of claim 1 , where comparing a second offload operation to a first offload operation that precedes the second offload operation includes comparing a second thread identifier associated with the second offload operation to a first thread identifier associated with the first offload operation; and

wherein determining whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation includes detecting the execution hazard in the offload target device when the first thread identifier and the second thread identifier disagree.

9. The method of claim 8 further comprising identifying that race detection is enabled on an offload target device.

10. The method of claim 9 wherein identifying that race detection is enabled on the offload target device includes storing the first thread identifier for first offload operation, wherein the first offload operation is associated with a race detection indicator.

11. The method of claim 1 , wherein the second offload operation is a processing-in-memory (PIM) operation and the offload target device is a PIM module.

12. The method of claim 1 , wherein comparing a second offload operation to a first offload operation that precedes the second offload operation and determining whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation are carried out at runtime.

13. An apparatus for detecting execution hazards in offloaded operations, the apparatus comprising logic circuitry configured to:

compare a second offload operation to a first offload operation that precedes the second offload operation;

determine whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation; and

initiate an error handling action in response to determining that the second offload operation creates the execution hazard on the offload target device.

14. The apparatus of claim 13 , wherein initiating an error handling action includes at least one of sending an error message, creating an error log entry, and triggering a fault.

15. The apparatus of claim 13 , wherein comparing a second offload operation to a first offload operation that precedes the second offload operation includes comparing a second offload target device identifier associated with the second offload operation to a first offload target device identifier associated with the first offload operation; and

wherein determining whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation includes detecting the execution hazard when the first offload target device identifier and the second offload target device identifier disagree.

16. The apparatus of claim 13 , where comparing a second offload operation to a first offload operation that precedes the second offload operation includes comparing a second thread identifier associated with the second offload operation to a first thread identifier associated with the first offload operation; and

wherein determining whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation includes detecting the execution hazard in the offload target device when the first thread identifier and the second thread identifier disagree.

17. A system for detecting execution hazards in offloaded operations, the system comprising:

two or more processor cores;

two or more processing-in-memory (PIM) modules; and

logic circuitry configured to:

compare a second offload operation to a first offload operation that precedes the second offload operation;

determine whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation; and

initiate an error handling action in response to determining that the second offload operation creates the execution hazard on the offload target device.

18. The system of claim 17 , wherein initiating an error handling action includes at least one of sending an error message, creating an error log entry, and triggering a fault.

19. The system of claim 17 , wherein comparing a second offload operation to a first offload operation that precedes the second offload operation includes comparing a second offload target device identifier associated with the second offload operation to a first offload target device identifier associated with the first offload operation; and

wherein determining whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation includes detecting the execution hazard when the first offload target device identifier and the second offload target device identifier disagree.

20. The system of claim 17 , where comparing a second offload operation to a first offload operation that precedes the second offload operation includes comparing a second thread identifier associated with the second offload operation to a first thread identifier associated with the first offload operation; and

wherein determining whether the second offload operation creates an execution hazard on an offload target device based on the comparison of the second offload operation to the first offload operation includes detecting the execution hazard in the offload target device when the first thread identifier and the second thread identifier disagree.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2021
From: ALSOP, JOHNATHAN; AGA, SHAIZEEN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 056473/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2021
From: ALSOP, JOHNATHAN; AGA, SHAIZEEN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 056262/0127 →
Cited By (2)
US 12,387,810 US 12,431,177