Parallel Processing Of Data
US-2024338235-A1 · Oct 10, 2024 · US
US9513923B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9513923-B2 |
| Application number | US-201213436594-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 30, 2012 |
| Priority date | Jul 18, 2008 |
| Publication date | Dec 6, 2016 |
| Grant date | Dec 6, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
One embodiment of the present invention sets forth a technique for associating arbitrary parallel processing unit (PPU) contexts with a given central processing unit (CPU) thread. The technique introduces two operators used to manage the PPU contexts. The first operator is a PPU context push, which causes a PPU driver to store the current PPU context of a calling thread on a PPU context stack and to associate a named PPU context with the calling thread. The second operator is a PPU context pop, which causes the PPU driver to restore the PPU context of a calling function to the PPU context at the top of the PPU context stack. By performing a PPU context push at the beginning of a function and a PPU context pop prior to returning from the function, the function may execute within a single CPU thread, but operate on a two distinct PPU contexts.
Opening claim text (preview).
I claim: 1. A method for preserving a processing context associated with a processing thread, the method comprising: receiving from a first CPU thread executing on a central processing unit (CPU) a request to store a first processing context associated with the first CPU thread, the first processing context being related to a first PPU thread executing on a first parallel processing unit (PPU); storing the first processing context; associating a second processing context with the first CPU thread, the second processing context being related to a second PPU thread executing on a second PPU; and returning execution to the first CPU thread. 2. The method of claim 1 , wherein the request comprises an application programming interface function call. 3. The method of claim 1 , wherein the step of storing the first processing context comprises pushing the first processing context onto a stack. 4. The method of claim 3 , further comprising the steps of: receiving from a second CPU thread executing on the CPU a request to store the second processing context; storing the second processing context; associating a third processing context with the second CPU thread, the third processing context being related to a third PPU thread executing on a third PPU; and returning execution to the second CPU thread. 5. The method of claim 4 , wherein the first processing context resides within a PPU thread program, and the second processing context resides within a library. 6. The method of claim 5 , wherein the step of storing the second processing context comprises pushing the second processing context onto the stack on top of the first processing context. 7. The method of claim 6 , further comprising the steps of: receiving a request from the second CPU thread to restore the second processing context; retrieving the second processing context from the top of the stack; associating the second processing context with the second CPU thread; and returning execution to the second CPU thread. 8. The method of claim 1 , further comprising the steps of: receiving a request from the first CPU thread to restore the first processing context; retrieving the first processing context; associating the first processing context with the first CPU thread; and returning execution to the first CPU thread. 9. The method of claim 8 , wherein the step of retrieving the first processing context comprises popping the first processing context from the top of a stack. 10. A non-transitory computer-readable medium including instructions that, when executed by a processing unit, cause the processing unit to preserve a processing context associated with a processing thread, by performing the steps of: receiving from a first CPU thread executing on a central processing unit (CPU) a request to store a first processing context associated with the first CPU thread, the first processing context being related to a first parallel processing unit (PPU) thread; storing the first processing context; associating a second processing context with the first CPU thread, the second processing context being related to a second PPU thread; and returning execution to the first CPU thread. 11. The non-transitory computer-readable medium of claim 10 , wherein the request comprises an application programming interface function call. 12. The non-transitory computer-readable medium of claim 10 , wherein the step of storing the first processing context comprises pushing the first processing context onto a stack. 13. The non-transitory computer-readable medium of claim 12 , further comprising the steps of: receiving from a second CPU thread executing on the CPU a request to store the second processing context; storing the second processing context; associating a third processing context with the second CPU thread, the third processing context being related to a third PPU thread executing on a third PPU; and returning execution to the second CPU thread. 14. The non-transitory computer-readable medium of claim 13 , wherein the first processing context resides within a PPU thread program, and the second processing context resides within a library. 15. The non-transitory computer-readable medium of claim 14 , wherein the step of storing the second processing context comprises pushing the second processing context onto the stack on top of the first processing context. 16. The non-transitory computer-readable medium of claim 15 , further comprising the steps of: receiving a request from the second CPU thread to restore the second processing context; retrieving the second processing context from the top of the stack; associating the second processing context with the second CPU thread; and returning execution to the second CPU thread. 17. The non-transitory computer-readable medium of claim 10 , further comprising the steps of: receiving a request from the first CPU thread to restore the first processing context; retrieving the first processing context; associating the first processing context with the first CPU thread; and returning execution to the first CPU thread. 18. The non-transitory computer-readable medium of claim 17 , wherein the step of retrieving the first processing context comprises popping the first processing context from the top of a stack. 19. A computing device configured to preserve a processing context associated with a processing thread, the computing device comprising: a memory; a central processing unit (CPU) coupled to the memory; a parallel processing unit (PPU) coupled to the central processing unit; and a parallel processing unit driver configured to: receive a request from a first CPU thread executing on the CPU to store a first processing context associated with the first CPU thread, the first processing context being related to a first PPU thread executing on a first PPU; store the processing context; associate a second processing context with the first CPU thread, the second processing context being related to a second PPU thread executing on a second PPU; and return execution to the first CPU thread executing on the CPU. 20. The method of claim 1 , wherein the request comprises a reference to the second processing context. 21. The method of claim 1 , wherein the first processing context is used by a third PPU thread executing on a third PPU.
controlled by a single instruction for multiple data lanes [SIMD] · CPC title
from multiple instruction streams, e.g. multistreaming · CPC title
Saving or restoring of program or task context · CPC title
controlled by a single instruction for multiple threads [SIMT] in parallel · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.