Application programming interface to indicate kernel dependencies
Apparatuses, systems, and techniques to perform an application programming interface (API) to add one or more graph nodes to a software graph, wherein the API is to cause a kernel node to be added to a software graph based, at least in part, on a dependency type indicated by the API. In at least one embodiment, one or more nodes are added to a graph in accordance to one or more dependency types.
1 . One or more processors, comprising:
circuitry to:
receive an application programming interface (API) call comprising one or more input parameters indicating a kernel node of a software graph, the software graph indicating processor-performable operations and one or more dependencies among the processor-performable operations; and
in response to the API call, cause the kernel node to be added to the software graph based, at least in part, on a dependency type indicated by the one or more input parameters, the dependency type indicating one or more constraints on scheduling a first operation corresponding to the kernel node and a second operation corresponding to a graph node.
2 . The one or more processors of claim 1 , wherein the circuitry is to, in response to the API call, cause the kernel node to be added to the software graph, based, at least in part, on the dependency type, one or more edges of the software graph, the one or more edges to or from the kernel node.
3 . The one or more processors of claim 1 , wherein the API call is to further indicate a port identifier of a node associated with the kernel node.
4 . The one or more processors of claim 1 , wherein the circuitry is to cause the kernel node to be added to the software graph by identifying one or more graph nodes of the software graph dependent to or dependent on the kernel node.
5 . The one or more processors of claim 1 , wherein the dependency type includes one or more of a full execution dependency, a launch order dependency, a fast dependent launch, or an anti-deadlock dependency.
6 . The one or more processors of claim 1 , wherein the kernel node is to be performed by one or more graphics processing units (GPUs) based, at least in part, on the dependency type.
7 . The one or more processors of claim 1 , wherein the API call is to receive a set of parameters comprising an identifier of the kernel node and dependency information corresponding to the dependency type.
8 . A computer-implemented method comprising:
receiving an application programming interface (API) call comprising one or more input parameters that indicates a kernel node of a software graph that indicates one or more processor-performable operations, one or more dependencies among two or more processor-performable operations, and one or more dependency types associated with the one or more dependencies; and
in response to the API call, causing the kernel node to be added to the software graph to have the one or more dependencies according to the one or more dependency types, the one or more dependency types indicating one or more constraints on scheduling the two or more processor-performable operations.
9 . The computer-implemented method of claim 8 , wherein the API is to cause the kernel node to be added to the software graph, based, at least in part, on the one or more dependency types, one or more edges of the software graph, the one or more edges to or from the kernel node.
10 . The computer-implemented method of claim 8 , wherein the API is to further indicate a port identifier of a node associated with the kernel node.
11 . The computer-implemented method of claim 8 , wherein the one or more dependency types includes one or more of a full execution dependency, a launch order dependency, or an anti-deadlock dependency.
12 . The computer-implemented method of claim 8 , wherein the kernel node is to be performed by one or more graphics processing units (GPUs) based, at least in part, on the one or more dependency types.
13 . The computer-implemented method of claim 8 , wherein the API is to receive a set of parameters comprising an identifier of the kernel node and dependency information corresponding to the one or more dependency types.
14 . The computer-implemented method of claim 8 , wherein the API is to cause the kernel node to be added to the software graph by identifying one or more graph nodes of the software graph dependent to or dependent on the kernel node.
15 . A computer system comprising:
one or more processors and memory storing executable instructions that, if performed by the one or more processors, are to:
receive an application programming interface (API) call comprising one or more input parameters indicating a kernel node of a software graph, the software graph indicating processor-performable operations and one or more dependencies among the processor-performable operations; and
in response to the API call, cause the kernel node to be added to the software graph, based, at least in part, on a dependency type indicated by the one or more input parameters, the dependency type indicating one or more constraints on scheduling a first operation corresponding to the kernel node and a second operation corresponding to a graph node.
16 . The computer system of claim 15 , wherein the one or more processors are to cause the kernel node to be added to the software graph, based, at least in part, on the dependency type, one or more edges of the software graph, the one or more edges to or from the kernel node.
17 . The computer system of claim 15 , wherein the one or more processors are to further indicate a port identifier of a node associated with the kernel node.
18 . The computer system of claim 15 , wherein the one or more processors are to cause the kernel node to be added to the software graph by identifying one or more graph nodes of the software graph dependent to or dependent on the kernel node.
19 . The computer system of claim 15 , wherein the dependency type includes one or more of a full execution dependency, a launch order dependency, or an anti-deadlock dependency.
20 . The computer system of claim 15 , wherein the API call is to receive a set of parameters comprising an identifier of the kernel node and dependency information corresponding to the dependency type.