Skip to content

Commit 8f99508

Browse files
authored
SWDEV-403382 - Add Semaphore structs for graph node (#3261)
Change-Id: I5c4a8b55c16ca5bf4ffbf003519e75b63524c0c1
1 parent 45dd975 commit 8f99508

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

include/hip/hip_runtime_api.h

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,6 +1273,30 @@ typedef struct hipMemAllocationProp {
12731273
} allocFlags;
12741274
} hipMemAllocationProp;
12751275

1276+
/**
1277+
* External semaphore signal node parameters
1278+
*/
1279+
typedef struct hipExternalSemaphoreSignalNodeParams {
1280+
///< Array containing external semaphore handles.
1281+
hipExternalSemaphore_t* extSemArray;
1282+
///< Array containing parameters of external signal semaphore.
1283+
const hipExternalSemaphoreSignalParams* paramsArray;
1284+
///< Total number of handles and parameters contained in extSemArray and paramsArray.
1285+
unsigned int numExtSems;
1286+
} hipExternalSemaphoreSignalNodeParams;
1287+
1288+
/**
1289+
* External semaphore wait node parameters
1290+
*/
1291+
typedef struct hipExternalSemaphoreWaitNodeParams {
1292+
///< Array containing external semaphore handles.
1293+
hipExternalSemaphore_t* extSemArray;
1294+
///< Array containing parameters of external wait semaphore.
1295+
const hipExternalSemaphoreWaitParams* paramsArray;
1296+
///< Total number of handles and parameters contained in extSemArray and paramsArray.
1297+
unsigned int numExtSems;
1298+
} hipExternalSemaphoreWaitNodeParams;
1299+
12761300
/**
12771301
* Generic handle for memory allocation
12781302
*/
@@ -7319,6 +7343,105 @@ hipError_t hipGraphNodeSetEnabled(hipGraphExec_t hGraphExec, hipGraphNode_t hNod
73197343
hipError_t hipGraphNodeGetEnabled(hipGraphExec_t hGraphExec, hipGraphNode_t hNode,
73207344
unsigned int* isEnabled);
73217345

7346+
/**
7347+
* @brief Creates a external semaphor wait node and adds it to a graph.
7348+
*
7349+
* @param [out] pGraphNode - pointer to the graph node to create.
7350+
* @param [in] graph - instance of the graph to add the created node.
7351+
* @param [in] pDependencies - const pointer to the dependencies on the memset execution node.
7352+
* @param [in] numDependencies - the number of the dependencies.
7353+
* @param [in] nodeParams -pointer to the parameters.
7354+
* @returns #hipSuccess, #hipErrorInvalidValue
7355+
* @warning : This API is marked as beta, meaning, while this is feature complete,
7356+
* it is still open to changes and may have outstanding issues.
7357+
*/
7358+
hipError_t hipGraphAddExternalSemaphoresWaitNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
7359+
const hipGraphNode_t* pDependencies, size_t numDependencies,
7360+
const hipExternalSemaphoreWaitNodeParams* nodeParams);
7361+
7362+
/**
7363+
* @brief Creates a external semaphor signal node and adds it to a graph.
7364+
*
7365+
* @param [out] pGraphNode - pointer to the graph node to create.
7366+
* @param [in] graph - instance of the graph to add the created node.
7367+
* @param [in] pDependencies - const pointer to the dependencies on the memset execution node.
7368+
* @param [in] numDependencies - the number of the dependencies.
7369+
* @param [in] nodeParams -pointer to the parameters.
7370+
* @returns #hipSuccess, #hipErrorInvalidValue
7371+
* @warning : This API is marked as beta, meaning, while this is feature complete,
7372+
* it is still open to changes and may have outstanding issues.
7373+
*/
7374+
hipError_t hipGraphAddExternalSemaphoresSignalNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
7375+
const hipGraphNode_t* pDependencies, size_t numDependencies,
7376+
const hipExternalSemaphoreSignalNodeParams* nodeParams);
7377+
/**
7378+
* @brief Updates node parameters in the external semaphore signal node.
7379+
*
7380+
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
7381+
* @param [in] nodeParams - Pointer to the params to be set.
7382+
* @returns #hipSuccess, #hipErrorInvalidValue
7383+
* @warning : This API is marked as beta, meaning, while this is feature complete,
7384+
* it is still open to changes and may have outstanding issues.
7385+
*/
7386+
hipError_t hipGraphExternalSemaphoresSignalNodeSetParams(hipGraphNode_t hNode,
7387+
const hipExternalSemaphoreSignalNodeParams* nodeParams);
7388+
/**
7389+
* @brief Updates node parameters in the external semaphore wait node.
7390+
*
7391+
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
7392+
* @param [in] nodeParams - Pointer to the params to be set.
7393+
* @returns #hipSuccess, #hipErrorInvalidValue
7394+
* @warning : This API is marked as beta, meaning, while this is feature complete,
7395+
* it is still open to changes and may have outstanding issues.
7396+
*/
7397+
hipError_t hipGraphExternalSemaphoresWaitNodeSetParams(hipGraphNode_t hNode,
7398+
const hipExternalSemaphoreWaitNodeParams* nodeParams);
7399+
/**
7400+
* @brief Returns external semaphore signal node params.
7401+
*
7402+
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
7403+
* @param [out] params_out - Pointer to params.
7404+
* @returns #hipSuccess, #hipErrorInvalidValue
7405+
* @warning : This API is marked as beta, meaning, while this is feature complete,
7406+
* it is still open to changes and may have outstanding issues.
7407+
*/
7408+
hipError_t hipGraphExternalSemaphoresSignalNodeGetParams(hipGraphNode_t hNode,
7409+
const hipExternalSemaphoreSignalNodeParams* params_out);
7410+
/**
7411+
* @brief Returns external semaphore wait node params.
7412+
*
7413+
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
7414+
* @param [out] params_out - Pointer to params.
7415+
* @returns #hipSuccess, #hipErrorInvalidValue
7416+
* @warning : This API is marked as beta, meaning, while this is feature complete,
7417+
* it is still open to changes and may have outstanding issues.
7418+
*/
7419+
hipError_t hipGraphExternalSemaphoresWaitNodeGetParams(hipGraphNode_t hNode,
7420+
const hipExternalSemaphoreWaitNodeParams* params_out);
7421+
/**
7422+
* @brief Updates node parameters in the external semaphore signal node in the given graphExec.
7423+
*
7424+
* @param [in] hGraphExec - The executable graph in which to set the specified node.
7425+
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
7426+
* @param [in] nodeParams - Pointer to the params to be set.
7427+
* @returns #hipSuccess, #hipErrorInvalidValue
7428+
* @warning : This API is marked as beta, meaning, while this is feature complete,
7429+
* it is still open to changes and may have outstanding issues.
7430+
*/
7431+
hipError_t hipGraphExecExternalSemaphoresSignalNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t hNode,
7432+
const hipExternalSemaphoreSignalNodeParams* nodeParams);
7433+
/**
7434+
* @brief Updates node parameters in the external semaphore wait node in the given graphExec.
7435+
*
7436+
* @param [in] hGraphExec - The executable graph in which to set the specified node.
7437+
* @param [in] hNode - Node from the graph from which graphExec was instantiated.
7438+
* @param [in] nodeParams - Pointer to the params to be set.
7439+
* @returns #hipSuccess, #hipErrorInvalidValue
7440+
* @warning : This API is marked as beta, meaning, while this is feature complete,
7441+
* it is still open to changes and may have outstanding issues.
7442+
*/
7443+
hipError_t hipGraphExecExternalSemaphoresWaitNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t hNode,
7444+
const hipExternalSemaphoreWaitNodeParams* nodeParams);
73227445
// doxygen end graph API
73237446
/**
73247447
* @}

0 commit comments

Comments
 (0)