IP Library Granted Patent US 12705062
Granted Patent B2
US 12705062 · App. 17/508,290 · Granted Aug 11, 2026

Application programming interface to configure processor partitioning

Inventors: Kyrylo Perelygin (San Jose, CA); Alicia Xiao Hu (Santa Clara, CA)
Assignee: NVIDIA Corporation
G06F9/3891G06F9/3851G06F9/3888G06F9/4843G06F9/5027G06F9/5066G06T1/20G06F2209/501G06F2209/5014G06F2209/5018G06F2209/506
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 12705062
App. No.
17/508,290
Granted
Aug 11, 2026
Kind
B2
Abstract

Apparatuses, systems, and techniques to configure processor partitioning for a multi-process service. In at least one embodiment, a multi-process service configures a set of streaming multiprocessors of one or more parallel processing units to perform one or more threads in response to an application programming interface (API).

Claims (35)

1 . One or more processors comprising:

circuitry to, in response to an application programming interface (API) call, configure one or more graphics processing units (GPUs) to perform two or more threads of a client process in parallel using a subset of streaming multiprocessors of the one or more GPUs, wherein the subset is less than all streaming multiprocessors of the one or more GPUs and is limited based, at least in part, on one or more constraints on a maximum number of streaming multiprocessors indicated by one or more parameters to the API.

2 . The one or more processors of claim 1 , wherein the API is to cause a multi-process service (MPS) to indicate a configuration usable to configure the one or more GPUs, the configuration comprising information indicating a property of a set of the streaming multiprocessors of the one or more GPUs to perform at least one of the two or more threads.

3 . The one or more processors of claim 1 , wherein the API is to cause a multi-process service (MPS) to configure the one or more GPUs by indicating to the one or more GPUs one or more values to select a first subset of a set of GPU streaming multiprocessors to perform a first of the two or more threads and a second subset of a set of GPU streaming multiprocessors to perform a second of the two or more threads.

4 . The one or more processors of claim 1 , wherein the API is to configure the one or more GPUs by indicating one or more values to select one or more streaming multiprocessors of the one or more GPUs to perform at least one of the two or more threads.

5 . The one or more processors of claim 1 , wherein the one or more GPUs are to perform the two or more threads in parallel using a first set of streaming multiprocessors (SMs) to perform a first of the two or more threads and a second set of the SMs to perform a second of the two or more threads, the first set and the second set determined, based, at least in part, on a property indicated to the API to configure the one or more GPUs, wherein a number of SMs in the first set of SMs is limited, at least in part, by the one or more constraints and a number of SMs in the second set of SMs is limited, at least in part, by the one or more constraints.

6 . The one or more processors of claim 1 , wherein the API comprises at least a first function to indicate one or more properties to select the subset of streaming multiprocessors of the one or more GPUs and second function to cause information to be receivable about the subset.

7 . A graphics processing unit (GPU) comprising:

circuitry to be configured by one or more central processing units (CPUs) to, in response to an application programming interface (API) call, perform two or more threads of a client process in parallel using a subset of streaming multiprocessors of the one or more GPUs, wherein the subset is less than all streaming multiprocessors of the one or more GPUs and is limited based, at least in part, on one or more constraints on a maximum number of streaming multiprocessors indicated by one or more parameters to the API.

8 . The GPU of claim 7 , wherein the circuitry is to be configured in response to the API call, wherein a number of streaming multiprocessors in the subset of streaming multiprocessors is limited by the one or more constraints.

9 . The GPU of claim 7 , wherein the circuitry is to be configured in response to an indication to the API, the indication comprising data to select at least a streaming multiprocessor to perform at least one of the two or more threads.

10 . The GPU of claim 7 , wherein the circuitry is to be configured by reserving a first portion and a second portion of the circuitry to perform the two or more threads in parallel.

11 . The GPU of claim 7 , wherein the circuitry includes streaming multiprocessors of the GPU, where each of the streaming multiprocessors comprises a plurality of cores and memory.

12 . The GPU of claim 7 , wherein the circuitry is to perform the two or more threads in parallel using a first portion of the circuitry to perform a first of the two or more threads and a second portion of the circuitry to perform a second of the two or more threads, the first portion and the second portion determined based, at least in part, on a property indicated to the API to configure the circuitry.

13 . One or more processors comprising:

one or more central processing units (CPUs) and one or more graphics processing units (GPUs), wherein the one or more CPUs are to, in response to an application programming interface (API) call, configure the one or more GPUs to perform two or more threads of a client process in parallel using a subset of streaming multiprocessors of the one or more GPUs, wherein the subset is less than all streaming multiprocessors of the one or more GPUs and is limited based, at least in part, on one or more constraints on a maximum number of streaming multiprocessors indicated by one or more parameters to the API.

14 . The one or more processors of claim 13 , wherein the one or more GPUs are to be configured by reserving a subset of a set of streaming multiprocessors (SMs) to perform at least one of the two or more threads in response to the API call.

15 . The one or more processors of claim 13 , wherein the API comprises one or more functions to facilitate a multi-process service (MPS), the MPS serving at least a client to indicate the two or more threads to be performed in parallel and comprising a server to manage one or more GPU streaming multiprocessors of the one or more GPUs to perform the two or more threads in parallel.

16 . The one or more processors of claim 13 , wherein the API comprises one or more functions to facilitate a multi-process service (MPS), the one or more functions receiving data indicating a configuration to select at least a subset of a set of streaming multiprocessors (SMs) of the one or more GPUs to perform at least one of the two or more threads.

17 . The one or more processors of claim 13 , wherein the API is to cause a multi-process service (MPS) to indicate a configuration usable to configure the one or more GPUs, the configuration indicating one or more properties to select a subset of a set of streaming multiprocessors of the one or more GPUs to perform at least one of the two or more threads.

18 . The one or more processors of claim 13 , wherein the one or more GPUs each comprise a set of streaming multiprocessors (SMs) to be reserved to perform the two or more threads in parallel, the set of SMs to be reserved in response to the API call to configure the one or more GPUs.

19 . A machine-readable medium having stored thereon an application programming interface (API), which if performed by one or more processors, causes the one or more processors to at least:

in response to an API call, configure one or more graphics processing units (GPUs) to perform two or more threads of a client process in parallel using a subset of streaming multiprocessors of the one or more GPUs, wherein the subset is less than all streaming multiprocessors of the one or more GPUs and is limited based, at least in part, on one or more parameters of the API that indicate one or more constraints on a maximum number of streaming multiprocessors.

20 . The machine-readable medium of claim 19 , further comprising instructions, which if performed by the one or more processors, cause the one or more processors to configure the one or more GPUs by indicating a property of a subset of a set of streaming multiprocessors of the one or more GPUs to perform the two or more threads, the property of the set of streaming multiprocessors indicated to the API.

21 . The machine-readable medium of claim 19 , wherein the one or more GPUs are to be configured by reserving one or more streaming multiprocessors of each of the one or more GPUs to perform each of the two or more based, at least in part, on a property of the one or more streaming multiprocessors indicated as data to the API.

22 . The machine-readable medium of claim 19 , further comprising instructions, which if performed by the one or more processors, cause the one or more processors to perform a multi-process service (MPS), the MPS comprising a server to cause the one or more GPUs to be configured in response to the API, and a client is to indicate one or more data values to the API comprising information to configure the one or more GPUs.

23 . The machine-readable medium of claim 19 , wherein the two or more threads are to be performed in parallel by at least a first streaming multiprocessor (SM) of the one or more GPUs to perform a first of the two or more threads and a second SM of the one or more GPUs to perform a second of the two or more threads, the first SM and the second SM determined based, at least in part, on data indicated to the API call.

24 . The machine-readable medium of claim 19 , wherein the API is to cause a multi-process service (MPS) to configure the one or more GPUs in response to one or more indications by one or more clients to the API, the one or more indications usable to identify the subset of streaming multiprocessors of the one or more GPUs.

25 . A method comprising:

configuring one or more graphics processing units (GPUs) to, in response to an application programming interface (API) call, configure the one or more GPUs to perform two or more threads of a client process in parallel using a subset of streaming multiprocessors of the one or more GPUs, wherein the subset is less than all streaming multiprocessors of the one or more GPUs and is limited based, at least in part, on one or more parameters of the API that indicate one or more constraints on a maximum number of streaming multiprocessors.

26 . The method of claim 25 , further comprising configuring the one or more GPUs by reserving a first set of streaming multiprocessors of the one or more GPUs to perform a first of the two or more threads and reserving a second set of streaming multiprocessors of the one or more GPUs to perform a second of the two or more threads.

27 . The method of claim 25 , further comprising performing at least one of the two or more threads using a subset of a set of streaming multiprocessors of the one or more GPUs, a number of streaming multiprocessors in the subset limited based, at least in part, on the one or more constraints.

28 . The method of claim 25 , further comprising indicating data usable to configure the one or more GPUs to the API, where the API is to a multi-process service (MPS) and the MPS comprises at least a server to configure the one or more GPUs.

29 . The method of claim 25 , further comprising performing the two or more threads by a set of streaming multiprocessors (SMs) of the one or more GPUs, where the one or more GPUs are to be configured by reserving a subset of the set of SMs to perform at least one of the two or more threads.

30 . The method of claim 25 , wherein the two or more threads are a subset of the threads associated with a GPU context of the application.