@@ -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
73197343hipError_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