US2023111125A1PendingUtilityA1
Application programming interface for scan operations
Est. expiryOct 8, 2041(~15.2 yrs left)· nominal 20-yr term from priority
G06F 9/5044G06F 9/5061G06F 9/541
57
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Apparatuses, systems, and techniques to perform parallel processing. In at least one embodiment, a parallel processing algorithm for performing an additive prefix scan is selected from a plurality of alternatives based on an arrangement of a group of threads provided to perform the scan.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A processor comprising: one or more circuits to cause one or more software algorithms to be selected based, at least in part, on how threads are to communicate with each other.
2 . The processor of claim 1 , wherein the one or more software algorithms perform a scan operation on a series of numbers.
3 . The processor of claim 1 , wherein the one or more software algorithms are selected based at least in part on whether the threads are assigned to a single core and are identified with contiguous identifiers.
4 . The processor of claim 1 , wherein the one or more software algorithms are selected based at least in part on whether the threads are assigned to multiple cores and are identified with contiguous identifiers.
5 . The processor of claim 1 , wherein the one or more software algorithms are selected based at least in part on whether the threads are identified with non-contiguous identifiers.
6 . The processor of claim 1 , wherein the one or more software algorithms are selected based at least in part on available communication mechanisms between individual threads of the threads.
7 . The processor of claim 1 , wherein the processor receives, via an application programming interface, a request to perform a scan operation with a group of threads.
8 . The processor of claim 1 , wherein:
the processor is a GPU with a plurality of cores; each core of the plurality of cores supports a maximum number of threads; and the one or more software algorithms are selected based at least in part on whether a number of threads is greater than the maximum number of threads.
9 . The processor of claim 1 , wherein the processor runs a kernel that corresponds to the selected one or more software algorithms.
10 . A computer-implemented method, comprising causing one or more software algorithms to be selected based, at least in part, on how threads are to communicate with each other.
11 . The computer-implemented method of claim 10 , wherein the one or more software algorithms perform a scan operation on a series of numbers.
12 . The computer-implemented method of claim 10 , wherein the one or more software algorithms are selected based at least in part on whether the threads are assigned to a single core and are identified with contiguous identifiers.
13 . The computer-implemented method of claim 10 , wherein the one or more software algorithms are selected based at least in part on whether the threads are assigned to multiple cores and are identified with contiguous identifiers.
14 . The computer-implemented method of claim 10 , wherein the one or more software algorithms are selected based at least in part on whether the threads are identified with non-contiguous identifiers.
15 . The computer-implemented method of claim 10 , wherein the one or more software algorithms are selected based at least in part on available communication mechanisms between individual threads of the threads.
16 . The computer-implemented method of claim 10 , further comprising receiving, via an application programming interface, a request to perform a scan operation with a group of threads.
17 . The computer-implemented method of claim 10 , wherein the one or more software algorithms are selected based at least in part on whether a number of threads is greater than a maximum number of threads able to be run simultaneously by a processor core.
18 . The computer-implemented method of claim 10 , further comprising running a kernel that corresponds to the selected one or more software algorithms.
19 . A computer system comprising one or more processors and memory storing executable instructions that, as a result of being performed by the one or more processors, cause the computer system to cause one or more software algorithms to be selected based, at least in part, on how threads are to communicate with each other.
20 . The computer system of claim 19 , wherein the one or more software algorithms perform a scan operation on a series of numbers.
21 . The computer system of claim 19 , wherein the one or more software algorithms are selected based at least in part on whether the threads are assigned to a single core and are identified with contiguous identifiers.
22 . The computer system of claim 19 , wherein the one or more software algorithms are selected based at least in part on whether the threads are assigned to multiple cores and are identified with contiguous identifiers.
23 . The computer system of claim 19 , wherein the one or more software algorithms are selected based at least in part on whether the threads are identified with non-contiguous identifiers.
24 . The computer system of claim 19 , wherein the one or more software algorithms are selected based at least in part on available communication mechanisms between individual threads of the threads.
25 . The computer system of claim 19 , wherein the one or more processors receive, via an application programming interface, a request to perform a scan operation with a group of threads.
26 . The computer system of claim 19 , wherein:
the one or more processors includes a GPU with a plurality of cores; each core of the plurality of cores supports a maximum number of threads; and the one or more software algorithms are selected based at least in part on whether a number of threads is greater than the maximum number of threads.
27 . The computer system of claim 19 , wherein the one or more processors run a kernel that corresponds to the selected one or more software algorithms.
28 . A machine-readable medium having stored thereon a set of instructions, which if performed by one or more processors, cause one or more software algorithms to be selected based, at least in part, on how threads are to communicate with each other.
29 . The machine-readable medium of claim 28 , wherein the one or more software algorithms perform a scan operation on a series of numbers.
30 . The machine-readable medium of claim 28 , wherein the one or more software algorithms are selected based at least in part on whether the threads are assigned to a single core and are identified with contiguous identifiers.
31 . The machine-readable medium of claim 28 , wherein the one or more software algorithms are selected based at least in part on whether the threads are assigned to multiple cores and are identified with contiguous identifiers.
32 . The machine-readable medium of claim 28 , wherein the one or more software algorithms are selected based at least in part on whether the threads are identified with non-contiguous identifiers.
33 . The machine-readable medium of claim 28 , wherein the one or more software algorithms are selected based at least in part on available communication mechanisms between individual threads of the threads.
34 . The machine-readable medium of claim 28 , wherein the one or more processors receive, via an application programming interface, a request to perform a scan operation with a group of threads.
35 . The machine-readable medium of claim 28 , wherein:
the one or more processors includes a GPU with a plurality of cores; each core of the plurality of cores supports a maximum number of threads; and the one or more software algorithms are selected based at least in part on whether a number of threads is greater than the maximum number of threads.
36 . The machine-readable medium of claim 28 , wherein the one or more processors run a kernel that corresponds to the selected one or more software algorithms.Join the waitlist — get patent alerts
Track US2023111125A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.