CPU-GPU lockstep system
AssigneeHuawei Technologies Co., Ltd.
InventorsDa Qi Ren, Liang Peng
Life of this patent
Estimating the term…
Abstract
A lockstep controller operates a lockstep system of three or more CPU-GPU pairs, comparing the outputs from the CPU-GPU pairs and, by way of a majority vote, provides the output for the lockstep system. Based on comparing the outputs, if one of the CPU-GPU pairs provides outputs that disagree with the majority outputs, it can be switched out of the lockstep system. The removed CPU is replaced by a backup CPU. So that the backup CPU can be part of a CPU-GPU pair, a portion of the address space from the GPU of one of the other CPU-GPU pairs is assigned to the backup CPU to operate as a replacement CPU-GPU pair, while the CPU already associated with this GPU retains another portion of the GPU's address space to continue operating as a CPU-GPU pair.
Claims20
A processing system, comprising:
- three or more central processing unit (CPU)-graphical processing unit (GPU) pairs, the CPU of each of the CPU-GPU pairs configured to run kernels for programs executing on a corresponding GPU of the CPU-GPU pair;
- a backup CPU;
- and
- a lockstep controller connected to the three or more CPU-GPU pairs and to the backup CPU, the lockstep controller configured to:
- operate the three or more CPU-GPU pairs in parallel to execute programs in a lockstep manner, the CPU of each CPU-GPU pairs running kernels for the programs in parallel;
- compare an output from each CPU of the three or more CPU-GPU pairs for each of one or more kernels running on the CPUs of the three or more CPU-GPU pairs;
- based upon comparing the outputs, determine whether any of the CPU-GPU pairs are defective;
- and
- in response to determining that a first of the CPU-GPU pairs is defective:
- discontinue the operation of the first GPU-CPU pair in parallel to execute programs in a lockstep manner with others of the three or more CPU-GPU pairs;
- and
- operate the others of the three or more CPU-GPU pairs and the backup CPU and the GPU of a second of the CPU-GPU pairs in parallel to execute programs in a lockstep manner, the CPU of the second CPU-GPU pair operating as a CPU-GPU pair with the GPU of the second CPU-GPU pair and the backup CPU operating as a CPU-GPU pair with the GPU of the second CPU-GPU pair, the backup CPU and the CPUs of the others of the CPU-GPU pairs running kernels for the programs in parallel.
A method of operating a processing system, comprising:
- operating three or more central processing unit (CPU)-graphical processing unit (GPU) pairs of the processing system in parallel to execute programs in a lockstep manner, the CPU of each CPU-GPU pairs running kernels for the programs in parallel;
- comparing an output from each CPU of the three or more CPU-GPU pairs for each of one or more kernels running on the CPUs of the three or more CPU-GPU pairs;
- based upon comparing the outputs, determining whether any of the CPU-GPU pairs are defective;
- and
- in response to determining that a first of the CPU-GPU pairs is defective:
- discontinuing operation of the first GPU-CPU pair in parallel to execute programs in a lockstep manner with others of the three or more CPU-GPU pairs;
- and
- operating the others of the three or more CPU-GPU pairs and the backup CPU and the GPU of a second of the CPU-GPU pairs in parallel to execute programs in a lockstep manner, the CPU of the second CPU-GPU pair operating as a CPU-GPU pair with the GPU of the second CPU-GPU pair and the backup CPU operating as a CPU-GPU pair with the second GPU of the second CPU-GPU pair, the backup CPU and the CPUs of the others of the CPU-GPU pairs running kernels for the programs in parallel.
A lockstep processing system, comprising:
- a lockstep controller configured to be connected to three or more central processing unit (CPU)-graphical processing unit (GPU) pairs, the CPU of each CPU-GPU pair configured to run kernels for programs executing on a corresponding GPU of the CPU-GPU pair, and to a backup CPU, the lockstep controller configured to:
- operate the three or more CPU-GPU pairs in parallel to execute programs in a lockstep manner, the CPU of each CPU-GPU pairs running kernels for the programs in parallel;
- compare an output from each CPU of the three or more CPU-GPU pairs for each of one or more kernels running on the CPUs of the three or more CPU-GPU pairs;
- based upon comparing the outputs, determine whether any of the CPU-GPU pairs are defective;
- and
- in response to determining that a first of the CPU-GPU pairs is defective:
- discontinue the operation of the first GPU-CPU pair in parallel to execute programs in a lockstep manner with others of the three or more CPU-GPU pairs;
- and
- operate the others of the three or more CPU-GPU pairs and the backup CPU and the GPU of a second of the CPU-GPU pairs in parallel to execute programs in a lockstep manner, the CPU of the second CPU-GPU pair operating as a CPU-GPU pair with the GPU of the second CPU-GPU pair and the backup CPU operating as a CPU-GPU pair with the GPU of the second CPU-GPU pair, the backup CPU and the CPUs of the others of the CPU-GPU pairs running kernels for the programs in parallel.
Dependencies are inferred from the claim text.