IP Library › Granted Patent US 10,331,529
Granted Patent B2
US 10,331,529 · App. 15/459,788 · Granted Jun 25, 2019

Maintaining system reliability in a CPU with co-processors

Inventors: Pradip Bose (Yorktown Heights, NY); Alper Buyuktosunoglu (White Plains, NY); Jingwen Leng (Yorktown Heights, NY); Ramon Bertran Monfort (Bronx, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/1658G06F11/1629G06F2201/805G06F2201/82
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 10,331,529
App. No.
15/459,788
Granted
Jun 25, 2019
Kind
B2
Abstract

A computer-implemented method is provided that is performed in a computer having a processor and multiple co-processors. The method includes launching a same set of operations in each of an original co-processor and a redundant co-processor, from among the multiple co-processors, to obtain respective execution signatures from the original co-processor and the redundant co-processor. The method further includes detecting an error in an execution of the set of operations by the original co-processor, by comparing the respective execution signatures. The method also includes designating the execution of the set of operations by the original co-processor as error-free and committing a result of the execution, responsive to identifying a match between the respective execution signatures. The method additionally includes performing an error recovery operation that replays the set of operations by the original co-processor and the redundant co-processor, responsive to identifying a mismatch between the respective execution signatures.

Claims (17)

1. A computer-implemented method performed in a computer having a Central Processing Unit (CPU) and multiple co-processors, the method comprising:

launching a same set of operations in each of an original co-processor and a redundant co-processor, from among the multiple co-processors, to obtain respective execution signatures from the original co-processor and the redundant co-processor;

detecting an error in an execution of the set of operations by the original co-processor, by comparing the respective execution signatures;

designating the execution of the set of operations by the original co-processor as error-free and committing a result of the execution, responsive to identifying a match between the respective execution signatures; and

performing an error recovery operation that replays the set of operations by the original co-processor and the redundant co-processor, responsive to identifying a mismatch between the respective execution signatures.

2. The computer-implemented method of claim 1 , wherein said launching step is performed as at least part of a dual-launch recovery scheme that uses a redundant execution by the redundant co-processor to check the execution by the original co-processor.

3. The computer-implemented method of claim 1 , wherein the set of operations form a compute kernel.

4. The computer-implemented method of claim 1 , wherein the set of operations are only part of a complete compute kernel.

5. The computer-implemented method of claim 1 , wherein a unit of targeted acceleration is at a kernel-level granularity with respect to a complete application.

6. The computer-implemented method of claim 1 , wherein the set of operations executed by the redundant co-processor is a shadow copy of kernel code executed by the original co-processor.

7. The computer-implemented method of claim 6 , wherein the shadow copy executed by the redundant co-processor uses a same complete set of input data as the kernel code executed by the original co-processor.

8. The computer-implemented method of claim 6 , wherein the shadow copy is proactively launched responsive to monitoring each of the operations in a computer program that includes the set of operations.

9. The computer-implemented method of claim 1 , wherein the respective execution signatures are directed to a specific execution state within a launched kernel.

10. The computer-implemented method of claim 1 , wherein the set of operations comprises at least a first function and a second function, wherein an input of the second function is an output of the first function.

11. The computer-implemented method of claim 1 , further comprising repeating said detecting, designating, and performing steps until the match is identified between the respective execution signatures.

12. The computer-implemented method of claim 1 , wherein the computer is a single node in a multi-node computing system, and the method further comprises preventing the error from propagating to other nodes in the multi-node computing system.

13. The computer-implemented method of claim 1 , wherein the result of the execution is restricted from being committed and accessed by the CPU, in an absence of performing said detecting step to verify an integrity of the result of the execution.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2017
From: BOSE, PRADIP; BUYUKTOSUNOGLU, ALPER; LENG, JINGWEN; BERTRAN MONFORT, RAMON
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041585/0090 →
Continuity (1)
Related Publication 20180267867A1 · Sep 20, 2018