cuda.bindings._v2.driver.graph_add_mem_free_node#

cuda.bindings._v2.driver.graph_add_mem_free_node(
intptr_t h_graph,
dependencies,
size_t num_dependencies,
uint64_t dptr,
) → intptr_t#

Creates a memory free node and adds it to a graph.

Creates a new memory free node and adds it to h_graph with num_dependencies dependencies specified via dependencies and arguments specified in nodeParams. It is possible for num_dependencies to be 0, in which case the node will be placed at the root of the graph. dependencies may not have any duplicate entries. A handle to the new node will be returned in ph_graph_node. cuGraphAddMemFreeNode will return CUDA_ERROR_INVALID_VALUE if the user attempts to free:.

  • an allocation twice in the same graph.

  • an address that was not returned by an allocation node.

  • an invalid address.

The following restrictions apply to graphs which contain allocation and/or memory free nodes:.

  • Nodes and edges of the graph cannot be deleted.

  • The graph can only be used in a child node if the ownership is moved to the parent.

  • Only one instantiation of the graph may exist at any point in time.

  • The graph cannot be cloned.

Parameters:
  • h_graph (intptr_t) – Graph to which to add the node.

  • dependencies (object) –

    Dependencies of the node. It can be:

    • an int as the pointer address to the array, or

    • a Python sequence of ints (as pointer addresses).

  • num_dependencies (size_t) – Number of dependencies.

  • dptr (uint64_t) – Address of memory to free.

Returns:

Returns newly created node.

Return type:

intptr_t

See also

cuGraphAddMemFreeNode