From 2e98030e46bea4bed0bbd2b8ce3e138681bf3ed4 Mon Sep 17 00:00:00 2001 From: Vlad Sytchenko Date: Thu, 7 May 2020 19:12:10 -0400 Subject: [PATCH] Fix confusion in hipFuncGetAttribute() Cuda shared == OpenCL local Cuda local == OpenCL private Change-Id: I5a204945ecde35919b9e9def20bbb2662fffea2b [ROCm/hip commit: a373538d7253dc95c0211bd6b72ea171a8b058d3] --- projects/hip/rocclr/hip_module.cpp | 7 +++---- projects/hip/rocclr/hip_platform.cpp | 5 +++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/projects/hip/rocclr/hip_module.cpp b/projects/hip/rocclr/hip_module.cpp index db39b234b4..95c6fc6475 100755 --- a/projects/hip/rocclr/hip_module.cpp +++ b/projects/hip/rocclr/hip_module.cpp @@ -314,8 +314,7 @@ hipError_t hipFuncGetAttribute(int* value, hipFunction_attribute attrib, hipFunc switch(attrib) { case HIP_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES: - *value = static_cast(wrkGrpInfo->localMemSize_ - - wrkGrpInfo->privateMemSize_); + *value = static_cast(wrkGrpInfo->localMemSize_); break; case HIP_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK: *value = static_cast(wrkGrpInfo->wavefrontPerSIMD_ @@ -325,7 +324,7 @@ hipError_t hipFuncGetAttribute(int* value, hipFunction_attribute attrib, hipFunc *value = 0; break; case HIP_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES: - *value = static_cast(wrkGrpInfo->localMemSize_); + *value = static_cast(wrkGrpInfo->privateMemSize_); break; case HIP_FUNC_ATTRIBUTE_NUM_REGS: *value = static_cast(wrkGrpInfo->availableGPRs_); @@ -340,7 +339,7 @@ hipError_t hipFuncGetAttribute(int* value, hipFunction_attribute attrib, hipFunc *value = 0; break; case HIP_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES: - *value = static_cast(wrkGrpInfo->availableLDSSize_); + *value = static_cast(wrkGrpInfo->availableLDSSize_ - wrkGrpInfo->localMemSize_); break; case HIP_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT: *value = 0; diff --git a/projects/hip/rocclr/hip_platform.cpp b/projects/hip/rocclr/hip_platform.cpp index 11bd373550..b7768b7330 100755 --- a/projects/hip/rocclr/hip_platform.cpp +++ b/projects/hip/rocclr/hip_platform.cpp @@ -310,8 +310,9 @@ bool ihipGetFuncAttributes(const char* func_name, amd::Program* program, hipFunc } const device::Kernel::WorkGroupInfo* wginfo = it->second->workGroupInfo(); - func_attr->localSizeBytes = wginfo->localMemSize_; - func_attr->sharedSizeBytes = wginfo->size_; + func_attr->localSizeBytes = wginfo->privateMemSize_; + func_attr->sharedSizeBytes = wginfo->localMemSize_; + func_attr->maxDynamicSharedSizeBytes = wginfo->availableLDSSize_ - wginfo->localMemSize_; func_attr->maxThreadsPerBlock = wginfo->wavefrontSize_; func_attr->numRegs = wginfo->usedVGPRs_;