From 094b2bfa9eb097a95e6feaa4e0a852b37b1aeaba Mon Sep 17 00:00:00 2001 From: Satyanvesh Dittakavi Date: Tue, 23 May 2023 22:01:54 +0530 Subject: [PATCH] SWDEV-401850 - Fix hipCreateChannelDescHalf APIs - Address ChannelDescHalf1 and ChannelDescHalf2 APIs not returning correct Channel Descriptors in amd headers - Add missing hipCreateChannelDescHalf APIs in nvidia headers Change-Id: I558847425c2459d3cde329ca2e926d882bb0a9dd [ROCm/clr commit: 586731c2cc18d80598a2a9d75fc506d80667f981] --- .../hip/amd_detail/amd_channel_descriptor.h | 7 ++++++- .../nvidia_detail/nvidia_hip_runtime_api.h | 20 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/projects/clr/hipamd/include/hip/amd_detail/amd_channel_descriptor.h b/projects/clr/hipamd/include/hip/amd_detail/amd_channel_descriptor.h index 5532fec622..26a7fbc499 100644 --- a/projects/clr/hipamd/include/hip/amd_detail/amd_channel_descriptor.h +++ b/projects/clr/hipamd/include/hip/amd_detail/amd_channel_descriptor.h @@ -44,7 +44,12 @@ static inline hipChannelFormatDesc hipCreateChannelDescHalf1() { static inline hipChannelFormatDesc hipCreateChannelDescHalf2() { int e = (int)sizeof(unsigned short) * 8; - return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat); + return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindFloat); +} + +static inline hipChannelFormatDesc hipCreateChannelDescHalf4() { + int e = (int)sizeof(unsigned short) * 8; + return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindFloat); } template diff --git a/projects/clr/hipamd/include/hip/nvidia_detail/nvidia_hip_runtime_api.h b/projects/clr/hipamd/include/hip/nvidia_detail/nvidia_hip_runtime_api.h index 6236637886..f2033be250 100644 --- a/projects/clr/hipamd/include/hip/nvidia_detail/nvidia_hip_runtime_api.h +++ b/projects/clr/hipamd/include/hip/nvidia_detail/nvidia_hip_runtime_api.h @@ -2809,6 +2809,26 @@ inline static hipChannelFormatDesc hipCreateChannelDesc(int x, int y, int z, int return cudaCreateChannelDesc(x, y, z, w, hipChannelFormatKindToCudaChannelFormatKind(f)); } +inline static hipChannelFormatDesc hipCreateChannelDescHalf() { + int e = (int)sizeof(unsigned short) * 8; + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +inline static hipChannelFormatDesc hipCreateChannelDescHalf1() { + int e = (int)sizeof(unsigned short) * 8; + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +inline static hipChannelFormatDesc hipCreateChannelDescHalf2() { + int e = (int)sizeof(unsigned short) * 8; + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +inline static hipChannelFormatDesc hipCreateChannelDescHalf4() { + int e = (int)sizeof(unsigned short) * 8; + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + inline static hipError_t hipCreateTextureObject(hipTextureObject_t* pTexObject, const hipResourceDesc* pResDesc, const hipTextureDesc* pTexDesc,