IP Library Patent Application 16828729
Patent Application
App. No. 16/828,729

DYNAMIC QUALITY OF SERVICE MANAGEMENT FOR DEEP LEARNING TRAINING COMMUNICATION

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 None
App. No.
16/828,729
Abstract

A processor analyzes a machine learning workload. Corresponding priority levels are assigned to identified data requests in the machine learning workload based on an associated data dependency delay performance impact. The assigned corresponding priority levels are indicated when providing the data requests to a memory controller. The memory controller sorts the received data requests into a plurality of different priority queues based on the indicated corresponding priority levels. The memory controller initiates the data requests from the different priority queues to memory in an order based on different qualities of service of the different priority queues.

Claims (34)

1 . A system, comprising:

a processor configured to:

analyze a machine learning workload and assign corresponding priority levels to identified data requests in the machine learning workload based on an associated data dependency delay performance impact; and

indicate the assigned corresponding priority levels when providing the data requests to a memory controller; and

the memory controller configured to:

sort the received data requests into a plurality of different priority queues based on the indicated corresponding priority levels; and

initiate the data requests from the different priority queues to memory in an order based on different qualities of service of the different priority queues.

2 . The system of claim 1 , wherein to analyze the machine learning workload, the processor is configured to generate a data dependency graph.

3 . The system of claim 2 , wherein the data dependency graph is comprised of a plurality of nodes, wherein each node of the plurality of nodes corresponds to a data request.

4 . The system of claim 3 , wherein the processor is configured to determine the associated data dependency delay performance impact for each node of the plurality of nodes.

5 . The system of claim 1 , wherein the assigned corresponding priority levels include at least a high priority level, a medium priority level, and a low priority level.

6 . The system of claim 5 , wherein the memory controller is configured to initiate a data request in a priority queue with the high priority level when memory bandwidth associated with the memory is available.

7 . The system of claim 5 , wherein the memory controller is configured to initiate a data request in a priority queue with the medium priority level when memory bandwidth associated with the memory is available and after a first threshold number of data requests have been fulfilled.

8 . The system of claim 5 , wherein the memory controller is configured to initiate a data request in a priority queue with the low priority level when memory bandwidth associated with the memory is available and after a second threshold number of data requests have been fulfilled.

9 . The system of claim 1 , wherein to analyze the machine learning workload, the processor is configured to determine a current portion of the machine learning workload.

10 . The system of claim 9 , wherein the processor is configured to indicate the assigned corresponding priority levels based on the determined current portion of the machine learning workload.

11 . The system of claim 10 , wherein the determined current portion corresponds to a compute heavy portion of the machine learning workload.

12 . The system of claim 11 , wherein during the compute heavy portion, the processor is configured to assign a data request corresponding to a compute operation to a different priority queue then a data request corresponding to a communication operation.

13 . The system of claim 10 , wherein the determined current portion corresponds to a communication heavy portion of the machine learning workload.

14 . The system of claim 13 , wherein during the communication heavy portion, the processor is configured to assign a data request corresponding to a compute operation to a different priority queue then a data request corresponding to a communication operation.

15 . A method, comprising:

analyzing a machine learning workload and assigning corresponding priority levels to identified data requests in the machine learning workload based on an associated data dependency delay performance impact;

indicating the assigned corresponding priority levels when providing the data requests to a memory controller;

sorting the received data requests into a plurality of different priority queues based on the indicated corresponding priority levels; and

initiating the data requests from the different priority queues to memory in an order based on different qualities of service of the different priority queues.

16 . The method of claim 15 , wherein analyzing the machine learning workload comprises generating a data dependency graph.

17 . The method of claim 16 , wherein the data dependency graph is comprised of a plurality of nodes, wherein each node of the plurality of nodes corresponds to a data request.

18 . The method of claim 17 , wherein the processor determines the associated data dependency delay performance impact for each node of the plurality of nodes.

19 . The method of claim 15 , wherein the assigned corresponding priority levels include at least a high priority level, a medium priority level, and a low priority level.

20 . A method, comprising:

analyzing, by a processor, a machine learning workload and assigning corresponding priority levels to identified data requests in the machine learning workload based on an associated data dependency delay performance impact; and

indicate the assigned corresponding priority levels when providing the data requests to a memory controller, wherein the memory controller:

sorts the received data requests into a plurality of different priority queues based on the indicated corresponding priority levels; and

initiates the data requests from the different priority queues to memory in an order based on different qualities of service of the different priority queues.

Assignments (3)
CHANGE OF NAME Recorded Jan 31, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058916/0593 →
CHANGE OF NAME Recorded Nov 19, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058214/0351 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2020
From: SRIDHARAN, SRINIVAS
To: FACEBOOK, INC.
Reel/Frame 052793/0738 →