SWDEV-403382 - Add Semaphore structs for graph node (#3261)

Change-Id: I5c4a8b55c16ca5bf4ffbf003519e75b63524c0c1
This commit is contained in:
ROCm CI Service Account
2023-07-09 10:21:36 +05:30
committed by GitHub
parent 45dd975e07
commit 8f99508b02
+123
View File
@@ -1273,6 +1273,30 @@ typedef struct hipMemAllocationProp {
} allocFlags;
} hipMemAllocationProp;
/**
* External semaphore signal node parameters
*/
typedef struct hipExternalSemaphoreSignalNodeParams {
///< Array containing external semaphore handles.
hipExternalSemaphore_t* extSemArray;
///< Array containing parameters of external signal semaphore.
const hipExternalSemaphoreSignalParams* paramsArray;
///< Total number of handles and parameters contained in extSemArray and paramsArray.
unsigned int numExtSems;
} hipExternalSemaphoreSignalNodeParams;
/**
* External semaphore wait node parameters
*/
typedef struct hipExternalSemaphoreWaitNodeParams {
///< Array containing external semaphore handles.
hipExternalSemaphore_t* extSemArray;
///< Array containing parameters of external wait semaphore.
const hipExternalSemaphoreWaitParams* paramsArray;
///< Total number of handles and parameters contained in extSemArray and paramsArray.
unsigned int numExtSems;
} hipExternalSemaphoreWaitNodeParams;
/**
* Generic handle for memory allocation
*/
@@ -7319,6 +7343,105 @@ hipError_t hipGraphNodeSetEnabled(hipGraphExec_t hGraphExec, hipGraphNode_t hNod
hipError_t hipGraphNodeGetEnabled(hipGraphExec_t hGraphExec, hipGraphNode_t hNode,
unsigned int* isEnabled);
/**
* @brief Creates a external semaphor wait node and adds it to a graph.
*
* @param [out] pGraphNode - pointer to the graph node to create.
* @param [in] graph - instance of the graph to add the created node.
* @param [in] pDependencies - const pointer to the dependencies on the memset execution node.
* @param [in] numDependencies - the number of the dependencies.
* @param [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.
*/
hipError_t hipGraphAddExternalSemaphoresWaitNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
const hipGraphNode_t* pDependencies, size_t numDependencies,
const hipExternalSemaphoreWaitNodeParams* nodeParams);
/**
* @brief Creates a external semaphor signal node and adds it to a graph.
*
* @param [out] pGraphNode - pointer to the graph node to create.
* @param [in] graph - instance of the graph to add the created node.
* @param [in] pDependencies - const pointer to the dependencies on the memset execution node.
* @param [in] numDependencies - the number of the dependencies.
* @param [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.
*/
hipError_t hipGraphAddExternalSemaphoresSignalNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
const hipGraphNode_t* pDependencies, size_t numDependencies,
const hipExternalSemaphoreSignalNodeParams* nodeParams);
/**
* @brief Updates node parameters in the external semaphore signal node.
*
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
* @param [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.
*/
hipError_t hipGraphExternalSemaphoresSignalNodeSetParams(hipGraphNode_t hNode,
const hipExternalSemaphoreSignalNodeParams* nodeParams);
/**
* @brief Updates node parameters in the external semaphore wait node.
*
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
* @param [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.
*/
hipError_t hipGraphExternalSemaphoresWaitNodeSetParams(hipGraphNode_t hNode,
const hipExternalSemaphoreWaitNodeParams* nodeParams);
/**
* @brief Returns external semaphore signal node params.
*
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
* @param [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.
*/
hipError_t hipGraphExternalSemaphoresSignalNodeGetParams(hipGraphNode_t hNode,
const hipExternalSemaphoreSignalNodeParams* params_out);
/**
* @brief Returns external semaphore wait node params.
*
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
* @param [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.
*/
hipError_t hipGraphExternalSemaphoresWaitNodeGetParams(hipGraphNode_t hNode,
const hipExternalSemaphoreWaitNodeParams* params_out);
/**
* @brief Updates node parameters in the external semaphore signal node in the given graphExec.
*
* @param [in] hGraphExec - The executable graph in which to set the specified node.
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
* @param [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.
*/
hipError_t hipGraphExecExternalSemaphoresSignalNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t hNode,
const hipExternalSemaphoreSignalNodeParams* nodeParams);
/**
* @brief Updates node parameters in the external semaphore wait node in the given graphExec.
*
* @param [in] hGraphExec - The executable graph in which to set the specified node.
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
* @param [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.
*/
hipError_t hipGraphExecExternalSemaphoresWaitNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t hNode,
const hipExternalSemaphoreWaitNodeParams* nodeParams);
// doxygen end graph API
/**
* @}