diff --git a/projects/clr/rocclr/compiler/lib/backends/common/linker.cpp b/projects/clr/rocclr/compiler/lib/backends/common/linker.cpp index 7ec5d5be23..c8e5bc1429 100644 --- a/projects/clr/rocclr/compiler/lib/backends/common/linker.cpp +++ b/projects/clr/rocclr/compiler/lib/backends/common/linker.cpp @@ -227,7 +227,8 @@ void amdcl::OCLLinker::createASICIDFunctions(llvm::Module* module) || family == "KV" || family == "TN" || family == "VI" - || family == "CZ", + || family == "CZ" + || family == "AI", module); createConstIntFunc("__amdil_have_fast_fma32", chip == "Cypress" @@ -247,7 +248,8 @@ void amdcl::OCLLinker::createASICIDFunctions(llvm::Module* module) || family == "CI" || family == "VI" || family == "KV" - || family == "CZ", + || family == "CZ" + || family == "AI", module); } diff --git a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings.h b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings.h index 1fd2ab2dc7..c47017a598 100644 --- a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings.h +++ b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings.h @@ -193,6 +193,7 @@ static const char* calTargetMapping[] = { "Hainan", "Hawaii", "Iceland", "Tonga", "Mullins", "Fiji", "Carrizo", "", "", + "", }; #include "utils/v0_8/target_mappings_amdil.h" diff --git a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_amdil.h b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_amdil.h index 6cd3764ffb..96713293d3 100644 --- a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_amdil.h +++ b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_amdil.h @@ -14,6 +14,7 @@ #include "inc/asic_reg/ci_id.h" #include "inc/asic_reg/vi_id.h" #include "inc/asic_reg/cz_id.h" +#include "inc/asic_reg/ai_id.h" #include "inc/asic_reg/atiid.h" static const TargetMapping AMDILTargetMapping_0_8[] = { @@ -88,6 +89,7 @@ static const TargetMapping AMDILTargetMapping_0_8[] = { UnknownTarget, UnknownTarget, UnknownTarget, + UnknownTarget, { "CZ", "Carrizo", "carrizo", amd::GPU_Library_CI, CARRIZO_A0, F_SI_BASE, true, true, FAMILY_CZ }, { "TN", "Devastator", "trinity", amd::GPU_Library_Evergreen, TN_DEVASTATOR_W_A0, F_NI_EXT, true, false, FAMILY_TN }, { "TN", "Devastator", "trinity", amd::GPU_Library_Evergreen, TN_DEVASTATOR_W_A1, F_NI_EXT, true, false, FAMILY_TN }, diff --git a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_amdil64.h b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_amdil64.h index f6146e427a..92b4c1573b 100644 --- a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_amdil64.h +++ b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_amdil64.h @@ -40,6 +40,7 @@ static const TargetMapping AMDIL64TargetMapping_0_8[] = { UnknownTarget, UnknownTarget, UnknownTarget, + UnknownTarget, { "CZ", "Carrizo", "carrizo", amd::GPU64_Library_CI, CARRIZO_A0, F_SI_64BIT_PTR, true, true, FAMILY_CZ }, { "VI", "Iceland", "iceland", amd::GPU64_Library_CI, VI_ICELAND_M_A0, F_SI_64BIT_PTR, true, true, FAMILY_VI }, { "VI", "Tonga", "tonga", amd::GPU64_Library_CI, VI_TONGA_P_A0, F_SI_64BIT_PTR, true, true, FAMILY_VI }, diff --git a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h index c32a19860d..fb43af630e 100644 --- a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h +++ b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail.h @@ -8,6 +8,7 @@ #include "inc/asic_reg/kv_id.h" #include "inc/asic_reg/ci_id.h" #include "inc/asic_reg/cz_id.h" +#include "inc/asic_reg/ai_id.h" #include "inc/asic_reg/atiid.h" static const TargetMapping HSAILTargetMapping_0_8[] = { @@ -26,6 +27,7 @@ static const TargetMapping HSAILTargetMapping_0_8[] = { UnknownTarget, UnknownTarget, UnknownTarget, + UnknownTarget, { "CZ", "Carrizo", "generic", amd::GPU_Library_HSAIL, CARRIZO_A0, 0, true, true, FAMILY_CZ }, { "VI", "Fiji", "generic", amd::GPU_Library_HSAIL, VI_FIJI_P_A0, 0, true, true, FAMILY_VI }, InvalidTarget diff --git a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h index 8c90ee0e30..b21ff5a3bd 100644 --- a/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h +++ b/projects/clr/rocclr/compiler/lib/utils/v0_8/target_mappings_hsail64.h @@ -7,6 +7,7 @@ #include "inc/asic_reg/si_id.h" #include "inc/asic_reg/kv_id.h" #include "inc/asic_reg/ci_id.h" +#include "inc/asic_reg/ai_id.h" #include "inc/asic_reg/atiid.h" static const TargetMapping HSAIL64TargetMapping_0_8[] = { @@ -25,6 +26,7 @@ static const TargetMapping HSAIL64TargetMapping_0_8[] = { UnknownTarget, UnknownTarget, UnknownTarget, + UnknownTarget, { "CZ", "Carrizo", "generic", amd::GPU_Library_HSAIL, CARRIZO_A0, 0, true, true, FAMILY_CZ }, { "VI", "Fiji", "generic", amd::GPU_Library_HSAIL, VI_FIJI_P_A0, 0, true, true, FAMILY_VI }, InvalidTarget diff --git a/projects/clr/rocclr/runtime/device/gpu/gpudefs.hpp b/projects/clr/rocclr/runtime/device/gpu/gpudefs.hpp index 83646246a9..0fb0e9b133 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpudefs.hpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpudefs.hpp @@ -125,6 +125,7 @@ static const AMDDeviceInfo DeviceInfo[] = { /* CAL_TARGET_CARRIZO */ { ED_ATI_CAL_MACHINE_CARRIZO_ISA, "Carrizo" , "carrizo", 4, 16, 1, 256, 64 * Ki, 32, 800 }, /* CAL_TARGET_ELLESMERE */ { ED_ATI_CAL_MACHINE_ELLESMERE_ISA, "", "", 4, 16, 1, 256, 64 * Ki, 32, 800 }, /* CAL_TARGET_BAFFIN */ { ED_ATI_CAL_MACHINE_BAFFIN_ISA, "", "", 4, 16, 1, 256, 64 * Ki, 32, 800 }, +/* CAL_TARGET_GREENLAND */ { ED_ATI_CAL_MACHINE_GREENLAND_ISA, "", "", 4, 16, 1, 256, 64 * Ki, 32, 900 }, }; // Supported OpenCL versions diff --git a/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp b/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp index 56f19c7e43..f0c71f9de7 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp @@ -158,6 +158,7 @@ NullDevice::create(CALtarget target) case CAL_TARGET_CARRIZO: case CAL_TARGET_ELLESMERE: case CAL_TARGET_BAFFIN: + case CAL_TARGET_GREENLAND: calAttr.doublePrecision = CAL_TRUE; calAttr.isOpenCL200Device = CAL_TRUE; break; diff --git a/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp b/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp index 848aaf9a61..8d24b098f8 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp @@ -238,6 +238,8 @@ Settings::create( break; case CAL_TARGET_CARRIZO: apuSystem_ = true; + case CAL_TARGET_GREENLAND: + //TODO: specific code for AI case CAL_TARGET_ICELAND: case CAL_TARGET_TONGA: case CAL_TARGET_FIJI: diff --git a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/include/cal/cal.h b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/include/cal/cal.h index f7282e3906..5b729f82c9 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/include/cal/cal.h +++ b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/include/cal/cal.h @@ -178,7 +178,8 @@ typedef enum CALtargetEnum { CAL_TARGET_CARRIZO, /**< CARRIZO GPU ISA*/ CAL_TARGET_ELLESMERE, /**< ELLESMERE GPU ISA*/ CAL_TARGET_BAFFIN, /**< BAFFIN GPU ISA*/ - CAL_TARGET_LAST = CAL_TARGET_BAFFIN, /**< last */ + CAL_TARGET_GREENLAND, /**< GREENLAND GPU ISA*/ + CAL_TARGET_LAST = CAL_TARGET_GREENLAND, /**< last */ //##END_PRIVATE## } CALtarget; diff --git a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp index 0f7c67a8b3..278b92decd 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp @@ -592,7 +592,10 @@ CALGSLDevice::SetupContext(int32 &asic_id) m_target = CAL_TARGET_BAFFIN; m_elfmachine = ED_ATI_CAL_MACHINE_BAFFIN_ISA; break; - + case GSL_ATIASIC_ID_GREENLAND: + m_target = CAL_TARGET_GREENLAND; + m_elfmachine = ED_ATI_CAL_MACHINE_GREENLAND_ISA; + break; default: // 6XX is not supported m_adp->deleteContext(temp_cs);