cuda.core.graph.GraphDefinition#
- class cuda.core.graph.GraphDefinition#
A graph definition.
A GraphDefinition is used to construct a graph explicitly by adding nodes and specifying dependencies. Once construction is complete, call instantiate() to obtain an executable Graph.
Notes
Definitions that view the same root, child, or conditional graph hierarchy share underlying graph state. Mutations anywhere in that hierarchy must be externally synchronized.
Methods
- __init__()#
Create a new empty graph definition.
- allocate(
- self,
- size_t size,
- *,
- device: Device | int | None = None,
- memory_type: GraphMemoryType = GraphMemoryType.DEVICE,
- list peer_access: list[Device | int] | None = None,
Add an entry-point memory allocation node (no dependencies).
See
GraphNode.allocate()for full documentation.
- callback(
- self,
- fn,
- *,
- user_data=None,
Add an entry-point host callback node (no dependencies).
See
GraphNode.callback()for full documentation.
- create_condition(
- self,
- int default_value: int | None = None,
Create a condition variable for use with conditional nodes.
The returned
GraphConditionobject is passed to conditional-node builder methods. Its value is controlled at runtime by device code viacudaGraphSetConditional.- Parameters:
default_value (int, optional) – The default value to assign to the condition. If None, no default is assigned.
- Returns:
A condition variable for controlling conditional execution.
- Return type:
- deallocate(self, int dptr: int) FreeNode#
Add an entry-point memory free node (no dependencies).
See
GraphNode.deallocate()for full documentation.
- debug_dot_print(
- self,
- str path: str,
- options: GraphDebugPrintOptions | None = None,
Write a GraphViz DOT representation of the graph to a file.
- Parameters:
path (str) – File path for the DOT output.
options (GraphDebugPrintOptions, optional) – Customizable options for the debug print.
- edges(self) set[tuple[GraphNode, GraphNode]]#
Return all edges in the graph as (from_node, to_node) pairs.
- embed(
- self,
- GraphDefinition child: GraphDefinition,
Add an entry-point child graph node (no dependencies).
See
GraphNode.embed()for full documentation.
- empty(self) EmptyNode#
Add an entry-point empty node (no dependencies).
- Returns:
A new EmptyNode with no dependencies.
- Return type:
- if_else(
- self,
- GraphCondition condition: GraphCondition,
Add an entry-point if-else conditional node (no dependencies).
See
GraphNode.if_else()for full documentation.
- if_then(
- self,
- GraphCondition condition: GraphCondition,
Add an entry-point if-conditional node (no dependencies).
See
GraphNode.if_then()for full documentation.
- instantiate(
- self,
- options: GraphCompleteOptions | None = None,
Instantiate the graph definition into an executable Graph.
- Parameters:
options (
GraphCompleteOptions, optional) – Customizable dataclass for graph instantiation options.- Returns:
An executable graph that can be launched on a stream.
- Return type:
- launch(
- self,
- config: LaunchConfig,
- kernel: Kernel,
- *args,
Add an entry-point kernel launch node (no dependencies).
See
GraphNode.launch()for full documentation.
- memcpy(
- self,
- dst: Buffer | int,
- src: Buffer | int,
- size_t size,
- *,
- dst_owner=None,
- src_owner=None,
Add an entry-point memcpy node (no dependencies).
See
GraphNode.memcpy()for full documentation.
- memset(
- self,
- dst: Buffer | int,
- value,
- size_t width,
- size_t height=1,
- size_t pitch=0,
- *,
- dst_owner=None,
Add an entry-point memset node (no dependencies).
See
GraphNode.memset()for full documentation.
- record(self, event: Event) EventRecordNode#
Add an entry-point event record node (no dependencies).
See
GraphNode.record()for full documentation.
- switch(
- self,
- GraphCondition condition: GraphCondition,
- unsigned int count,
Add an entry-point switch conditional node (no dependencies).
See
GraphNode.switch()for full documentation.
- wait(self, event: Event) EventWaitNode#
Add an entry-point event wait node (no dependencies).
See
GraphNode.wait()for full documentation.
- while_loop(
- self,
- GraphCondition condition: GraphCondition,
Add an entry-point while-loop conditional node (no dependencies).
See
GraphNode.while_loop()for full documentation.
Attributes