From d6cee2332a2d83870043d2d9178285d7dcd935ef Mon Sep 17 00:00:00 2001 From: sdashmiz Date: Mon, 25 Apr 2022 13:42:17 -0400 Subject: [PATCH] SWDEV-325711: Add userobject functions for graph - add user obj APIs for creating release and retain of user onbjects Signed-off-by: sdashmiz Change-Id: I0bf2999c77e44269565b27c31c7c1461f8a160a2 --- .../nvidia_detail/nvidia_hip_runtime_api.h | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h b/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h index 6fdf4dc2d6..b6c0a93323 100644 --- a/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h +++ b/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h @@ -1107,6 +1107,7 @@ inline static enum cudaChannelFormatKind hipChannelFormatKindToCudaChannelFormat typedef cudaGraph_t hipGraph_t; typedef cudaGraphNode_t hipGraphNode_t; typedef cudaGraphExec_t hipGraphExec_t; +typedef cudaUserObject_t hipUserObject_t; typedef enum cudaGraphNodeType hipGraphNodeType; #define hipGraphNodeTypeKernel cudaGraphNodeTypeKernel @@ -3232,6 +3233,29 @@ inline static hipError_t hipDeviceSetGraphMemAttribute(int device, hipGraphMemAt inline static hipError_t hipDeviceGraphMemTrim(int device) { return hipCUDAErrorTohipError(cudaDeviceGraphMemTrim(device)); } + +inline static hipError_t hipUserObjectCreate(hipUserObject_t* object_out, void* ptr, hipHostFn_t destroy, + unsigned int initialRefcount, unsigned int flags) { + return hipCUDAErrorTohipError(cudaUserObjectCreate(object_out, ptr, destroy, initialRefcount, flags)); +} + + +inline static hipError_t hipUserObjectRelease(hipUserObject_t object, unsigned int count __dparm(1)) { + return hipCUDAErrorTohipError(cudaUserObjectRelease(object, count)); +} + + +inline static hipError_t hipUserObjectRetain(hipUserObject_t object, unsigned int count __dparm(1)) { + return hipCUDAErrorTohipError(cudaUserObjectRelease(object, count)); +} + +inline static hipError_t hipGraphRetainUserObject(hipGraph_t graph, hipUserObject_t object, unsigned int count __dparm(1), unsigned int flags __dparm(0)) { + return hipCUDAErrorTohipError(cudaGraphRetainUserObject(graph, object, count, flags)); +} + +inline static hipError_t hipGraphReleaseUserObject(hipGraph_t graph, hipUserObject_t object, unsigned int count __dparm(1)) { + return hipCUDAErrorTohipError(cudaGraphReleaseUserObject(graph, object, count)); +} #endif inline static hipError_t hipGraphHostNodeSetParams(hipGraphNode_t node,