IP Library › Granted Patent US 9,015,643
Granted Patent B2
US 9,015,643 · App. 13/844,437 · Granted Apr 21, 2015

System, method, and computer program product for applying a callback function to data values

Inventor: Robert Anthony Alfieri (Chapel Hill, NC)
Assignee: NVIDIA Corporation
G06F17/5045G06F17/5036G06F17/5022
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 9,015,643
App. No.
13/844,437
Granted
Apr 21, 2015
Kind
B2
Abstract

A system, method, and computer program product are provided for applying a callback function to data values. In use, a plurality of data values and a callback function are identified. Additionally, the callback function is recursively applied to the plurality of data values in order to determine a result. Further, the result is returned.

Claims (29)

1. A method, comprising:

identifying, by a processor, a callback function and a plurality of data values corresponding to signals of a hardware design;

providing the plurality of data values and the callback function to a compute construct, wherein the compute construct is configured to check that an unconnected data flow is indicated as a deferred data flow and comprises a first parameter configured to perform control of data flow through the hardware design by automatically stalling an input data flow within the compute construct; and

executing, by the processor, the compute construct to recursively apply the callback function to the plurality of data values in order to determine a result.

2. The method of claim 1 , wherein the plurality of data values include subflows within a numerical hierarchy data flow.

3. The method of claim 1 , wherein applying the callback function to the plurality of data values includes performing a reduction operation on the plurality of data values.

4. The method of claim 1 , wherein applying the callback function to the plurality of data values includes identifying the each of the plurality of data values as leaf nodes of a tree-based data structure.

5. The method of claim 4 , wherein consecutive rounds of comparisons are performed by the callback function at each level of the tree-based structure until a single output is produced for a particular round of comparisons.

6. The method of claim 1 , wherein applying the callback function to the plurality of data values includes performing a first round of comparisons.

7. The method of claim 6 , wherein performing the first round of comparisons results in one or more outputs.

8. The method of claim 6 , wherein the first round of comparisons are performed at a first level of a tree-based data structure.

9. The method of claim 1 , wherein applying the callback function to the plurality of data values includes performing a second round of comparisons.

10. The method of claim 1 , wherein applying the callback function to the plurality of data values is performed by a tree function included within the compute construct.

11. The method of claim 10 , wherein the tree function is utilized by one or more of a Min( )function that returns a minimum value from a hierarchical data flow with multiple numerically named subflows and a Max( )function that returns a maximum value from a hierarchical data flow with multiple numerically named subflows.

12. The method of claim 10 , wherein the tree function is utilized by one or more of a Prio_Min( )function that returns a minimum priority value from a numerical hierarchy data flow containing priority values and a Prio_Max( )function that returns a maximum priority value from a numerical hierarchy data flow containing priority values.

13. The method of claim 1 , wherein the tree function is utilized by a scatter-gather function.

14. The method of claim 1 , wherein the callback function represents a combinational circuit function configured to operate on the input data flow.

15. The method of claim 1 , wherein the compute construct further comprises a second parameter that is configured to perform control a depth of an output first-in first-out buffer for each output data flow.

16. The method of claim 1 , wherein the compute construct further comprises a second parameter that is configured to register an output data flow.

17. The method of claim 1 , wherein the compute construct further comprises a second parameter that is configured to register a ready signal of an output data flow.

18. A computer program product embodied on a non-transitory computer readable medium, comprising:

code for identifying a callback function and a plurality of data values corresponding to signals of a hardware design;

code for providing the plurality of data values and the callback function to a compute construct, wherein the compute construct is configured to check that an unconnected data flow is indicated as a deferred data flow and comprises a first parameter configured to perform control of data flow through the hardware design by automatically stalling an input data flow within the compute construct; and

code for recursively applying the callback function to the plurality of data values in order to determine a result.

19. A system, comprising:

a processor configured to:

identify a callback function and a plurality of data values corresponding to signals of a hardware design,

provide the plurality of data values and the callback function to a compute construct, wherein the compute construct is configured to check that an unconnected data flow is indicated as a deferred data flow and comprises a first parameter configured to perform control of data flow through the hardware design by automatically stalling an input data flow within the compute construct; and

execute the compute construct to recursively apply the callback function to the plurality of data values in order to determine a result.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2013
From: ALFIERI, ROBERT ANTHONY
To: NVIDIA CORPORATION
Reel/Frame 031439/0330 →
Continuity (1)
Related Publication 20140282313A1 · Sep 18, 2014