Graph Management

Graph Management#

HIP Runtime API Reference: Graph Management
Graph Management
Collaboration diagram for Graph Management:

Functions

hipError_t hipStreamBeginCapture (hipStream_t stream, hipStreamCaptureMode mode)
 Begins graph capture on a stream.
 
hipError_t hipStreamEndCapture (hipStream_t stream, hipGraph_t *pGraph)
 Ends capture on a stream, returning the captured graph.
 
hipError_t hipStreamGetCaptureInfo (hipStream_t stream, hipStreamCaptureStatus *pCaptureStatus, unsigned long long *pId)
 Get capture status of a stream.
 
hipError_t hipStreamGetCaptureInfo_v2 (hipStream_t stream, hipStreamCaptureStatus *captureStatus_out, unsigned long long *id_out __dparm(0), hipGraph_t *graph_out __dparm(0), const hipGraphNode_t **dependencies_out __dparm(0), size_t *numDependencies_out __dparm(0))
 Get stream's capture state.
 
hipError_t hipStreamIsCapturing (hipStream_t stream, hipStreamCaptureStatus *pCaptureStatus)
 Get stream's capture state.
 
hipError_t hipStreamUpdateCaptureDependencies (hipStream_t stream, hipGraphNode_t *dependencies, size_t numDependencies, unsigned int flags __dparm(0))
 Update the set of dependencies in a capturing stream.
 
hipError_t hipThreadExchangeStreamCaptureMode (hipStreamCaptureMode *mode)
 Swaps the stream capture mode of a thread.
 
hipError_t hipGraphCreate (hipGraph_t *pGraph, unsigned int flags)
 Creates a graph.
 
hipError_t hipGraphDestroy (hipGraph_t graph)
 Destroys a graph.
 
hipError_t hipGraphAddDependencies (hipGraph_t graph, const hipGraphNode_t *from, const hipGraphNode_t *to, size_t numDependencies)
 Adds dependency edges to a graph.
 
hipError_t hipGraphRemoveDependencies (hipGraph_t graph, const hipGraphNode_t *from, const hipGraphNode_t *to, size_t numDependencies)
 Removes dependency edges from a graph.
 
hipError_t hipGraphGetEdges (hipGraph_t graph, hipGraphNode_t *from, hipGraphNode_t *to, size_t *numEdges)
 Returns a graph's dependency edges.
 
hipError_t hipGraphGetNodes (hipGraph_t graph, hipGraphNode_t *nodes, size_t *numNodes)
 Returns graph nodes.
 
hipError_t hipGraphGetRootNodes (hipGraph_t graph, hipGraphNode_t *pRootNodes, size_t *pNumRootNodes)
 Returns graph's root nodes.
 
hipError_t hipGraphNodeGetDependencies (hipGraphNode_t node, hipGraphNode_t *pDependencies, size_t *pNumDependencies)
 Returns a node's dependencies.
 
hipError_t hipGraphNodeGetDependentNodes (hipGraphNode_t node, hipGraphNode_t *pDependentNodes, size_t *pNumDependentNodes)
 Returns a node's dependent nodes.
 
hipError_t hipGraphNodeGetType (hipGraphNode_t node, hipGraphNodeType *pType)
 Returns a node's type.
 
hipError_t hipGraphDestroyNode (hipGraphNode_t node)
 Remove a node from the graph.
 
hipError_t hipGraphClone (hipGraph_t *pGraphClone, hipGraph_t originalGraph)
 Clones a graph.
 
hipError_t hipGraphNodeFindInClone (hipGraphNode_t *pNode, hipGraphNode_t originalNode, hipGraph_t clonedGraph)
 Finds a cloned version of a node.
 
hipError_t hipGraphInstantiate (hipGraphExec_t *pGraphExec, hipGraph_t graph, hipGraphNode_t *pErrorNode, char *pLogBuffer, size_t bufferSize)
 Creates an executable graph from a graph.
 
hipError_t hipGraphInstantiateWithFlags (hipGraphExec_t *pGraphExec, hipGraph_t graph, unsigned long long flags)
 Creates an executable graph from a graph.
 
hipError_t hipGraphLaunch (hipGraphExec_t graphExec, hipStream_t stream)
 launches an executable graph in a stream
 
hipError_t hipGraphUpload (hipGraphExec_t graphExec, hipStream_t stream)
 uploads an executable graph in a stream
 
hipError_t hipGraphExecDestroy (hipGraphExec_t graphExec)
 Destroys an executable graph.
 
hipError_t hipGraphExecUpdate (hipGraphExec_t hGraphExec, hipGraph_t hGraph, hipGraphNode_t *hErrorNode_out, hipGraphExecUpdateResult *updateResult_out)
 Check whether an executable graph can be updated with a graph and perform the update if * possible.
 
hipError_t hipGraphAddKernelNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipKernelNodeParams *pNodeParams)
 Creates a kernel execution node and adds it to a graph.
 
hipError_t hipGraphKernelNodeGetParams (hipGraphNode_t node, hipKernelNodeParams *pNodeParams)
 Gets kernel node's parameters.
 
hipError_t hipGraphKernelNodeSetParams (hipGraphNode_t node, const hipKernelNodeParams *pNodeParams)
 Sets a kernel node's parameters.
 
hipError_t hipGraphExecKernelNodeSetParams (hipGraphExec_t hGraphExec, hipGraphNode_t node, const hipKernelNodeParams *pNodeParams)
 Sets the parameters for a kernel node in the given graphExec.
 
hipError_t hipGraphAddMemcpyNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipMemcpy3DParms *pCopyParams)
 Creates a memcpy node and adds it to a graph.
 
hipError_t hipGraphMemcpyNodeGetParams (hipGraphNode_t node, hipMemcpy3DParms *pNodeParams)
 Gets a memcpy node's parameters.
 
hipError_t hipGraphMemcpyNodeSetParams (hipGraphNode_t node, const hipMemcpy3DParms *pNodeParams)
 Sets a memcpy node's parameters.
 
hipError_t hipGraphKernelNodeSetAttribute (hipGraphNode_t hNode, hipKernelNodeAttrID attr, const hipKernelNodeAttrValue *value)
 Sets a node attribute.
 
hipError_t hipGraphKernelNodeGetAttribute (hipGraphNode_t hNode, hipKernelNodeAttrID attr, hipKernelNodeAttrValue *value)
 Gets a node attribute.
 
hipError_t hipGraphExecMemcpyNodeSetParams (hipGraphExec_t hGraphExec, hipGraphNode_t node, hipMemcpy3DParms *pNodeParams)
 Sets the parameters for a memcpy node in the given graphExec.
 
hipError_t hipGraphAddMemcpyNode1D (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, void *dst, const void *src, size_t count, hipMemcpyKind kind)
 Creates a 1D memcpy node and adds it to a graph.
 
hipError_t hipGraphMemcpyNodeSetParams1D (hipGraphNode_t node, void *dst, const void *src, size_t count, hipMemcpyKind kind)
 Sets a memcpy node's parameters to perform a 1-dimensional copy.
 
hipError_t hipGraphExecMemcpyNodeSetParams1D (hipGraphExec_t hGraphExec, hipGraphNode_t node, void *dst, const void *src, size_t count, hipMemcpyKind kind)
 Sets the parameters for a memcpy node in the given graphExec to perform a 1-dimensional copy.
 
hipError_t hipGraphAddMemcpyNodeFromSymbol (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, void *dst, const void *symbol, size_t count, size_t offset, hipMemcpyKind kind)
 Creates a memcpy node to copy from a symbol on the device and adds it to a graph.
 
hipError_t hipGraphMemcpyNodeSetParamsFromSymbol (hipGraphNode_t node, void *dst, const void *symbol, size_t count, size_t offset, hipMemcpyKind kind)
 Sets a memcpy node's parameters to copy from a symbol on the device.
 
hipError_t hipGraphExecMemcpyNodeSetParamsFromSymbol (hipGraphExec_t hGraphExec, hipGraphNode_t node, void *dst, const void *symbol, size_t count, size_t offset, hipMemcpyKind kind)
 Sets the parameters for a memcpy node in the given graphExec to copy from a symbol on the.
 
hipError_t hipGraphAddMemcpyNodeToSymbol (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const void *symbol, const void *src, size_t count, size_t offset, hipMemcpyKind kind)
 Creates a memcpy node to copy to a symbol on the device and adds it to a graph.
 
hipError_t hipGraphMemcpyNodeSetParamsToSymbol (hipGraphNode_t node, const void *symbol, const void *src, size_t count, size_t offset, hipMemcpyKind kind)
 Sets a memcpy node's parameters to copy to a symbol on the device.
 
hipError_t hipGraphExecMemcpyNodeSetParamsToSymbol (hipGraphExec_t hGraphExec, hipGraphNode_t node, const void *symbol, const void *src, size_t count, size_t offset, hipMemcpyKind kind)
 Sets the parameters for a memcpy node in the given graphExec to copy to a symbol on the device.
 
hipError_t hipGraphAddMemsetNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipMemsetParams *pMemsetParams)
 Creates a memset node and adds it to a graph.
 
hipError_t hipGraphMemsetNodeGetParams (hipGraphNode_t node, hipMemsetParams *pNodeParams)
 Gets a memset node's parameters.
 
hipError_t hipGraphMemsetNodeSetParams (hipGraphNode_t node, const hipMemsetParams *pNodeParams)
 Sets a memset node's parameters.
 
hipError_t hipGraphExecMemsetNodeSetParams (hipGraphExec_t hGraphExec, hipGraphNode_t node, const hipMemsetParams *pNodeParams)
 Sets the parameters for a memset node in the given graphExec.
 
hipError_t hipGraphAddHostNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipHostNodeParams *pNodeParams)
 Creates a host execution node and adds it to a graph.
 
hipError_t hipGraphHostNodeGetParams (hipGraphNode_t node, hipHostNodeParams *pNodeParams)
 Returns a host node's parameters.
 
hipError_t hipGraphHostNodeSetParams (hipGraphNode_t node, const hipHostNodeParams *pNodeParams)
 Sets a host node's parameters.
 
hipError_t hipGraphExecHostNodeSetParams (hipGraphExec_t hGraphExec, hipGraphNode_t node, const hipHostNodeParams *pNodeParams)
 Sets the parameters for a host node in the given graphExec.
 
hipError_t hipGraphAddChildGraphNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, hipGraph_t childGraph)
 Creates a child graph node and adds it to a graph.
 
hipError_t hipGraphChildGraphNodeGetGraph (hipGraphNode_t node, hipGraph_t *pGraph)
 Gets a handle to the embedded graph of a child graph node.
 
hipError_t hipGraphExecChildGraphNodeSetParams (hipGraphExec_t hGraphExec, hipGraphNode_t node, hipGraph_t childGraph)
 Updates node parameters in the child graph node in the given graphExec.
 
hipError_t hipGraphAddEmptyNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies)
 Creates an empty node and adds it to a graph.
 
hipError_t hipGraphAddEventRecordNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, hipEvent_t event)
 Creates an event record node and adds it to a graph.
 
hipError_t hipGraphEventRecordNodeGetEvent (hipGraphNode_t node, hipEvent_t *event_out)
 Returns the event associated with an event record node.
 
hipError_t hipGraphEventRecordNodeSetEvent (hipGraphNode_t node, hipEvent_t event)
 Sets an event record node's event.
 
hipError_t hipGraphExecEventRecordNodeSetEvent (hipGraphExec_t hGraphExec, hipGraphNode_t hNode, hipEvent_t event)
 Sets the event for an event record node in the given graphExec.
 
hipError_t hipGraphAddEventWaitNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, hipEvent_t event)
 Creates an event wait node and adds it to a graph.
 
hipError_t hipGraphEventWaitNodeGetEvent (hipGraphNode_t node, hipEvent_t *event_out)
 Returns the event associated with an event wait node.
 
hipError_t hipGraphEventWaitNodeSetEvent (hipGraphNode_t node, hipEvent_t event)
 Sets an event wait node's event.
 
hipError_t hipGraphExecEventWaitNodeSetEvent (hipGraphExec_t hGraphExec, hipGraphNode_t hNode, hipEvent_t event)
 Sets the event for an event record node in the given graphExec.
 
hipError_t hipGraphAddMemAllocNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, hipMemAllocNodeParams *pNodeParams)
 Creates a memory allocation node and adds it to a graph.
 
hipError_t hipGraphMemAllocNodeGetParams (hipGraphNode_t node, hipMemAllocNodeParams *pNodeParams)
 Returns parameters for memory allocation node.
 
hipError_t hipGraphAddMemFreeNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, void *dev_ptr)
 Creates a memory free node and adds it to a graph.
 
hipError_t hipGraphMemFreeNodeGetParams (hipGraphNode_t node, void *dev_ptr)
 Returns parameters for memory free node.
 
hipError_t hipDeviceGetGraphMemAttribute (int device, hipGraphMemAttributeType attr, void *value)
 Get the mem attribute for graphs.
 
hipError_t hipDeviceSetGraphMemAttribute (int device, hipGraphMemAttributeType attr, void *value)
 Set the mem attribute for graphs.
 
hipError_t hipDeviceGraphMemTrim (int device)
 Free unused memory on specific device used for graph back to OS.
 
hipError_t hipUserObjectCreate (hipUserObject_t *object_out, void *ptr, hipHostFn_t destroy, unsigned int initialRefcount, unsigned int flags)
 Create an instance of userObject to manage lifetime of a resource.
 
hipError_t hipUserObjectRelease (hipUserObject_t object, unsigned int count __dparm(1))
 Release number of references to resource.
 
hipError_t hipUserObjectRetain (hipUserObject_t object, unsigned int count __dparm(1))
 Retain number of references to resource.
 
hipError_t hipGraphRetainUserObject (hipGraph_t graph, hipUserObject_t object, unsigned int count __dparm(1), unsigned int flags __dparm(0))
 Retain user object for graphs.
 
hipError_t hipGraphReleaseUserObject (hipGraph_t graph, hipUserObject_t object, unsigned int count __dparm(1))
 Release user object from graphs.
 
hipError_t hipGraphDebugDotPrint (hipGraph_t graph, const char *path, unsigned int flags)
 Write a DOT file describing graph structure.
 
hipError_t hipGraphKernelNodeCopyAttributes (hipGraphNode_t hSrc, hipGraphNode_t hDst)
 Copies attributes from source node to destination node.
 
hipError_t hipGraphNodeSetEnabled (hipGraphExec_t hGraphExec, hipGraphNode_t hNode, unsigned int isEnabled)
 Enables or disables the specified node in the given graphExec.
 
hipError_t hipGraphNodeGetEnabled (hipGraphExec_t hGraphExec, hipGraphNode_t hNode, unsigned int *isEnabled)
 Query whether a node in the given graphExec is enabled.
 
hipError_t hipGraphAddExternalSemaphoresWaitNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipExternalSemaphoreWaitNodeParams *nodeParams)
 Creates a external semaphor wait node and adds it to a graph.
 
hipError_t hipGraphAddExternalSemaphoresSignalNode (hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipExternalSemaphoreSignalNodeParams *nodeParams)
 Creates a external semaphor signal node and adds it to a graph.
 
hipError_t hipGraphExternalSemaphoresSignalNodeSetParams (hipGraphNode_t hNode, const hipExternalSemaphoreSignalNodeParams *nodeParams)
 Updates node parameters in the external semaphore signal node.
 
hipError_t hipGraphExternalSemaphoresWaitNodeSetParams (hipGraphNode_t hNode, const hipExternalSemaphoreWaitNodeParams *nodeParams)
 Updates node parameters in the external semaphore wait node.
 
hipError_t hipGraphExternalSemaphoresSignalNodeGetParams (hipGraphNode_t hNode, const hipExternalSemaphoreSignalNodeParams *params_out)
 Returns external semaphore signal node params.
 
hipError_t hipGraphExternalSemaphoresWaitNodeGetParams (hipGraphNode_t hNode, const hipExternalSemaphoreWaitNodeParams *params_out)
 Returns external semaphore wait node params.
 
hipError_t hipGraphExecExternalSemaphoresSignalNodeSetParams (hipGraphExec_t hGraphExec, hipGraphNode_t hNode, const hipExternalSemaphoreSignalNodeParams *nodeParams)
 Updates node parameters in the external semaphore signal node in the given graphExec.
 
hipError_t hipGraphExecExternalSemaphoresWaitNodeSetParams (hipGraphExec_t hGraphExec, hipGraphNode_t hNode, const hipExternalSemaphoreWaitNodeParams *nodeParams)
 Updates node parameters in the external semaphore wait node in the given graphExec.
 

Detailed Description



This section describes the graph management types & functions of HIP runtime API.

Function Documentation

◆ hipDeviceGetGraphMemAttribute()

hipError_t hipDeviceGetGraphMemAttribute ( int  device,
hipGraphMemAttributeType  attr,
void *  value 
)

Get the mem attribute for graphs.

Parameters
[in]device- device the attr is get for.
[in]attr- attr to get.
[out]value- value for specific attr.
Returns
hipSuccess, hipErrorInvalidDevice
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipDeviceGraphMemTrim()

hipError_t hipDeviceGraphMemTrim ( int  device)

Free unused memory on specific device used for graph back to OS.

Parameters
[in]device- device the memory is used for graphs
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipDeviceSetGraphMemAttribute()

hipError_t hipDeviceSetGraphMemAttribute ( int  device,
hipGraphMemAttributeType  attr,
void *  value 
)

Set the mem attribute for graphs.

Parameters
[in]device- device the attr is set for.
[in]attr- attr to set.
[in]value- value for specific attr.
Returns
hipSuccess, hipErrorInvalidDevice
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddChildGraphNode()

hipError_t hipGraphAddChildGraphNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
hipGraph_t  childGraph 
)

Creates a child graph node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to the graph node to create.
[in]graph- instance of the graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memset execution node.
[in]numDependencies- the number of the dependencies.
[in]childGraph- the graph to clone into this node
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddDependencies()

hipError_t hipGraphAddDependencies ( hipGraph_t  graph,
const hipGraphNode_t from,
const hipGraphNode_t to,
size_t  numDependencies 
)

Adds dependency edges to a graph.

Parameters
[in]graph- instance of the graph to add dependencies.
[in]from- pointer to the graph nodes with dependenties to add from.
[in]to- pointer to the graph nodes to add dependenties to.
[in]numDependencies- the number of dependencies to add.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddEmptyNode()

hipError_t hipGraphAddEmptyNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies 
)

Creates an empty node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to the graph node to create and add to the graph.
[in]graph- instane of the graph the node is add to.
[in]pDependencies- const pointer to the node dependenties.
[in]numDependencies- the number of dependencies.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddEventRecordNode()

hipError_t hipGraphAddEventRecordNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
hipEvent_t  event 
)

Creates an event record node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to the graph node to create and add to the graph.
[in]graph- instane of the graph the node to be added.
[in]pDependencies- const pointer to the node dependenties.
[in]numDependencies- the number of dependencies.
[in]event- Event for the node.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddEventWaitNode()

hipError_t hipGraphAddEventWaitNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
hipEvent_t  event 
)

Creates an event wait node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to the graph node to create and add to the graph.
[in]graph- instane of the graph the node to be added.
[in]pDependencies- const pointer to the node dependenties.
[in]numDependencies- the number of dependencies.
[in]event- Event for the node.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddExternalSemaphoresSignalNode()

hipError_t hipGraphAddExternalSemaphoresSignalNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
const hipExternalSemaphoreSignalNodeParams nodeParams 
)

Creates a external semaphor signal node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to the graph node to create.
[in]graph- instance of the graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memset execution node.
[in]numDependencies- the number of the dependencies.
[in]nodeParams-pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddExternalSemaphoresWaitNode()

hipError_t hipGraphAddExternalSemaphoresWaitNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
const hipExternalSemaphoreWaitNodeParams nodeParams 
)

Creates a external semaphor wait node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to the graph node to create.
[in]graph- instance of the graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memset execution node.
[in]numDependencies- the number of the dependencies.
[in]nodeParams-pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddHostNode()

hipError_t hipGraphAddHostNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
const hipHostNodeParams pNodeParams 
)

Creates a host execution node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to the graph node to create.
[in]graph- instance of the graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memset execution node.
[in]numDependencies- the number of the dependencies.
[in]pNodeParams-pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddKernelNode()

hipError_t hipGraphAddKernelNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
const hipKernelNodeParams pNodeParams 
)

Creates a kernel execution node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to graph node to create.
[in]graph- instance of graph to add the created node.
[in]pDependencies- pointer to the dependencies on the kernel execution node.
[in]numDependencies- the number of the dependencies.
[in]pNodeParams- pointer to the parameters to the kernel execution node on the GPU.
Returns
hipSuccess, hipErrorInvalidValue, hipErrorInvalidDeviceFunction
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddMemAllocNode()

hipError_t hipGraphAddMemAllocNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
hipMemAllocNodeParams pNodeParams 
)

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

Parameters
[out]pGraphNode- Pointer to the graph node to create and add to the graph
[in]graph- Instane of the graph the node to be added
[in]pDependencies- Const pointer to the node dependenties
[in]numDependencies- The number of dependencies
[in]pNodeParams- Node parameters for memory allocation
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddMemcpyNode()

hipError_t hipGraphAddMemcpyNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
const hipMemcpy3DParms pCopyParams 
)

Creates a memcpy node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to graph node to create.
[in]graph- instance of graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memcpy execution node.
[in]numDependencies- the number of the dependencies.
[in]pCopyParams- const pointer to the parameters for the memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddMemcpyNode1D()

hipError_t hipGraphAddMemcpyNode1D ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
void *  dst,
const void *  src,
size_t  count,
hipMemcpyKind  kind 
)

Creates a 1D memcpy node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to graph node to create.
[in]graph- instance of graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memcpy execution node.
[in]numDependencies- the number of the dependencies.
[in]dst- pointer to memory address to the destination.
[in]src- pointer to memory address to the source.
[in]count- the size of the memory to copy.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddMemcpyNodeFromSymbol()

hipError_t hipGraphAddMemcpyNodeFromSymbol ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
void *  dst,
const void *  symbol,
size_t  count,
size_t  offset,
hipMemcpyKind  kind 
)

Creates a memcpy node to copy from a symbol on the device and adds it to a graph.

Parameters
[out]pGraphNode- pointer to graph node to create.
[in]graph- instance of graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memcpy execution node.
[in]numDependencies- the number of the dependencies.
[in]dst- pointer to memory address to the destination.
[in]symbol- Device symbol address.
[in]count- the size of the memory to copy.
[in]offset- Offset from start of symbol in bytes.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddMemcpyNodeToSymbol()

hipError_t hipGraphAddMemcpyNodeToSymbol ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
const void *  symbol,
const void *  src,
size_t  count,
size_t  offset,
hipMemcpyKind  kind 
)

Creates a memcpy node to copy to a symbol on the device and adds it to a graph.

Parameters
[out]pGraphNode- pointer to graph node to create.
[in]graph- instance of graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memcpy execution node.
[in]numDependencies- the number of the dependencies.
[in]symbol- Device symbol address.
[in]src- pointer to memory address of the src.
[in]count- the size of the memory to copy.
[in]offset- Offset from start of symbol in bytes.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddMemFreeNode()

hipError_t hipGraphAddMemFreeNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
void *  dev_ptr 
)

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

Parameters
[out]pGraphNode- Pointer to the graph node to create and add to the graph
[in]graph- Instane of the graph the node to be added
[in]pDependencies- Const pointer to the node dependenties
[in]numDependencies- The number of dependencies
[in]dev_ptr- Pointer to the memory to be freed
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphAddMemsetNode()

hipError_t hipGraphAddMemsetNode ( hipGraphNode_t pGraphNode,
hipGraph_t  graph,
const hipGraphNode_t pDependencies,
size_t  numDependencies,
const hipMemsetParams pMemsetParams 
)

Creates a memset node and adds it to a graph.

Parameters
[out]pGraphNode- pointer to the graph node to create.
[in]graph- instance of the graph to add the created node.
[in]pDependencies- const pointer to the dependencies on the memset execution node.
[in]numDependencies- the number of the dependencies.
[in]pMemsetParams- const pointer to the parameters for the memory set.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphChildGraphNodeGetGraph()

hipError_t hipGraphChildGraphNodeGetGraph ( hipGraphNode_t  node,
hipGraph_t pGraph 
)

Gets a handle to the embedded graph of a child graph node.

Parameters
[in]node- instane of the node to get child graph.
[out]pGraph- pointer to get the graph.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphClone()

hipError_t hipGraphClone ( hipGraph_t pGraphClone,
hipGraph_t  originalGraph 
)

Clones a graph.

Parameters
[out]pGraphClone- Returns newly created cloned graph.
[in]originalGraph- original graph to clone from.
Returns
hipSuccess, hipErrorInvalidValue, hipErrorMemoryAllocation
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphCreate()

hipError_t hipGraphCreate ( hipGraph_t pGraph,
unsigned int  flags 
)

Creates a graph.

Parameters
[out]pGraph- pointer to graph to create.
[in]flags- flags for graph creation, must be 0.
Returns
hipSuccess, hipErrorInvalidValue, hipErrorMemoryAllocation
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphDebugDotPrint()

hipError_t hipGraphDebugDotPrint ( hipGraph_t  graph,
const char *  path,
unsigned int  flags 
)

Write a DOT file describing graph structure.

Parameters
[in]graph- graph object for which DOT file has to be generated.
[in]path- path to write the DOT file.
[in]flags- Flags from hipGraphDebugDotFlags to get additional node information.
Returns
hipSuccess, hipErrorInvalidValue, hipErrorOperatingSystem
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphDestroy()

hipError_t hipGraphDestroy ( hipGraph_t  graph)

Destroys a graph.

Parameters
[in]graph- instance of graph to destroy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphDestroyNode()

hipError_t hipGraphDestroyNode ( hipGraphNode_t  node)

Remove a node from the graph.

Parameters
[in]node- graph node to remove
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphEventRecordNodeGetEvent()

hipError_t hipGraphEventRecordNodeGetEvent ( hipGraphNode_t  node,
hipEvent_t event_out 
)

Returns the event associated with an event record node.

Parameters
[in]node- instane of the node to get event from.
[out]event_out- Pointer to return the event.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphEventRecordNodeSetEvent()

hipError_t hipGraphEventRecordNodeSetEvent ( hipGraphNode_t  node,
hipEvent_t  event 
)

Sets an event record node's event.

Parameters
[in]node- instane of the node to set event to.
[in]event- pointer to the event.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphEventWaitNodeGetEvent()

hipError_t hipGraphEventWaitNodeGetEvent ( hipGraphNode_t  node,
hipEvent_t event_out 
)

Returns the event associated with an event wait node.

Parameters
[in]node- instane of the node to get event from.
[out]event_out- Pointer to return the event.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphEventWaitNodeSetEvent()

hipError_t hipGraphEventWaitNodeSetEvent ( hipGraphNode_t  node,
hipEvent_t  event 
)

Sets an event wait node's event.

Parameters
[in]node- instane of the node to set event to.
[in]event- pointer to the event.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecChildGraphNodeSetParams()

hipError_t hipGraphExecChildGraphNodeSetParams ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  node,
hipGraph_t  childGraph 
)

Updates node parameters in the child graph node in the given graphExec.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]node- node from the graph which was used to instantiate graphExec.
[in]childGraph- child graph with updated parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecDestroy()

hipError_t hipGraphExecDestroy ( hipGraphExec_t  graphExec)

Destroys an executable graph.

Parameters
[in]graphExec- instance of executable graph to destry.
Returns
hipSuccess.
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecEventRecordNodeSetEvent()

hipError_t hipGraphExecEventRecordNodeSetEvent ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  hNode,
hipEvent_t  event 
)

Sets the event for an event record node in the given graphExec.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]hNode- node from the graph which was used to instantiate graphExec.
[in]event- pointer to the event.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecEventWaitNodeSetEvent()

hipError_t hipGraphExecEventWaitNodeSetEvent ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  hNode,
hipEvent_t  event 
)

Sets the event for an event record node in the given graphExec.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]hNode- node from the graph which was used to instantiate graphExec.
[in]event- pointer to the event.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecExternalSemaphoresSignalNodeSetParams()

hipError_t hipGraphExecExternalSemaphoresSignalNodeSetParams ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  hNode,
const hipExternalSemaphoreSignalNodeParams nodeParams 
)

Updates node parameters in the external semaphore signal node in the given graphExec.

Parameters
[in]hGraphExec- The executable graph in which to set the specified node.
[in]hNode- Node from the graph from which graphExec was instantiated.
[in]nodeParams- Pointer to the params to be set.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecExternalSemaphoresWaitNodeSetParams()

hipError_t hipGraphExecExternalSemaphoresWaitNodeSetParams ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  hNode,
const hipExternalSemaphoreWaitNodeParams nodeParams 
)

Updates node parameters in the external semaphore wait node in the given graphExec.

Parameters
[in]hGraphExec- The executable graph in which to set the specified node.
[in]hNode- Node from the graph from which graphExec was instantiated.
[in]nodeParams- Pointer to the params to be set.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecHostNodeSetParams()

hipError_t hipGraphExecHostNodeSetParams ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  node,
const hipHostNodeParams pNodeParams 
)

Sets the parameters for a host node in the given graphExec.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]node- instance of the node to set parameters to.
[in]pNodeParams- pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecKernelNodeSetParams()

hipError_t hipGraphExecKernelNodeSetParams ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  node,
const hipKernelNodeParams pNodeParams 
)

Sets the parameters for a kernel node in the given graphExec.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]node- instance of the node to set parameters to.
[in]pNodeParams- const pointer to the kernel node parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecMemcpyNodeSetParams()

hipError_t hipGraphExecMemcpyNodeSetParams ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  node,
hipMemcpy3DParms pNodeParams 
)

Sets the parameters for a memcpy node in the given graphExec.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]node- instance of the node to set parameters to.
[in]pNodeParams- const pointer to the kernel node parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecMemcpyNodeSetParams1D()

hipError_t hipGraphExecMemcpyNodeSetParams1D ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  node,
void *  dst,
const void *  src,
size_t  count,
hipMemcpyKind  kind 
)

Sets the parameters for a memcpy node in the given graphExec to perform a 1-dimensional copy.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]node- instance of the node to set parameters to.
[in]dst- pointer to memory address to the destination.
[in]src- pointer to memory address to the source.
[in]count- the size of the memory to copy.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecMemcpyNodeSetParamsFromSymbol()

hipError_t hipGraphExecMemcpyNodeSetParamsFromSymbol ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  node,
void *  dst,
const void *  symbol,
size_t  count,
size_t  offset,
hipMemcpyKind  kind 
)

Sets the parameters for a memcpy node in the given graphExec to copy from a symbol on the.

  • device.
Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]node- instance of the node to set parameters to.
[in]dst- pointer to memory address to the destination.
[in]symbol- Device symbol address.
[in]count- the size of the memory to copy.
[in]offset- Offset from start of symbol in bytes.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecMemcpyNodeSetParamsToSymbol()

hipError_t hipGraphExecMemcpyNodeSetParamsToSymbol ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  node,
const void *  symbol,
const void *  src,
size_t  count,
size_t  offset,
hipMemcpyKind  kind 
)

Sets the parameters for a memcpy node in the given graphExec to copy to a symbol on the device.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]node- instance of the node to set parameters to.
[in]symbol- Device symbol address.
[in]src- pointer to memory address of the src.
[in]count- the size of the memory to copy.
[in]offset- Offset from start of symbol in bytes.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecMemsetNodeSetParams()

hipError_t hipGraphExecMemsetNodeSetParams ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  node,
const hipMemsetParams pNodeParams 
)

Sets the parameters for a memset node in the given graphExec.

Parameters
[in]hGraphExec- instance of the executable graph with the node.
[in]node- instance of the node to set parameters to.
[in]pNodeParams- pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExecUpdate()

hipError_t hipGraphExecUpdate ( hipGraphExec_t  hGraphExec,
hipGraph_t  hGraph,
hipGraphNode_t hErrorNode_out,
hipGraphExecUpdateResult updateResult_out 
)

Check whether an executable graph can be updated with a graph and perform the update if * possible.

Parameters
[in]hGraphExec- instance of executable graph to update.
[in]hGraph- graph that contains the updated parameters.
[in]hErrorNode_out- node which caused the permissibility check to forbid the update.
[in]updateResult_out- Whether the graph update was permitted.
Returns
hipSuccess, hipErrorGraphExecUpdateFailure
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExternalSemaphoresSignalNodeGetParams()

hipError_t hipGraphExternalSemaphoresSignalNodeGetParams ( hipGraphNode_t  hNode,
const hipExternalSemaphoreSignalNodeParams params_out 
)

Returns external semaphore signal node params.

Parameters
[in]hNode- Node from the graph from which graphExec was instantiated.
[out]params_out- Pointer to params.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExternalSemaphoresSignalNodeSetParams()

hipError_t hipGraphExternalSemaphoresSignalNodeSetParams ( hipGraphNode_t  hNode,
const hipExternalSemaphoreSignalNodeParams nodeParams 
)

Updates node parameters in the external semaphore signal node.

Parameters
[in]hNode- Node from the graph from which graphExec was instantiated.
[in]nodeParams- Pointer to the params to be set.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExternalSemaphoresWaitNodeGetParams()

hipError_t hipGraphExternalSemaphoresWaitNodeGetParams ( hipGraphNode_t  hNode,
const hipExternalSemaphoreWaitNodeParams params_out 
)

Returns external semaphore wait node params.

Parameters
[in]hNode- Node from the graph from which graphExec was instantiated.
[out]params_out- Pointer to params.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphExternalSemaphoresWaitNodeSetParams()

hipError_t hipGraphExternalSemaphoresWaitNodeSetParams ( hipGraphNode_t  hNode,
const hipExternalSemaphoreWaitNodeParams nodeParams 
)

Updates node parameters in the external semaphore wait node.

Parameters
[in]hNode- Node from the graph from which graphExec was instantiated.
[in]nodeParams- Pointer to the params to be set.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphGetEdges()

hipError_t hipGraphGetEdges ( hipGraph_t  graph,
hipGraphNode_t from,
hipGraphNode_t to,
size_t *  numEdges 
)

Returns a graph's dependency edges.

Parameters
[in]graph- instance of the graph to get the edges from.
[out]from- pointer to the graph nodes to return edge endpoints.
[out]to- pointer to the graph nodes to return edge endpoints.
[out]numEdges- returns number of edges.
Returns
hipSuccess, hipErrorInvalidValue

from and to may both be NULL, in which case this function only returns the number of edges in numEdges. Otherwise, numEdges entries will be filled in. If numEdges is higher than the actual number of edges, the remaining entries in from and to will be set to NULL, and the number of edges actually returned will be written to numEdges

Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphGetNodes()

hipError_t hipGraphGetNodes ( hipGraph_t  graph,
hipGraphNode_t nodes,
size_t *  numNodes 
)

Returns graph nodes.

Parameters
[in]graph- instance of graph to get the nodes.
[out]nodes- pointer to return the graph nodes.
[out]numNodes- returns number of graph nodes.
Returns
hipSuccess, hipErrorInvalidValue

nodes may be NULL, in which case this function will return the number of nodes in numNodes. Otherwise, numNodes entries will be filled in. If numNodes is higher than the actual number of nodes, the remaining entries in nodes will be set to NULL, and the number of nodes actually obtained will be returned in numNodes.

Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphGetRootNodes()

hipError_t hipGraphGetRootNodes ( hipGraph_t  graph,
hipGraphNode_t pRootNodes,
size_t *  pNumRootNodes 
)

Returns graph's root nodes.

Parameters
[in]graph- instance of the graph to get the nodes.
[out]pRootNodes- pointer to return the graph's root nodes.
[out]pNumRootNodes- returns the number of graph's root nodes.
Returns
hipSuccess, hipErrorInvalidValue

pRootNodes may be NULL, in which case this function will return the number of root nodes in pNumRootNodes. Otherwise, pNumRootNodes entries will be filled in. If pNumRootNodes is higher than the actual number of root nodes, the remaining entries in pRootNodes will be set to NULL, and the number of nodes actually obtained will be returned in pNumRootNodes.

Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphHostNodeGetParams()

hipError_t hipGraphHostNodeGetParams ( hipGraphNode_t  node,
hipHostNodeParams pNodeParams 
)

Returns a host node's parameters.

Parameters
[in]node- instane of the node to get parameters from.
[out]pNodeParams- pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphHostNodeSetParams()

hipError_t hipGraphHostNodeSetParams ( hipGraphNode_t  node,
const hipHostNodeParams pNodeParams 
)

Sets a host node's parameters.

Parameters
[in]node- instance of the node to set parameters to.
[in]pNodeParams- pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphInstantiate()

hipError_t hipGraphInstantiate ( hipGraphExec_t pGraphExec,
hipGraph_t  graph,
hipGraphNode_t pErrorNode,
char *  pLogBuffer,
size_t  bufferSize 
)

Creates an executable graph from a graph.

Parameters
[out]pGraphExec- pointer to instantiated executable graph that is created.
[in]graph- instance of graph to instantiate.
[out]pErrorNode- pointer to error node in case error occured in graph instantiation, it could modify the correponding node.
[out]pLogBuffer- pointer to log buffer.
[out]bufferSize- the size of log buffer.
Returns
hipSuccess, hipErrorOutOfMemory
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphInstantiateWithFlags()

hipError_t hipGraphInstantiateWithFlags ( hipGraphExec_t pGraphExec,
hipGraph_t  graph,
unsigned long long  flags 
)

Creates an executable graph from a graph.

Parameters
[out]pGraphExec- pointer to instantiated executable graph that is created.
[in]graph- instance of graph to instantiate.
[in]flags- Flags to control instantiation.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.It does not support any of flag and is behaving as hipGraphInstantiate.

◆ hipGraphKernelNodeCopyAttributes()

hipError_t hipGraphKernelNodeCopyAttributes ( hipGraphNode_t  hSrc,
hipGraphNode_t  hDst 
)

Copies attributes from source node to destination node.

Copies attributes from source node to destination node. Both node must have the same context.

Parameters
[out]hDst- Destination node.
[in]hSrc- Source node. For list of attributes see hipKernelNodeAttrID.
Returns
hipSuccess, hipErrorInvalidContext
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphKernelNodeGetAttribute()

hipError_t hipGraphKernelNodeGetAttribute ( hipGraphNode_t  hNode,
hipKernelNodeAttrID  attr,
hipKernelNodeAttrValue value 
)

Gets a node attribute.

Parameters
[in]hNode- instance of the node to set parameters to.
[in]attr- the attribute node is set to.
[in]value- const pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphKernelNodeGetParams()

hipError_t hipGraphKernelNodeGetParams ( hipGraphNode_t  node,
hipKernelNodeParams pNodeParams 
)

Gets kernel node's parameters.

Parameters
[in]node- instance of the node to get parameters from.
[out]pNodeParams- pointer to the parameters
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphKernelNodeSetAttribute()

hipError_t hipGraphKernelNodeSetAttribute ( hipGraphNode_t  hNode,
hipKernelNodeAttrID  attr,
const hipKernelNodeAttrValue value 
)

Sets a node attribute.

Parameters
[in]hNode- instance of the node to set parameters to.
[in]attr- the attribute node is set to.
[in]value- const pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphKernelNodeSetParams()

hipError_t hipGraphKernelNodeSetParams ( hipGraphNode_t  node,
const hipKernelNodeParams pNodeParams 
)

Sets a kernel node's parameters.

Parameters
[in]node- instance of the node to set parameters to.
[in]pNodeParams- const pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphLaunch()

hipError_t hipGraphLaunch ( hipGraphExec_t  graphExec,
hipStream_t  stream 
)

launches an executable graph in a stream

Parameters
[in]graphExec- instance of executable graph to launch.
[in]stream- instance of stream in which to launch executable graph.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemAllocNodeGetParams()

hipError_t hipGraphMemAllocNodeGetParams ( hipGraphNode_t  node,
hipMemAllocNodeParams pNodeParams 
)

Returns parameters for memory allocation node.

Parameters
[in]node- Memory allocation node for a query
[out]pNodeParams- Parameters for the specified memory allocation node
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemcpyNodeGetParams()

hipError_t hipGraphMemcpyNodeGetParams ( hipGraphNode_t  node,
hipMemcpy3DParms pNodeParams 
)

Gets a memcpy node's parameters.

Parameters
[in]node- instance of the node to get parameters from.
[out]pNodeParams- pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemcpyNodeSetParams()

hipError_t hipGraphMemcpyNodeSetParams ( hipGraphNode_t  node,
const hipMemcpy3DParms pNodeParams 
)

Sets a memcpy node's parameters.

Parameters
[in]node- instance of the node to set parameters to.
[in]pNodeParams- const pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemcpyNodeSetParams1D()

hipError_t hipGraphMemcpyNodeSetParams1D ( hipGraphNode_t  node,
void *  dst,
const void *  src,
size_t  count,
hipMemcpyKind  kind 
)

Sets a memcpy node's parameters to perform a 1-dimensional copy.

Parameters
[in]node- instance of the node to set parameters to.
[in]dst- pointer to memory address to the destination.
[in]src- pointer to memory address to the source.
[in]count- the size of the memory to copy.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemcpyNodeSetParamsFromSymbol()

hipError_t hipGraphMemcpyNodeSetParamsFromSymbol ( hipGraphNode_t  node,
void *  dst,
const void *  symbol,
size_t  count,
size_t  offset,
hipMemcpyKind  kind 
)

Sets a memcpy node's parameters to copy from a symbol on the device.

Parameters
[in]node- instance of the node to set parameters to.
[in]dst- pointer to memory address to the destination.
[in]symbol- Device symbol address.
[in]count- the size of the memory to copy.
[in]offset- Offset from start of symbol in bytes.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemcpyNodeSetParamsToSymbol()

hipError_t hipGraphMemcpyNodeSetParamsToSymbol ( hipGraphNode_t  node,
const void *  symbol,
const void *  src,
size_t  count,
size_t  offset,
hipMemcpyKind  kind 
)

Sets a memcpy node's parameters to copy to a symbol on the device.

Parameters
[in]node- instance of the node to set parameters to.
[in]symbol- Device symbol address.
[in]src- pointer to memory address of the src.
[in]count- the size of the memory to copy.
[in]offset- Offset from start of symbol in bytes.
[in]kind- the type of memory copy.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemFreeNodeGetParams()

hipError_t hipGraphMemFreeNodeGetParams ( hipGraphNode_t  node,
void *  dev_ptr 
)

Returns parameters for memory free node.

Parameters
[in]node- Memory free node for a query
[out]dev_ptr- Device pointer for the specified memory free node
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemsetNodeGetParams()

hipError_t hipGraphMemsetNodeGetParams ( hipGraphNode_t  node,
hipMemsetParams pNodeParams 
)

Gets a memset node's parameters.

Parameters
[in]node- instane of the node to get parameters from.
[out]pNodeParams- pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphMemsetNodeSetParams()

hipError_t hipGraphMemsetNodeSetParams ( hipGraphNode_t  node,
const hipMemsetParams pNodeParams 
)

Sets a memset node's parameters.

Parameters
[in]node- instance of the node to set parameters to.
[in]pNodeParams- pointer to the parameters.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphNodeFindInClone()

hipError_t hipGraphNodeFindInClone ( hipGraphNode_t pNode,
hipGraphNode_t  originalNode,
hipGraph_t  clonedGraph 
)

Finds a cloned version of a node.

Parameters
[out]pNode- Returns the cloned node.
[in]originalNode- original node handle.
[in]clonedGraph- Cloned graph to query.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphNodeGetDependencies()

hipError_t hipGraphNodeGetDependencies ( hipGraphNode_t  node,
hipGraphNode_t pDependencies,
size_t *  pNumDependencies 
)

Returns a node's dependencies.

Parameters
[in]node- graph node to get the dependencies from.
[out]pDependencies- pointer to to return the dependencies.
[out]pNumDependencies- returns the number of graph node dependencies.
Returns
hipSuccess, hipErrorInvalidValue

pDependencies may be NULL, in which case this function will return the number of dependencies in pNumDependencies. Otherwise, pNumDependencies entries will be filled in. If pNumDependencies is higher than the actual number of dependencies, the remaining entries in pDependencies will be set to NULL, and the number of nodes actually obtained will be returned in pNumDependencies.

Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphNodeGetDependentNodes()

hipError_t hipGraphNodeGetDependentNodes ( hipGraphNode_t  node,
hipGraphNode_t pDependentNodes,
size_t *  pNumDependentNodes 
)

Returns a node's dependent nodes.

Parameters
[in]node- graph node to get the Dependent nodes from.
[out]pDependentNodes- pointer to return the graph dependent nodes.
[out]pNumDependentNodes- returns the number of graph node dependent nodes.
Returns
hipSuccess, hipErrorInvalidValue

DependentNodes may be NULL, in which case this function will return the number of dependent nodes in pNumDependentNodes. Otherwise, pNumDependentNodes entries will be filled in. If pNumDependentNodes is higher than the actual number of dependent nodes, the remaining entries in pDependentNodes will be set to NULL, and the number of nodes actually obtained will be returned in pNumDependentNodes.

Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphNodeGetEnabled()

hipError_t hipGraphNodeGetEnabled ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  hNode,
unsigned int *  isEnabled 
)

Query whether a node in the given graphExec is enabled.

Sets isEnabled to 1 if hNode is enabled, or 0 if it is disabled.

The node is identified by the corresponding node in the non-executable graph, from which the executable graph was instantiated.

hNode must not have been removed from the original graph.

Note
Currently only kernel, memset and memcpy nodes are supported.
Parameters
[in]hGraphExec- The executable graph in which to set the specified node.
[in]hNode- Node from the graph from which graphExec was instantiated.
[out]isEnabled- Location to return the enabled status of the node.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphNodeGetType()

hipError_t hipGraphNodeGetType ( hipGraphNode_t  node,
hipGraphNodeType pType 
)

Returns a node's type.

Parameters
[in]node- instance of the graph to add dependencies.
[out]pType- pointer to the return the type
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphNodeSetEnabled()

hipError_t hipGraphNodeSetEnabled ( hipGraphExec_t  hGraphExec,
hipGraphNode_t  hNode,
unsigned int  isEnabled 
)

Enables or disables the specified node in the given graphExec.

Sets hNode to be either enabled or disabled. Disabled nodes are functionally equivalent to empty nodes until they are reenabled. Existing node parameters are not affected by disabling/enabling the node.

The node is identified by the corresponding hNode in the non-executable graph, from which the executable graph was instantiated.

hNode must not have been removed from the original graph.

Note
Currently only kernel, memset and memcpy nodes are supported.
Parameters
[in]hGraphExec- The executable graph in which to set the specified node.
[in]hNode- Node from the graph from which graphExec was instantiated.
[in]isEnabled- Node is enabled if != 0, otherwise the node is disabled.
Returns
hipSuccess, hipErrorInvalidValue,
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphReleaseUserObject()

hipError_t hipGraphReleaseUserObject ( hipGraph_t  graph,
hipUserObject_t  object,
unsigned int count   __dparm
)

Release user object from graphs.

Parameters
[in]graph- pointer to graph to retain the user object for.
[in]object- pointer to instace of userobj.
[in]count- reference to resource to be retained.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphRemoveDependencies()

hipError_t hipGraphRemoveDependencies ( hipGraph_t  graph,
const hipGraphNode_t from,
const hipGraphNode_t to,
size_t  numDependencies 
)

Removes dependency edges from a graph.

Parameters
[in]graph- instance of the graph to remove dependencies.
[in]from- Array of nodes that provide the dependencies.
[in]to- Array of dependent nodes.
[in]numDependencies- the number of dependencies to remove.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphRetainUserObject()

hipError_t hipGraphRetainUserObject ( hipGraph_t  graph,
hipUserObject_t  object,
unsigned int count   __dparm1,
unsigned int flags   __dparm
)

Retain user object for graphs.

Parameters
[in]graph- pointer to graph to retain the user object for.
[in]object- pointer to instace of userobj.
[in]count- reference to resource to be retained.
[in]flags- flags passed to API.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipGraphUpload()

hipError_t hipGraphUpload ( hipGraphExec_t  graphExec,
hipStream_t  stream 
)

uploads an executable graph in a stream

Parameters
[in]graphExec- instance of executable graph to launch.
[in]stream- instance of stream in which to launch executable graph.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipStreamBeginCapture()

hipError_t hipStreamBeginCapture ( hipStream_t  stream,
hipStreamCaptureMode  mode 
)

Begins graph capture on a stream.

Parameters
[in]stream- Stream to initiate capture.
[in]mode- Controls the interaction of this capture sequence with other API calls that are not safe.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipStreamEndCapture()

hipError_t hipStreamEndCapture ( hipStream_t  stream,
hipGraph_t pGraph 
)

Ends capture on a stream, returning the captured graph.

Parameters
[in]stream- Stream to end capture.
[out]pGraph- returns the graph captured.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipStreamGetCaptureInfo()

hipError_t hipStreamGetCaptureInfo ( hipStream_t  stream,
hipStreamCaptureStatus pCaptureStatus,
unsigned long long *  pId 
)

Get capture status of a stream.

Parameters
[in]stream- Stream under capture.
[out]pCaptureStatus- returns current status of the capture.
[out]pId- unique ID of the capture.
Returns
hipSuccess, hipErrorStreamCaptureImplicit
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipStreamGetCaptureInfo_v2()

hipError_t hipStreamGetCaptureInfo_v2 ( hipStream_t  stream,
hipStreamCaptureStatus captureStatus_out,
unsigned long long *id_out   __dparm0,
hipGraph_t *graph_out   __dparm0,
const hipGraphNode_t **dependencies_out   __dparm0,
size_t *numDependencies_out   __dparm
)

Get stream's capture state.

Parameters
[in]stream- Stream under capture.
[out]captureStatus_out- returns current status of the capture.
[out]id_out- unique ID of the capture.
[in]graph_out- returns the graph being captured into.
[out]dependencies_out- returns pointer to an array of nodes.
[out]numDependencies_out- returns size of the array returned in dependencies_out.
Returns
hipSuccess, hipErrorInvalidValue, hipErrorStreamCaptureImplicit
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipStreamIsCapturing()

hipError_t hipStreamIsCapturing ( hipStream_t  stream,
hipStreamCaptureStatus pCaptureStatus 
)

Get stream's capture state.

Parameters
[in]stream- Stream under capture.
[out]pCaptureStatus- returns current status of the capture.
Returns
hipSuccess, hipErrorInvalidValue, hipErrorStreamCaptureImplicit
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipStreamUpdateCaptureDependencies()

hipError_t hipStreamUpdateCaptureDependencies ( hipStream_t  stream,
hipGraphNode_t dependencies,
size_t  numDependencies,
unsigned int flags   __dparm
)

Update the set of dependencies in a capturing stream.

Parameters
[in]stream- Stream under capture.
[in]dependencies- pointer to an array of nodes to Add/Replace.
[in]numDependencies- size of the array in dependencies.
Returns
hipSuccess, hipErrorInvalidValue, hipErrorIllegalState
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipThreadExchangeStreamCaptureMode()

hipError_t hipThreadExchangeStreamCaptureMode ( hipStreamCaptureMode mode)

Swaps the stream capture mode of a thread.

Parameters
[in]mode- Pointer to mode value to swap with the current mode
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipUserObjectCreate()

hipError_t hipUserObjectCreate ( hipUserObject_t object_out,
void *  ptr,
hipHostFn_t  destroy,
unsigned int  initialRefcount,
unsigned int  flags 
)

Create an instance of userObject to manage lifetime of a resource.

Parameters
[out]object_out- pointer to instace of userobj.
[in]ptr- pointer to pass to destroy function.
[in]destroy- destroy callback to remove resource.
[in]initialRefcount- reference to resource.
[in]flags- flags passed to API.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipUserObjectRelease()

hipError_t hipUserObjectRelease ( hipUserObject_t  object,
unsigned int count   __dparm
)

Release number of references to resource.

Parameters
[in]object- pointer to instace of userobj.
[in]count- reference to resource to be retained.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.

◆ hipUserObjectRetain()

hipError_t hipUserObjectRetain ( hipUserObject_t  object,
unsigned int count   __dparm
)

Retain number of references to resource.

Parameters
[in]object- pointer to instace of userobj.
[in]count- reference to resource to be retained.
Returns
hipSuccess, hipErrorInvalidValue
Warning
: This API is marked as beta, meaning, while this is feature complete, it is still open to changes and may have outstanding issues.