IP Library › Granted Patent US 11,037,269
Granted Patent B1
US 11,037,269 · App. 16/832,996 · Granted Jun 15, 2021

High-speed resume for GPU applications

Inventors: Travis Schluessler (Berthoud, CO); Zack Waters (Portland, OR); Charles Moidel (Pleasanton, CA); Michael Apodaca (Folsom, CA); Murali Ramadoss (Folsom, CA)
Assignee: Intel Corporation
G06T1/20G06F9/461G06F9/5027G06N3/084G06N20/00G06T1/60
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,037,269
App. No.
16/832,996
Granted
Jun 15, 2021
Kind
B1
Abstract

Described herein are devices, systems and methods to utilize non-volatile memory to save and retrieve data that is used to accelerate the load and resume of GPU accelerated applications. Non-volatile memory and GPU logic are configured to enable the GPU to directly access the non-volatile memory to enable data to be read without requiring the data to traverse the CPU and CPU memory. This data access path creates a faster method for loading data into GPU local memory.

Claims (39)

1. A graphics processor device comprising:

one or more graphics processing resources:

a volatile memory coupled with the one or more graphics processing resources; and

a non-volatile memory coupled with the volatile memory and the one or more graphics processing resources, the one or more graphics processing resources to:

receive a request to create a resource for use by the one or more graphics processing resources during acceleration of an application to be accelerated by the one or more graphics processing resources;

determine whether the resource is to be stored to the non-volatile memory;

store the resource to the non-volatile memory in response to a determination that the resource is to be stored to the non-volatile memory; and

store the resource to the volatile memory in response to a determination that the resource is not to be stored to the non-volatile memory.

2. The graphics processor device as in claim 1 , wherein the one or more graphics processing resources are additionally to store the resource to the non-volatile memory and the volatile memory in response to the determination that the resource is to be stored to the non-volatile memory.

3. The graphics processor device as in claim 1 , wherein to store the resource to the non-volatile memory additionally includes to store the resource to the volatile memory.

4. The graphics processor device as in claim 1 , wherein the determination that the resource is to be stored to the non-volatile memory is based on a determination of whether the resource is a static resource or a dynamic resource.

5. The graphics processor device as in claim 4 , wherein the resource is a static resource and includes static texture data.

6. The graphics processor device as in claim 4 , wherein the resource is a dynamic resource and includes a constant buffer, a dynamic vertex buffer, or a dynamic texture.

7. The graphics processor device as in claim 1 , wherein the application to be accelerated by the one or more graphics processing resources is a first application and the determination that the resource is to be stored to the non-volatile memory is based on a first data size associated with a first set of resources for the first application, the first set of resources stored on the non-volatile memory.

8. The graphics processor device as in claim 7 , the one or more graphics processing resources additionally to receive a request to create a resource for use by the one or more graphics processing resources to accelerate a second application, the determination that the resource is to be stored to the non-volatile memory is based on a second data size associated with a second set of resources for the second application, the second set of resources stored on the non-volatile memory.

9. The graphics processor device as in claim 8 , wherein the second data size differs from the first data size.

10. The graphics processor device as in claim 8 , wherein the first set of resources for the first application include texture data.

11. The graphics processor device as in claim 8 , wherein the second set of resources for the second application include data associated with a machine learning model.

12. A method comprising:

on a graphics processor device comprising one or more graphics processing resources:

receiving a request to create a resource for use by the one or more graphics processing resources;

determining whether the resource is to be stored to a non-volatile memory, wherein the non-volatile memory is directly addressable by the graphics processor device;

storing the resource to the non-volatile memory in response to a determination that the resource is to be stored to the non-volatile memory; and

storing the resource to a volatile memory coupled with the graphics processor device in response to a determination that the resource is not to be stored to the non-volatile memory.

13. The method as in claim 12 , additionally comprising storing the resource to the non-volatile memory and the volatile memory in response to determining that the resource is to be stored to the non-volatile memory.

14. The method as in claim 12 , wherein to store the resource to the non-volatile memory additionally includes to store the resource to the volatile memory.

15. The method as in claim 12 , determining whether the resource is to be stored to the non-volatile memory includes determining whether the resource is a static resource or a dynamic resource.

16. The method as in claim 15 , wherein the resource is a static resource and includes static texture data or the resource is a dynamic resource and includes a constant buffer, a dynamic vertex buffer, or a dynamic texture.

17. A graphics processor comprising:

one or more graphics processing resources;

a volatile memory coupled with the one or more graphics processing resources; and

an interface to couple a non-volatile memory to the one or more graphics processing resources and the volatile memory, the one or more graphics processing resources to:

receive a request to create a resource for use by the one or more graphics processing resources;

determine whether the resource is to be stored to the non-volatile memory;

store the resource to the non-volatile memory in response to a determination that the resource is to be stored to the non-volatile memory; and

store the resource to the volatile memory in response to a determination that the resource is not to be stored to the non-volatile memory.

18. The graphics processor as in claim 17 , wherein the one or more graphics processing resources are additionally to store the resource to the non-volatile memory and the volatile memory in response to the determination that the resource is to be stored to the non-volatile memory.

19. The graphics processor as in claim 17 , wherein to store the resource to the non-volatile memory additionally includes to store the resource to the volatile memory.

20. The graphics processor as in claim 17 , wherein the determination that the resource is to be stored to the non-volatile memory is based on a determination of whether the resource is a static resource or a dynamic resource, wherein the resource is a static resource and includes static texture data or the resource is a dynamic resource and includes a constant buffer, a dynamic vertex buffer, or a dynamic texture.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2020
From: SCHLUESSLER, TRAVIS; WATERS, ZACK; MOIDEL, CHARLES; APODACA, MICHAEL; RAMADOSS, MURALI
To: INTEL CORPORATION
Reel/Frame 053345/0881 →
Cited By (1)
US 12,320,630