IP Library › Granted Patent US 11,281,384
Granted Patent B2
US 11,281,384 · App. 16/396,057 · Granted Mar 22, 2022

Method, device and computer program product for managing memory of dedicated processing resource

Inventors: Junping Zhao (Beijing, CN); Kun Wang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0631G06F3/067G06F3/0607G06F3/0653G06F9/5016G06F13/28G06F2213/0026
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,281,384
App. No.
16/396,057
Filed
Apr 26, 2019
Granted
Mar 22, 2022
Kind
B2
Art Unit
2135
USPC
711/170
Abstract

A method comprises determining, in a process of storing data for a computing task of a first dedicated processing resource of a set of dedicated processing resources to the first dedicated processing resource, a size of an available space of a memory of the first dedicated processing resource; in response to the size of the available space of the memory of the first dedicated processing resource being lower than a predetermined threshold value, determining a second dedicated processing resource of the set of dedicated processing resources, a size of an available space of a memory of the second dedicated processing resource is greater than the predetermined threshold value; and causing at least one portion of the data not stored on the memory of the first dedicated processing resource to be stored on the memory of the second dedicated processing resource.

Claims (82)

1. A method for managing a memory of a dedicated processing resource, comprising:

determining, in a process of storing data for a learning model computing task of a first dedicated processing resource of a set of dedicated processing resources to the first dedicated processing resource, a size of an available space of a memory of the first dedicated processing resource;

in response to the size of the available space of the memory of the first dedicated processing resource being lower than a predetermined threshold value, determining a second dedicated processing resource of the set of dedicated processing resources, a size of an available space of a memory of the second dedicated processing resource being greater than the predetermined threshold value; and

causing at least one portion of the data not stored on the memory of the first dedicated processing resource to be stored on the memory of the second dedicated processing resource;

wherein determining the second dedicated processing resource of the set of dedicated processing resources is based at least in part on a topology structure and associated data transfer capabilities of the set of dedicated processing resources;

wherein at least parts of the memories of the first and second dedicated processing resources utilized to store respective portions of the data are organized as a storage resource pool with mapping of virtual memory pointers utilized by one or more applications to respective physical memory pointers into the memories of the first and second dedicated processing resources;

wherein the topology structure of the set of dedicated processing resources comprises a peer-to-peer network;

wherein the first and second dedicated processing resources are coupled through a first peer-to-peer connection of the peer-to-peer network that is determined, as part of the determining of the second dedicated processing resource, to have a greater data transmission rate relative to respective data transmission rates of one or more additional peer-to-peer connections of the topology structure comprising the peer-to-peer network;

wherein determining the second dedicated processing resource includes identifying one or more additional dedicated processing resources;

wherein one or more additional portions of the data not stored on the memory of the first dedicated processing resource are stored on one or more memories of the one or more additional dedicated processing resources; and

wherein the second dedicated processing resource and the one or more additional dedicated processing resources are further determined based on:

one or more historical selections of the second dedicated processing resource and the one or more additional dedicated processing resources; and

sizes of the available spaces of the memories of the second dedicated processing resource and the one or more additional dedicated processing resources.

2. The method of claim 1 , wherein determining the second dedicated processing resource comprises:

determining a data transmission rate corresponding to a connection between the first dedicated processing resource and other dedicated processing resources of the set of dedicated processing resources;

determining a group of candidate dedicated processing resources from the set of dedicated processing resources, the data transmission rate corresponding to a candidate dedicated processing resource of the group of candidate dedicated processing resources being greater than a predetermined threshold value rate; and

determining the second dedicated processing resource from the group of candidate dedicated processing resources based on a size of an available space of a memory of the candidate dedicated processing resource of the group of candidate dedicated processing resources.

3. The method of claim 2 , wherein determining the second dedicated processing resource from the group of candidate dedicated processing resources comprises:

determining a candidate processing resource with a largest available space of a memory in the group of candidate dedicated processing resources as the second dedicated processing resource.

4. The method of claim 2 , wherein the second dedicated processing resource is one candidate dedicated processing resource of one group of candidate dedicated processing resources, the method further comprises:

determining a size of a portion of the data not stored on the memory of the first dedicated processing resource; and

determining a size of data to be stored on the second dedicated processing resource based on the size of the portion and the size of the available space of the memory of the candidate dedicated processing resource of the group of candidate dedicated processing resources.

5. The method of claim 1 , wherein causing the at least one portion of the data to be stored on the memory of the second dedicated processing resource comprises:

obtaining a physical address of a pre-allocated space of the memory of the second dedicated processing resource; and

causing the at least one portion of the data to be stored based on the physical address.

6. The method of claim 1 , wherein the first dedicated processing resource comprises a dedicated processing unit of a first type and the second dedicated processing resource comprises a dedicated processing unit of a second type different than the first type.

7. The method of claim 6 , wherein the dedicated processing unit of the first type comprises a graphics processing unit (GPU).

8. The method of claim 7 , wherein the dedicated processing unit of the second type comprises a central processing unit (CPU).

9. A device for managing a memory of dedicated processing resources, comprising:

at least one processing unit;

at least one memory coupled to the at least one processing unit and storing instructions executed by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform steps comprising:

determining, in a process of storing data for a computing task of a first dedicated processing resource of a set of dedicated processing resources to the first dedicated processing resource, a size of an available space of a memory of the first dedicated processing resource;

in response to the size of the available space of the memory of the first dedicated processing resource being lower than a predetermined threshold value, determining a second dedicated processing resource of the set of dedicated processing resources, a size of an available space of a memory of the second dedicated processing resource being greater than the predetermined threshold value; and

causing at least one portion of the data not stored on the memory of the first dedicated processing resource to be stored on the memory of the second dedicated processing resource;

wherein determining the second dedicated processing resource of the set of dedicated processing resources is based at least in part on a topology structure and associated data transfer capabilities of the set of dedicated processing resources;

wherein at least parts of the memories of the first and second dedicated processing resources utilized to store respective portions of the data are organized as a storage resource pool with mapping of virtual memory pointers utilized by one or more applications to respective physical memory pointers into the memories of the first and second dedicated processing resources;

wherein the topology structure of the set of dedicated processing resources comprises a peer-to-peer network;

wherein the first and second dedicated processing resources are coupled through a first peer-to-peer connection of the peer-to-peer network that is determined, as part of the determining of the second dedicated processing resource, to have a greater data transmission rate relative to respective data transmission rates of one or more additional peer-to-peer connections of the topology structure comprising the peer-to-peer network;

wherein determining the second dedicated processing resource includes identifying one or more additional dedicated processing resources;

wherein one or more additional portions of the data not stored on the memory of the first dedicated processing resource are stored on one or more memories of the one or more additional dedicated processing resources; and

wherein the second dedicated processing resource and the one or more additional dedicated processing resources are further determined based on:

one or more historical selections of the second dedicated processing resource and the one or more additional dedicated processing resources; and

sizes of the available spaces of the memories of the second dedicated processing resource and the one or more additional dedicated processing resources.

10. The device of claim 9 , wherein determining the second dedicated processing resource comprises:

determining a data transmission rate corresponding to a connection between the first dedicated processing resource and other dedicated processing resource of the set of dedicated processing resources;

determining a group of candidate dedicated processing resources from the set of dedicated processing resources, the data transmission rate corresponding to a candidate dedicated processing resource of the group of candidate dedicated processing resources being greater than a predetermined threshold value rate; and

determining the second dedicated processing resource from the group of candidate dedicated processing resources based on a size of an available space of a memory of the candidate dedicated processing resource of the group of candidate dedicated processing resources.

11. The device of claim 10 , wherein determining the second dedicated processing resource from the group of candidate dedicated processing resources comprises:

determining a candidate processing resource with largest available space of a memory in the group of candidate dedicated processing resources as the second dedicated processing resource.

12. The device of claim 10 , wherein the second dedicated processing resource is one candidate dedicated processing resource of one group of candidate dedicated processing resources, the method further comprises:

determining a size of a portion of the data not stored on the memory of the first dedicated processing resource; and

determining a size of data to be stored on the second dedicated processing resource based on the size of the portion and the size of the available space of the memory of the candidate dedicated processing resource of the group of candidate dedicated processing resources.

13. The device of claim 9 , wherein causing the at least one portion of the data to be stored on the memory of the second dedicated processing resource comprises:

obtaining a physical address of a pre-allocated space of the memory of the second dedicated processing resource; and

causing the at least one portion of the data to be stored based on the physical address.

14. The device of claim 9 , wherein the first dedicated processing resource comprises a dedicated processing unit of a first type and the second dedicated processing resource comprises a dedicated processing unit of a second type different than the first type.

15. A computer program product tangibly stored on a non-transient computer-readable medium and comprising machine-executable instructions which, when executed, cause a machine to perform steps of:

determining, in a process of storing data for a computing task of a first dedicated processing resource of a set of dedicated processing resources to the first dedicated processing resource, a size of an available space of a memory of the first dedicated processing resource;

in response to the size of the available space of the memory of the first dedicated processing resource being lower than a predetermined threshold value, determining a second dedicated processing resource of the set of dedicated processing resources, a size of an available space of a memory of the second dedicated processing resource being greater than the predetermined threshold value; and

causing at least one portion of the data not stored on the memory of the first dedicated processing resource to be stored on the memory of the second dedicated processing resource;

wherein determining the second dedicated processing resource of the set of dedicated processing resources is based at least in part on a topology structure and associated data transfer capabilities of the set of dedicated processing resources;

wherein at least parts of the memories of the first and second dedicated processing resources utilized to store respective portions of the data are organized as a storage resource pool with mapping of virtual memory pointers utilized by one or more applications to respective physical memory pointers into the memories of the first and second dedicated processing resources;

wherein the topology structure of the set of dedicated processing resources comprises a peer-to-peer network;

wherein the first and second dedicated processing resources are coupled through a first peer-to-peer connection of the peer-to-peer network that is determined, as part of the determining of the second dedicated processing resource, to have a greater data transmission rate relative to respective data transmission rates of one or more additional peer-to-peer connections of the topology structure comprising the peer-to-peer network;

wherein determining the second dedicated processing resource includes identifying one or more additional dedicated processing resources;

wherein one or more additional portions of the data not stored on the memory of the first dedicated processing resource are stored on one or more memories of the one or more additional dedicated processing resources; and

wherein the second dedicated processing resource and the one or more additional dedicated processing resources are further determined based on:

one or more historical selections of the second dedicated processing resource and the one or more additional dedicated processing resources; and

sizes of the available spaces of the memories of the second dedicated processing resource and the one or more additional dedicated processing resources.

16. The computer program product of claim 15 , wherein determining the second dedicated processing resource comprises:

determining a data transmission rate corresponding to a connection between the first dedicated processing resource and other dedicated processing resources of the set of dedicated processing resources;

determining a group of candidate dedicated processing resources from the set of dedicated processing resources, the data transmission rate corresponding to a candidate dedicated processing resource of the group of candidate dedicated processing resources being greater than a predetermined threshold value rate; and

determining the second dedicated processing resource from the group of candidate dedicated processing resources based on a size of an available space of a memory of the candidate dedicated processing resource of the group of candidate dedicated processing resources.

17. The computer program product of claim 16 , wherein determining the second dedicated processing resource from the group of candidate dedicated processing resources comprises:

determining a candidate processing resource with a largest available space of a memory in the group of candidate dedicated processing resources as the second dedicated processing resource.

18. The computer program product of claim 16 , wherein the second dedicated processing resource is one candidate dedicated processing resource of one group of candidate dedicated processing resources, and wherein the machine-executable instructions, when executed, cause the machine to further perform the steps of:

determining a size of a portion of the data not stored on the memory of the first dedicated processing resource; and

determining a size of data to be stored on the second dedicated processing resource based on the size of the portion and the size of the available space of the memory of the candidate dedicated processing resource of the group of candidate dedicated processing resources.

19. The computer program product of claim 15 , wherein causing the at least one portion of the data to be stored on the memory of the second dedicated processing resource comprises:

obtaining a physical address of a pre-allocated space of the memory of the second dedicated processing resource; and

causing the at least one portion of the data to be stored based on the physical address.

20. The computer program product of claim 15 , wherein the first dedicated processing resource comprises a dedicated processing unit of a first type and the second dedicated processing resource comprises a dedicated processing unit of a second type different than the first type.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2019
From: ZHAO, JUNPING; WANG, KUN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049009/0178 →
Priority Claims (1)
CN 201910053486.8 · Jan 21, 2019 · national
Continuity (1)
Related Publication 20200233593A1 · Jul 23, 2020