Compute Kernel Suspend-Resume via Conditional Halting Points

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Compute accelerators (CAs) cannot pause and resume workloads from the same execution point, leading to inefficiencies in resource utilization and fault tolerance, as they must restart from the beginning if interrupted, which is problematic for load balancing and fault tolerance in shared environments.

Innovation Solution

A method is introduced to launch a compute kernel with conditional halting points on a host computer's CPU, allowing the kernel to be suspended and resumed at specific points, with kernel variables written to a file for later retrieval, enabling workload migration and resumption without restarting from the beginning.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a compute accelerator workload is interrupted during execution, then the compute accelerator must restart from the beginning, but this causes loss of time and reduces productivity

Engineering Contradiction:
Improvefault toleranceVSAvoidworkload execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent inserts conditional halting points into the compute kernel code before execution begins. These halting points are predetermined locations where the kernel can be suspended and later resumed. By preparing these checkpoints in advance, the system enables fault tolerance without requiring a full restart, thus resolving the contradiction between reliability and time loss.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If a compute accelerator is shared between multiple applications, then resource utilization improves, but migration becomes difficult without restart capability

Engineering Contradiction:
Improveresource utilizationVSAvoidworkload migration capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

By pre-inserting conditional halting points into the compute kernel, the system enables workloads to be suspended at known locations and migrated between hosts. The halting points include bookmark values that track execution progress, allowing the workload to resume from the same point on a different host. This preliminary preparation makes migration feasible while maintaining high resource utilization through shared accelerator access.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If a compute kernel is executed without conditional halting points, then execution is continuous and simple, but suspension and resumption are impossible

Engineering Contradiction:
Improvekernel execution simplicityVSAvoidsuspend-resume capability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent segments the compute kernel execution flow by inserting conditional halting points at specific locations. These halting points divide the continuous execution into suspendable segments. Each halting point includes a bookmark value that marks the execution position. This segmentation enables suspension and resumption capability while maintaining relatively simple kernel code structure, resolving the contradiction between ease of operation and adaptability.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10684887B2Live migration of a virtualized compute accelerator workload
Publication Date: 2020.06.16 VMWARE INC
  • US10684887B2 patent drawing
  • US10684887B2 patent drawing
  • US10684887B2 patent drawing

AI summary

The disclosure provides an approach for modifying a kernel by adding conditional halting points. The disclosure also provides an approach for modifying a kernel by implementing a virtual shared memory between an application running on a CPU and a workload running on a compute accelerator. The disclosure provides an approach for setting up the kernel and its working set on a compute accelerator, executing the workload, suspending the workload, and then resuming the workload at a later time, optionally on a different host computer.