From 194bddebaf17ca22baf2a3469358f67a0df31792 Mon Sep 17 00:00:00 2001
From: foreman
Date: Tue, 6 Aug 2019 02:47:47 -0400
Subject: [PATCH] P4 to Git Change 1978640 by todli@todli-win-opencl-kv1 on
2019/08/06 02:44:22
SWDEV-198179 - Add Renoir Support to OpenCL Staging
http://ocltc.amd.com/reviews/r/17770/
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/bif/amuabi/amuABI.h#24 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/bif/amuabi/amuABIMultiBinary.cpp#24 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#41 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings_hsail.h#57 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings_hsail64.h#52 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudefs.hpp#159 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#607 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#249 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#363 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#191 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/caltarget.h#9 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbedefs#45 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#93 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/binary/BIFEnumCheck.cpp#31 edit
---
rocclr/compiler/lib/utils/v0_8/libUtils.cpp | 3 ++-
rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h | 4 ++++
rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h | 4 ++++
rocclr/runtime/device/gpu/gpudefs.hpp | 4 +++-
rocclr/runtime/device/gpu/gpudevice.cpp | 4 +++-
rocclr/runtime/device/gpu/gpuprogram.cpp | 1 +
rocclr/runtime/device/gpu/gpusettings.cpp | 1 +
rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp | 4 ++++
rocclr/runtime/device/gpu/gslbe/src/rt/caltarget.h | 3 ++-
rocclr/runtime/device/pal/palsettings.cpp | 1 +
10 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/rocclr/compiler/lib/utils/v0_8/libUtils.cpp b/rocclr/compiler/lib/utils/v0_8/libUtils.cpp
index 699a0d015b..290cce478e 100644
--- a/rocclr/compiler/lib/utils/v0_8/libUtils.cpp
+++ b/rocclr/compiler/lib/utils/v0_8/libUtils.cpp
@@ -623,7 +623,8 @@ int getIsaType(const aclTargetInfo *target)
case FAMILY_RV:
switch (Mapping.chip_enum) {
default: return 902;
- case RAVEN_A0: return Mapping.xnack_supported ? 903 : 902;
+ case RAVEN_A0:
+ case RENOIR_A0: return Mapping.xnack_supported ? 903 : 902;
}
case FAMILY_NV:
switch (Mapping.chip_enum) {
diff --git a/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h b/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h
index d7f96618fb..c906d50a55 100644
--- a/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h
+++ b/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h
@@ -46,7 +46,9 @@ static const TargetMapping HSAILTargetMapping_0_8[] = {
{ "AI", "gfx901", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A0, F_AI_BASE, true, false, FAMILY_AI ,true },
{ "AI", "gfx901", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A1, F_AI_BASE, true, true, FAMILY_AI ,true },
{ "RV", "gfx902", "GFX9", amd::GPU_Library_HSAIL, RAVEN_A0, F_AI_BASE, true, true, FAMILY_RV, false },
+ { "RV", "gfx902", "GFX9", amd::GPU_Library_HSAIL, RENOIR_A0, F_AI_BASE, true, true, FAMILY_RV, false },
{ "RV", "gfx903", "GFX9", amd::GPU_Library_HSAIL, RAVEN_A0, F_AI_BASE, true, true, FAMILY_RV, true },
+ { "RV", "gfx903", "GFX9", amd::GPU_Library_HSAIL, RENOIR_A0, F_AI_BASE, true, true, FAMILY_RV, true },
{ "AI", "gfx904", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA12_P_A0, F_AI_BASE, true, true, FAMILY_AI, false },
{ "AI", "gfx905", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA12_P_A0, F_AI_BASE, true, true, FAMILY_AI, true },
{ "AI", "gfx906", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA20_P_A0, F_AI_BASE, true, true, FAMILY_AI, false },
@@ -71,6 +73,8 @@ static const TargetMapping HSAILTargetMapping_0_8[] = {
UnknownTarget,
UnknownTarget,
UnknownTarget,
+ UnknownTarget,
+ UnknownTarget,
#endif
InvalidTarget
};
diff --git a/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h b/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h
index 709d520a50..6399885cd4 100644
--- a/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h
+++ b/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h
@@ -45,7 +45,9 @@ static const TargetMapping HSAIL64TargetMapping_0_8[] = {
{ "AI", "gfx901", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A0, F_AI_BASE, true, false, FAMILY_AI, true },
{ "AI", "gfx901", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A1, F_AI_BASE, true, true, FAMILY_AI, true },
{ "RV", "gfx902", "GFX9", amd::GPU_Library_HSAIL, RAVEN_A0, F_AI_BASE, true, true, FAMILY_RV, false },
+ { "RV", "gfx902", "GFX9", amd::GPU_Library_HSAIL, RENOIR_A0, F_AI_BASE, true, true, FAMILY_RV, false },
{ "RV", "gfx903", "GFX9", amd::GPU_Library_HSAIL, RAVEN_A0, F_AI_BASE, true, true, FAMILY_RV, true },
+ { "RV", "gfx903", "GFX9", amd::GPU_Library_HSAIL, RENOIR_A0, F_AI_BASE, true, true, FAMILY_RV, true },
{ "AI", "gfx904", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA12_P_A0, F_AI_BASE, true, true, FAMILY_AI, false },
{ "AI", "gfx905", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA12_P_A0, F_AI_BASE, true, true, FAMILY_AI, true },
{ "AI", "gfx906", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA20_P_A0, F_AI_BASE, true, true, FAMILY_AI, false },
@@ -69,6 +71,8 @@ static const TargetMapping HSAIL64TargetMapping_0_8[] = {
UnknownTarget,
UnknownTarget,
UnknownTarget,
+ UnknownTarget,
+ UnknownTarget,
#endif
InvalidTarget
};
diff --git a/rocclr/runtime/device/gpu/gpudefs.hpp b/rocclr/runtime/device/gpu/gpudefs.hpp
index 265af5f198..f616bd6ef5 100644
--- a/rocclr/runtime/device/gpu/gpudefs.hpp
+++ b/rocclr/runtime/device/gpu/gpudefs.hpp
@@ -151,12 +151,14 @@ static const AMDDeviceInfo DeviceInfo[] = {
IF(IS_BRAHMA, "", "gfx900"), 4, 16, 1, 256, 64 * Ki, 32, 900},
/* CAL_TARGET_STONEY */ {ED_ATI_CAL_MACHINE_STONEY_ISA, "Stoney", "stoney", 4, 16, 1, 256,
64 * Ki, 32, 800},
- /* CAL_TARGET_LEXA */ {ED_ATI_CAL_MACHINE_LEXA_ISA, "gfx804", "gfx804", 4, 16, 1, 256, 64 * Ki,
+ /* CAL_TARGET_LEXA */ {ED_ATI_CAL_MACHINE_LEXA_ISA, "gfx804", "gfx804", 4, 16, 1, 256, 64 * Ki,
32, 800},
/* CAL_TARGET_RAVEN */ {ED_ATI_CAL_MACHINE_RAVEN_ISA, IF(IS_BRAHMA, "", "gfx902"),
IF(IS_BRAHMA, "", "gfx902"), 4, 16, 1, 256, 64 * Ki, 32, 900},
/* CAL_TARGET_RAVEN2 */ {ED_ATI_CAL_MACHINE_RAVEN2_ISA, IF(IS_BRAHMA, "", "gfx902"),
IF(IS_BRAHMA, "", "gfx902"), 4, 16, 1, 256, 64 * Ki, 32, 900},
+ /* CAL_TARGET_RENOIR */{ ED_ATI_CAL_MACHINE_RENOIR_ISA, IF(IS_BRAHMA, "", "gfx902"),
+ IF(IS_BRAHMA, "", "gfx902"), 4, 16, 1, 256, 64 * Ki, 32, 900 },
/* CAL_TARGET_POLARIS22 */ {ED_ATI_CAL_MACHINE_POLARIS22_ISA, IF(IS_BRAHMA, "", "gfx804"),
IF(IS_BRAHMA, "", "gfx804"), 4, 16, 1, 256, 64 * Ki, 32, 800},
/* CAL_TARGET_VEGA12 */{ ED_ATI_CAL_MACHINE_VEGA12_ISA, IF(IS_BRAHMA, "", "gfx904"),
diff --git a/rocclr/runtime/device/gpu/gpudevice.cpp b/rocclr/runtime/device/gpu/gpudevice.cpp
index 44de000cd0..1671e92e12 100644
--- a/rocclr/runtime/device/gpu/gpudevice.cpp
+++ b/rocclr/runtime/device/gpu/gpudevice.cpp
@@ -165,6 +165,7 @@ bool NullDevice::create(CALtarget target) {
case CAL_TARGET_LEXA:
case CAL_TARGET_RAVEN:
case CAL_TARGET_RAVEN2:
+ case CAL_TARGET_RENOIR:
case CAL_TARGET_POLARIS22:
case CAL_TARGET_VEGA12:
case CAL_TARGET_VEGA20:
@@ -867,7 +868,8 @@ bool Device::create(CALuint ordinal, CALuint numOfDevices) {
#if defined(BRAHMA)
if (calTarget_ == CAL_TARGET_GREENLAND || calTarget_ == CAL_TARGET_RAVEN ||
- calTarget_ == CAL_TARGET_RAVEN2 || calTarget_ == CAL_TARGET_POLARIS22) {
+ calTarget_ == CAL_TARGET_RAVEN2 || calTarget_ == CAL_TARGET_POLARIS22 ||
+ calTarget_ == CAL_TARGET_RENOIR) {
return false;
}
#endif
diff --git a/rocclr/runtime/device/gpu/gpuprogram.cpp b/rocclr/runtime/device/gpu/gpuprogram.cpp
index bf2447f39d..2e4f86e6e1 100644
--- a/rocclr/runtime/device/gpu/gpuprogram.cpp
+++ b/rocclr/runtime/device/gpu/gpuprogram.cpp
@@ -1867,6 +1867,7 @@ bool ORCAHSALoaderContext::IsaSupportedByAgent(hsa_agent_t agent, hsa_isa_t isa)
case ED_ATI_CAL_MACHINE_GREENLAND_ISA:
return isa.handle == gfx900;
case ED_ATI_CAL_MACHINE_RAVEN_ISA:
+ case ED_ATI_CAL_MACHINE_RENOIR_ISA:
return isa.handle == gfx902 || isa.handle == gfx903;
case ED_ATI_CAL_MACHINE_VEGA12_ISA:
return isa.handle == gfx904;
diff --git a/rocclr/runtime/device/gpu/gpusettings.cpp b/rocclr/runtime/device/gpu/gpusettings.cpp
index 0eee49f942..061615ff87 100644
--- a/rocclr/runtime/device/gpu/gpusettings.cpp
+++ b/rocclr/runtime/device/gpu/gpusettings.cpp
@@ -156,6 +156,7 @@ bool Settings::create(const CALdeviceattribs& calAttr, bool reportAsOCL12Device,
switch (target) {
case CAL_TARGET_RAVEN:
case CAL_TARGET_RAVEN2:
+ case CAL_TARGET_RENOIR:
// APU systems for AI
apuSystem_ = true;
case CAL_TARGET_GREENLAND:
diff --git a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp
index c101dbcdca..ce72529121 100644
--- a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp
+++ b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp
@@ -677,6 +677,10 @@ CALGSLDevice::SetupContext(int32 &asic_id)
m_target = CAL_TARGET_VEGA20;
m_elfmachine = ED_ATI_CAL_MACHINE_VEGA20_ISA;
break;
+ case GSL_ATIASIC_ID_RENOIR:
+ m_target = CAL_TARGET_RENOIR;
+ m_elfmachine = ED_ATI_CAL_MACHINE_RENOIR_ISA;
+ break;
default:
// 6XX is not supported
m_adp->deleteContext(temp_cs);
diff --git a/rocclr/runtime/device/gpu/gslbe/src/rt/caltarget.h b/rocclr/runtime/device/gpu/gslbe/src/rt/caltarget.h
index 5fcdd44340..188ecc28e9 100644
--- a/rocclr/runtime/device/gpu/gslbe/src/rt/caltarget.h
+++ b/rocclr/runtime/device/gpu/gslbe/src/rt/caltarget.h
@@ -51,7 +51,8 @@ typedef enum CALtargetEnum {
CAL_TARGET_POLARIS22, /**< POLARIS22 GPU ISA*/
CAL_TARGET_VEGA12, /**< VEGA12 GPU ISA*/
CAL_TARGET_VEGA20, /**< VEGA20 GPU ISA*/
- CAL_TARGET_LAST = CAL_TARGET_VEGA20, /**< last */
+ CAL_TARGET_RENOIR, /**< RENOIR GPU ISA*/
+ CAL_TARGET_LAST = CAL_TARGET_RENOIR, /**< last */
//##END_PRIVATE##
} CALtarget;
diff --git a/rocclr/runtime/device/pal/palsettings.cpp b/rocclr/runtime/device/pal/palsettings.cpp
index bed9eafa37..5168d51d39 100644
--- a/rocclr/runtime/device/pal/palsettings.cpp
+++ b/rocclr/runtime/device/pal/palsettings.cpp
@@ -218,6 +218,7 @@ bool Settings::create(const Pal::DeviceProperties& palProp,
case Pal::AsicRevision::Vega10:
case Pal::AsicRevision::Raven:
case Pal::AsicRevision::Raven2:
+ case Pal::AsicRevision::Renoir:
aiPlus_ = true;
enableCoopGroups_ = IS_LINUX;
enableCoopMultiDeviceGroups_ = IS_LINUX;