-
公开(公告)号:US10977037B2
公开(公告)日:2021-04-13
申请号:US16595398
申请日:2019-10-07
Applicant: NVIDIA Corporation
Inventor: Ajay Sudarshan Tirumala , Olivier Giroux , Peter Nelson , Jack Choquette
Abstract: In one embodiment, a synchronization instruction causes a processor to ensure that specified threads included within a warp concurrently execute a single subsequent instruction. The specified threads include at least a first thread and a second thread. In operation, the first thread arrives at the synchronization instruction. The processor determines that the second thread has not yet arrived at the synchronization instruction and configures the first thread to stop executing instructions. After issuing at least one instruction for the second thread, the processor determines that all the specified threads have arrived at the synchronization instruction. The processor then causes all the specified threads to execute the subsequent instruction. Advantageously, unlike conventional approaches to synchronizing threads, the synchronization instruction enables the processor to reliably and properly execute code that includes complex control flows and/or instructions that presuppose that threads are converged.
-
公开(公告)号:US20210012552A1
公开(公告)日:2021-01-14
申请号:US17032818
申请日:2020-09-25
Applicant: NVIDIA Corporation
Inventor: Samuli LAINE , Tero Karras , Timo Aila , Robert Ohannessian , William Parsons Newhall, JR. , Greg Muthler , Ian Kwong , Peter Nelson , John Burgess
Abstract: A hardware-based traversal coprocessor provides acceleration of tree traversal operations searching for intersections between primitives represented in a tree data structure and a ray. The primitives may include triangles used in generating a virtual scene. The hardware-based traversal coprocessor is configured to properly handle numerically challenging computations at or near edges and/or vertices of primitives and/or ensure that a single intersection is reported when a ray intersects a surface formed by primitives at or near edges and/or vertices of the primitives.
-
公开(公告)号:US10885698B2
公开(公告)日:2021-01-05
申请号:US16101232
申请日:2018-08-10
Applicant: NVIDIA Corporation
Inventor: Greg Muthler , Ronald Charles Babich, Jr. , William Parsons Newhall, Jr. , Peter Nelson , James Robertson , John Burgess
Abstract: In a ray tracer, to prevent any long-running query from hanging the graphics processing unit, a traversal coprocessor provides a preemption mechanism that will allow rays to stop processing or time out early. The example non-limiting implementations described herein provide such a preemption mechanism, including a forward progress guarantee, and additional programmable timeout options that can be time or cycle based. Those programmable options provide a means for quality of service timing guarantees for applications such as virtual reality (VR) that have strict timing requirements.
-
公开(公告)号:US10817295B2
公开(公告)日:2020-10-27
申请号:US15582549
申请日:2017-04-28
Applicant: NVIDIA CORPORATION
Inventor: Olivier Giroux , Peter Nelson , Jack Choquette , Ajay Sudarshan Tirumala
Abstract: A streaming multiprocessor (SM) includes a nanosleep (NS) unit configured to cause individual threads executing on the SM to sleep for a programmer-specified interval of time. For a given thread, the NS unit parses a NANOSLEEP instruction and extracts a sleep time. The NS unit then maps the sleep time to a single bit of a timer and causes the thread to sleep. When the timer bit changes, the sleep time expires, and the NS unit awakens the thread. The thread may then continue executing. The SM also includes a nanotrap (NT) unit configured to issue traps using a similar timing mechanism to that described above. For a given thread, the NT unit parses a NANOTRAP instruction and extracts a trap time. The NT unit then maps the trap time to a single bit of a timer. When the timer bit changes, the NT unit issues a trap.
-
公开(公告)号:US10437593B2
公开(公告)日:2019-10-08
申请号:US15499843
申请日:2017-04-27
Applicant: NVIDIA Corporation
Inventor: Ajay Sudarshan Tirumala , Olivier Giroux , Peter Nelson , Jack Choquette
Abstract: A synchronization instruction causes a processor to ensure that specified threads included within a warp concurrently execute a single subsequent instruction. The specified threads include at least a first thread and a second thread. In operation, the first thread arrives at the synchronization instruction. The processor determines that the second thread has not yet arrived at the synchronization instruction and configures the first thread to stop executing instructions. After issuing at least one instruction for the second thread, the processor determines that all the specified threads have arrived at the synchronization instruction. The processor then causes all the specified threads to execute the subsequent instruction. Advantageously, unlike conventional approaches to synchronizing threads, the synchronization instruction enables the processor to reliably and properly execute code that includes complex control flows and/or instructions that presuppose that threads are converged.
-
公开(公告)号:US12271765B2
公开(公告)日:2025-04-08
申请号:US17338377
申请日:2021-06-03
Applicant: NVIDIA CORPORATION
Inventor: Ajay Sudarshan Tirumala , Olivier Giroux , Peter Nelson , Gary M. Tarolli , Ankita Upreti , Konstantinos Kyriakopoulos , Divya Shanmughan , Rishkul Kulkarni
Abstract: Various embodiments include a parallel processing computer system that enables parallel instances of a program to synchronize at disparate addresses in memory. When the parallel program instances need to exchange data, the program instances synchronize based on a mask that identifies the program instances that are synchronizing. As each program instance reaches the point of synchronization, the program instance blocks and waits for all other program instances to reach the point of synchronization. When all program instances have reached the point of synchronization, at least one program instance executes a synchronous operation to exchange data. The program instances then continue execution at respective and disparate return addresses.
-
公开(公告)号:US20230298258A1
公开(公告)日:2023-09-21
申请号:US18198949
申请日:2023-05-18
Applicant: NVIDIA Corporation
Inventor: Samuli LAINE , Tero Karras , Timo Aila , Robert Ohannessian , William Parsons Newhall, JR. , Greg Muthler , Ian Kwong , Peter Nelson , John Burgess
CPC classification number: G06T15/06 , G06T15/005
Abstract: A hardware-based traversal coprocessor provides acceleration of tree traversal operations searching for intersections between primitives represented in a tree data structure and a ray. The primitives may include triangles used in generating a virtual scene. The hardware-based traversal coprocessor is configured to properly handle numerically challenging computations at or near edges and/or vertices of primitives and/or ensure that a single intersection is reported when a ray intersects a surface formed by primitives at or near edges and/or vertices of the primitives.
-
公开(公告)号:US20220230380A1
公开(公告)日:2022-07-21
申请号:US17716599
申请日:2022-04-08
Applicant: NVIDIA Corporation
Inventor: Samuli Laine , Tero Karras , Timo Aila , Robert Ohannessian , William Parsons Newhall, JR. , Greg Muthler , Ian Kwong , Peter Nelson , John Burgess
Abstract: A hardware-based traversal coprocessor provides acceleration of tree traversal operations searching for intersections between primitives represented in a tree data structure and a ray. The primitives may include triangles used in generating a virtual scene. The hardware-based traversal coprocessor is configured to properly handle numerically challenging computations at or near edges and/or vertices of primitives and/or ensure that a single intersection is reported when a ray intersects a surface formed by primitives at or near edges and/or vertices of the primitives.
-
公开(公告)号:US11061741B2
公开(公告)日:2021-07-13
申请号:US16513393
申请日:2019-07-16
Applicant: NVIDIA CORPORATION
Inventor: Peter Nelson , Olivier Giroux , Ajay Sudarshan Tirumala
Abstract: Techniques are disclosed for reducing the latency associated with performing data reductions in a multithreaded processor. In response to a single instruction associated with a set of threads executing in the multithreaded processor, a warp reduction unit acquires register values stored in source registers, where each register value is associated with a different thread included in the set of threads. The warp reduction unit performs operation(s) on the register values to compute an aggregate value. The warp reduction unit stores the aggregate value in a destination register that is accessible to at least one of the threads in the set of threads. Because the data reduction is performed via a single instruction using hardware specialized for data reductions, the number of cycles required to perform the data reduction is decreased relative to prior-art techniques that are performed via multiple instructions using hardware that is not specialized for data reductions.
-
20.
公开(公告)号:US20210090319A1
公开(公告)日:2021-03-25
申请号:US17111844
申请日:2020-12-04
Applicant: NVIDIA Corporation
Inventor: Greg Muthler , Ronald Charles Babich, JR. , William Parsons Newhall, JR. , Peter Nelson , James Robertson , John Burgess
Abstract: In a ray tracer, to prevent any long-running query from hanging the graphics processing unit, a traversal coprocessor provides a preemption mechanism that will allow rays to stop processing or time out early. The example non-limiting implementations described herein provide such a preemption mechanism, including a forward progress guarantee, and additional programmable timeout options that can be time or cycle based. Those programmable options provide a means for quality of service timing guarantees for applications such as virtual reality (VR) that have strict timing requirements.
-
-
-
-
-
-
-
-
-