IP Library Granted Patent US 11,340,958
Granted Patent B2
US 11,340,958 · App. 16/923,137 · Granted May 24, 2022

Real-time simulation of compute accelerator workloads for distributed resource scheduling

Inventor: Matthew D. McClure (Alameda, CA)
Assignee: VMWARE, INC.
G06F9/5088G06F9/4856G06F2209/501
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,340,958
App. No.
16/923,137
Granted
May 24, 2022
Kind
B2
Abstract

Disclosed are various embodiments of real-time simulation of the performance of a compute accelerator workload for distributed resource scheduling. The compute accelerator workload is executed on candidate hosts to select a destination host. Efficiency metrics are determined for the candidate hosts based on the execution of the compute accelerator workload on the candidate hosts. A destination host is selected from the candidate hosts based on the efficiency metrics, and the compute accelerator workload can be assigned to execute on the selected destination host.

Claims (27)

1. A non-transitory, computer-readable medium comprising machine-readable instructions that, when executed by at least one processor, cause at least one computing device to at least:

identify a compute accelerator workload and a working set for the compute accelerator workload;

augment a compute kernel of the compute accelerator workload to be an augmented compute kernel comprising instructions that increment an execution counter at a plurality of artificial halting points inserted into the compute kernel;

execute the compute accelerator workload comprising the augmented compute kernel on a plurality of candidate hosts to select a destination host for the compute accelerator workload;

select the destination host from the plurality of candidate hosts based at least in part on a plurality of efficiency metrics corresponding to execution of the compute accelerator workload on the plurality of candidate hosts; and

assign the compute accelerator workload to execute on the destination host.

2. The non-transitory, computer-readable medium of claim 1 , wherein the instructions, when executed by the at least one processor, cause the at least one computing device to at least:

determine the plurality of efficiency metrics corresponding to the plurality of candidate hosts based at least in part on a plurality of performance counters incremented during execution of the compute accelerator workload on a respective candidate host.

3. The non-transitory, computer-readable medium of claim 2 , wherein a respective efficiency metric comprises at least one of: a non-local page reference velocity, a non-local page dirty velocity, a device-local page reference velocity, a device-local page dirty velocity, and an execution velocity.

4. The non-transitory, computer-readable medium of claim 3 , wherein the instructions, when executed by the at least one processor, cause the at least one computing device to at least:

query the plurality of performance counters in real time to determine the respective efficiency metric.

5. The non-transitory, computer-readable medium of claim 2 , wherein at least one of the plurality of performance counters comprises a hardware performance counter.

6. The non-transitory, computer-readable medium of claim 2 , wherein the instructions, when executed by the at least one processor, cause the at least one computing device to at least:

insert, into a compute kernel of the compute accelerator workload, instructions to increment the performance counter at a memory load instruction, a memory store instruction, or a halting point of the compute kernel.

7. The non-transitory, computer-readable medium of claim 1 , wherein the working set comprises at least one of: initialization data provided to the compute accelerator workload to begin execution, and intermediate data identified at a halting point of the compute accelerator workload.

8. A method, comprising:

augmenting a compute kernel of a compute accelerator workload to be an augmented compute kernel comprising instructions that increment an execution counter at a plurality of artificial halting points of the augmented compute kernel;

executing the compute accelerator workload on a plurality of candidate hosts to select a destination host for the compute accelerator workload;

determining a plurality of efficiency metrics corresponding to the plurality of candidate hosts, a respective efficiency metric being determined based at least in part on at least one performance counter comprising the execution counter incremented by the augmented compute kernel during execution of the compute accelerator workload on a compute accelerator of a respective candidate host;

selecting the destination host from the plurality of candidate hosts based at least in part on an efficiency metric for the compute accelerator workload on the destination host; and

assigning the compute accelerator workload to execute on the destination host.

9. The method of claim 8 , wherein the compute accelerator workload is cloned to the plurality of candidate hosts along with a working set for the compute accelerator workload.

10. The method of claim 9 , wherein the working set comprises initialization data provided to the compute accelerator workload to begin execution.

11. The method of claim 9 , wherein the compute accelerator workload is analyzed for migration from a source host, and the working set comprises intermediate data identified on the source host at a halting point of the compute accelerator workload.

12. The method of claim 8 , wherein the augmented compute accelerator workload includes instructions to increment a page reference counter.

13. The method of claim 8 , wherein the augmented compute accelerator workload includes instructions to increment a page dirty counter.

14. The method of claim 8 , wherein the artificial halting points are inserted at a plurality of loop iterations of the compute accelerator workload.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2020
From: MCCLURE, MATTHEW D.
To: VMWARE, INC.
Reel/Frame 053263/0978 →
Continuity (1)
Related Publication 20220012104A1 · Jan 13, 2022