Dynamically reducing latency in processing pipelines

US11922533B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11922533-B2
Application numberUS-202117448258-A
CountryUS
Kind codeB2
Filing dateSep 21, 2021
Priority dateSep 21, 2021
Publication dateMar 5, 2024
Grant dateMar 5, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A weighted average execution time associated with each execution stage of a plurality of execution stages used to process a plurality of frames in parallel is obtained. The processing of each of the plurality of frames is performed at each of the plurality of execution stages in a sequential order, starting with an initial execution stage and continuing with each subsequent execution stage. A first largest weighted average execution time associated with one of the plurality of execution stages is determined. A delay to the initial execution stage prior to processing a first next frame is applied. The delay is determined based on the first largest weighted average execution time.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: obtaining a weighted average execution time associated with each execution stage of a plurality of execution stages used to process a plurality of frames in parallel, wherein the plurality of frames are processed at each of the plurality of execution stages in a sequential order, starting with an initial execution stage and continuing with each subsequent execution stage; determining a first largest weighted average execution time associated with one of the plurality of execution stages; and applying a delay to the initial execution stage prior to processing a first next frame, wherein the delay is substantially equivalent to a difference between the first largest weighted average execution time and an execution time of a previous frame in the initial execution stage of the plurality of execution stages. 2. The method of claim 1 , further comprising: updating, upon processing the first next frame in at least one execution stage of the plurality of execution stages, an weighted average execution time of the at least one execution stage of the plurality of execution stages; determining a second largest weighted average execution time in view of the updated weighted average execution time of the at least one execution stage; and updating the delay to be applied to the initial execution stage based on the second largest weighted average execution time. 3. The method of claim 1 , further comprising: adjusting, prior to processing subsequent frames to a third next frame, the delay to be applied to the initial execution stage based on a period of time between (i) processing of a second next frame at an execution stage preceding an execution stage associated with the first largest weighted average execution time and (ii) processing of the first next frame at the execution stage associated with the first largest weighted average execution time. 4. The method of claim 3 , wherein adjusting the delay comprises: determining that the period of time between (i) processing of the second next frame at the execution stage preceding the execution stage associated with the first largest weighted average execution time and (ii) processing of the first next frame at the execution stage associated with the first largest weighted average execution time is greater than zero; and increasing the delay until the period of time between (i) processing of a second subsequent frame at the execution stage preceding the execution stage associated with the first largest weighted average execution time and (ii) processing of a first subsequent frame at the execution stage associated with the first largest weighted average execution time is equal to a predefined minimum value. 5. The method of claim 3 , wherein adjusting the delay comprises: determining that the period of time between (i) processing of the second next frame at the execution stage preceding the execution stage associated with the first largest weighted average execution time and (ii) processing of the first next frame at the execution stage associated with the first largest weighted average execution time is less than zero; and decreasing the delay until the period of time between (i) processing of a second subsequent frame at the execution stage preceding the execution stage associated with the first largest weighted average execution time and (ii) processing of a first subsequent frame at the execution stage associated with the first largest weighted average execution time is equal to a predefined minimum value. 6. The method of claim 5 , wherein the predefined minimum value indicates there is no delay or queue between processing of the second subsequent frame at the execution stage preceding the execution stage associated with the first largest weighted average execution time and processing of the first subsequent frame at the execution stage associated with the first largest weighted average execution time processing. 7. The method of claim 3 , wherein adjusting the delay comprises: receiving, using a proportional-integral-derivative (PID) controller, the period of time between processing of the second next frame at the execution stage preceding the execution stage associated with the first largest weighted average execution time and processing of the first next frame at the execution stage associated with the first largest weighted average execution time; and outputting, using the PID controller, an adjustment value to be applied to the delay based on the period of time matching a predefined minimum value; and applying the adjustment value to the delay. 8. A system comprising: one or more processing units to: obtain an weighted average execution time associated with each execution stage of a plurality of execution stages used to process a plurality of frames in parallel, wherein the plurality of frames are processed at each of the plurality of execution stages in a sequential order, starting with an initial execution stage and continuing with each subsequent execution stage; determine a first largest weighted average execution time associated with one of the plurality of execution stages; and apply a delay to the initial execution stage prior to processing a first next frame, wherein the delay is substantially equivalent to a difference between the first largest weighted average execution time and an execution time of a previous frame in the initial execution stage of the plurality of execution stages. 9. The system of claim 8 , wherein the one or more processing units further: update, upon processing the first next frame in at least one execution stage of the plurality of execution stages, an weighted average execution time of the at least one execution stage of the plurality of execution stages; determine a second largest weighted average execution time in view of the updated weighted average execution time of the at least one execution stage; and update the delay to be applied to the initial execution stage based on the second largest weighted average execution time. 10. The system of claim 8 , wherein the one or more processing units further: adjust, prior to processing subsequent frames to a third next frame, the delay to be applied to the initial execution stage based on a period of time between (i) processing of a second next frame at an execution stage preceding an execution stage associated with the first largest weighted average execution time and (ii) processing of the first next frame at the execution stage associated with the first largest weighted average execution time. 11. The system of claim 10 , wherein to adjust the delay, the one or more processing units further: determine that the period of time between (i) processing of the second next frame at the execution stage preceding the execution stage associated with the first largest weighted average execution time and (ii) processing of the first next frame at the execution stage associated with the first largest weighted average execution time is greater than zero; and increase the delay until the period of time between (i) processing of a second subsequent frame at the execution stage preceding the execution stage associated with the first largest weighted average execution time and (ii) processing of a first subsequent frame at the execution stage associated with the first largest weighted average execution time is equal to a predefined minimum value. 12. The system of claim 10 , wherein to adjust the delay, the one or more processing units further: determine that the period of time between (i) processing of the second next frame at the execution stage preceding the execution stage of the plurality of ex

Assignees

Inventors

Classifications

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title

  • Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title

  • involving deadlines, e.g. rate based, periodic · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11922533B2 cover?
A weighted average execution time associated with each execution stage of a plurality of execution stages used to process a plurality of frames in parallel is obtained. The processing of each of the plurality of frames is performed at each of the plurality of execution stages in a sequential order, starting with an initial execution stage and continuing with each subsequent execution stage. A f…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 05 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).