From 93d8b3a48957ae0eb961e5655ddef6dc867a6234 Mon Sep 17 00:00:00 2001 From: "Manocha, Rahul" Date: Fri, 15 Aug 2025 13:22:27 -0700 Subject: [PATCH] SWDEV-546295 - cuda mappings for hipMemcpy3DBatchAsync and hipMemcpyPeer (#33) Co-authored-by: Rahul Manocha [ROCm/hipother commit: 60ecc06a1c8e7673a966c32de4199e286ad76f4a] --- .../nvidia_detail/nvidia_hip_runtime_api.h | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h b/projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h index 2be48e3530..36c2ee9efd 100644 --- a/projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h +++ b/projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h @@ -872,6 +872,29 @@ static inline void hipMemcpy2DTocudaMemcpy2D(CUDA_MEMCPY2D* a, const hip_Memcpy2 a->Height = (size_t)p->Height; } +#if CUDA_VERSION >= CUDA_12020 +typedef enum cudaMemcpyFlags hipMemcpyFlags; +#define hipMemcpyFlagDefault cudaMemcpyFlagDefault +#define hipMemcpyFlagPreferOverlapWithCompute cudaMemcpyFlagPreferOverlapWithCompute + +typedef enum cudaMemcpySrcAccessOrder hipMemcpySrcAccessOrder; +#define hipMemcpySrcAccessOrderInvalid cudaMemcpySrcAccessOrderInvalid +#define hipMemcpySrcAccessOrderStream cudaMemcpySrcAccessOrderStream +#define hipMemcpySrcAccessOrderDuringApiCall cudaMemcpySrcAccessOrderDuringApiCall +#define hipMemcpySrcAccessOrderAny cudaMemcpySrcAccessOrderAny +#define hipMemcpySrcAccessOrderMax cudaMemcpySrcAccessOrderMax + +typedef struct cudaMemcpyAttributes hipMemcpyAttributes; +typedef enum cudaMemcpy3DOperandType hipMemcpy3DOperandType; +#define hipMemcpyOperandTypePointer cudaMemcpyOperandTypePointer +#define hipMemcpyOperandTypeArray cudaMemcpyOperandTypeArray +#define hipMemcpyOperandTypeMax cudaMemcpyOperandTypeMax + +typedef struct cudaOffset3D hipOffset3D; +typedef struct cudaMemcpy3DOperand hipMemcpy3DOperand; +typedef struct cudaMemcpy3DBatchOp hipMemcpy3DBatchOp; +typedef struct cudaMemcpy3DPeerParms hipMemcpy3DPeerParms; +#endif #define hipMemcpy3DParms cudaMemcpy3DParms #define hipArrayDefault cudaArrayDefault @@ -2354,6 +2377,26 @@ inline static hipError_t hipMemcpy2DToArrayAsync(hipArray_t dst, size_t wOffset, stream)); } +inline static hipError_t hipMemcpyBatchAsync(void **dsts, void **srcs, size_t *sizes, size_t count, + hipMemcpyAttributes *attrs, size_t *attrsIdxs, + size_t numAttrs, size_t *failIdx, hipStream_t stream) { + return hipCUDAErrorTohipError(cudaMemcpyBatchAsync(dsts, srcs, sizes, count, attrs, attrsIdxs, + numAttrs, failIdx, stream)); +} + +inline static hipError_t hipMemcpy3DBatchAsync(size_t numOps, hipMemcpy3DBatchOp *opList, + size_t *failIdx, unsigned long long flags, + hipStream_t stream) { + return hipCUDAErrorTohipError(cudaMemcpy3DBatchAsync(numOps, opList, failIdx, flags, stream)); +} +inline static hipError_t hipMemcpy3DPeer(hipMemcpy3DPeerParms *p) { + return hipCUDAErrorTohipError(cudaMemcpy3DPeer(p)); +} +inline static hipError_t hipMemcpy3DPeerAsync(hipMemcpy3DPeerParms *p, hipStream_t stream) { + return hipCUDAErrorTohipError(cudaMemcpy3DPeerAsync(p, stream)); +} + + __HIP_DEPRECATED inline static hipError_t hipMemcpyToArray(hipArray_t dst, size_t wOffset, size_t hOffset, const void* src, size_t count, hipMemcpyKind kind) {