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_;