P4 to Git Change 1450441 by asalmanp@asalmanp-ocl-stg on 2017/08/22 17:11:11

SWDEV-79278 - adding support for Vega12/Vega20/Navi10
	ReviewBoardURL = http://ocltc.amd.com/reviews/r/13326/

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/libUtils.cpp#7 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/target_mappings.h#20 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/target_mappings_hsail.h#23 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/target_mappings_hsail64.h#23 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#156 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/bif/amuabi/amuABI.h#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/bif/amuabi/amuABIMultiBinary.cpp#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#27 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings.h#52 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings_hsail.h#48 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings_hsail64.h#43 edit
... //depot/stg/opencl/drivers/opencl/compiler/tools/driver/driver.cpp#67 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudefs.hpp#148 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#568 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#234 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#352 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#180 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/caltarget.h#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#18 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#45 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#26 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/binary/BIFEnumCheck.cpp#28 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/runtime/OCLOfflineCompilation.cpp#19 edit


[ROCm/clr commit: d7247e104a]
Этот коммит содержится в:
foreman
2017-08-23 10:57:45 -05:00
родитель ca7523ca00
Коммит 67e05cf08b
14 изменённых файлов: 223 добавлений и 16 удалений
+7 -1
Просмотреть файл
@@ -585,7 +585,13 @@ amdcl::OCLLinker::link(llvm::Module* input, std::vector<std::unique_ptr<llvm::Mo
|| chip == "gfx900"
|| chip == "gfx901"
|| chip == "gfx902"
|| chip == "gfx903");
|| chip == "gfx903"
|| chip == "gfx904"
|| chip == "gfx905"
|| chip == "gfx906"
|| chip == "gfx907"
|| chip == "gfx1000"
|| chip == "gfx1001");
setISAVersion(getIsaType(aclutGetTargetInfo(Elf())));
LLVMBinary()->getContext().setAMDLLVMContextHook(&hookup_);
+20 -1
Просмотреть файл
@@ -26,6 +26,12 @@ static const std::string sgfx900 = "AMD:AMDGPU:9:0:0";
static const std::string sgfx901 = "AMD:AMDGPU:9:0:1";
static const std::string sgfx902 = "AMD:AMDGPU:9:0:2";
static const std::string sgfx903 = "AMD:AMDGPU:9:0:3";
static const std::string sgfx904 = "AMD:AMDGPU:9:0:4";
static const std::string sgfx905 = "AMD:AMDGPU:9:0:5";
static const std::string sgfx906 = "AMD:AMDGPU:9:0:6";
static const std::string sgfx907 = "AMD:AMDGPU:9:0:7";
static const std::string sgfx1000 = "AMD:AMDGPU:10:0:0";
static const std::string sgfx1001 = "AMD:AMDGPU:10:0:1";
// Utility function to set a flag in option structure
// of the aclDevCaps.
@@ -530,6 +536,12 @@ const std::string &getIsaTypeName(const aclTargetInfo *target)
case 901: return sgfx901;
case 902: return sgfx902;
case 903: return sgfx903;
case 904: return sgfx904;
case 905: return sgfx905;
case 906: return sgfx906;
case 907: return sgfx907;
case 1000: return sgfx1000;
case 1001: return sgfx1001;
}
}
@@ -591,13 +603,20 @@ int getIsaType(const aclTargetInfo *target)
case FAMILY_AI:
switch (Mapping.chip_enum) {
default: return 900;
case AI_GREENLAND_P_A0: return Mapping.xnack_supported ? 901 : 900;
case AI_GREENLAND_P_A0:
case AI_GREENLAND_P_A1: return Mapping.xnack_supported ? 901 : 900;
case AI_VEGA20_P_A0: return Mapping.xnack_supported ? 907 : 906;
}
case FAMILY_RV:
switch (Mapping.chip_enum) {
default: return 902;
case RAVEN_A0: return Mapping.xnack_supported ? 903 : 902;
}
case FAMILY_NV:
switch (Mapping.chip_enum) {
default: return 1000;
case NV_NAVI10_P_A0: return Mapping.xnack_supported ? 1001 : 1000;
}
}
}
+6
Просмотреть файл
@@ -213,6 +213,12 @@ static const char* calTargetMapping[] = {
IF(IS_BRAHMA,"","gfx901"),
IF(IS_BRAHMA,"","gfx902"),
IF(IS_BRAHMA,"","gfx903"),
IF(IS_BRAHMA,"","gfx904"),
IF(IS_BRAHMA,"","gfx905"),
IF(IS_BRAHMA,"","gfx906"),
IF(IS_BRAHMA,"","gfx907"),
IF(IS_BRAHMA,"","gfx1000"),
IF(IS_BRAHMA,"","gfx1001"),
};
#include "utils/v0_8/target_mappings_amdil.h"
+15 -2
Просмотреть файл
@@ -10,6 +10,7 @@
#include "cz_id.h"
#include "ai_id.h"
#include "rv_id.h"
#include "nv_id.h"
#include "atiid.h"
static const TargetMapping HSAILTargetMapping_0_8[] = {
@@ -34,17 +35,29 @@ static const TargetMapping HSAILTargetMapping_0_8[] = {
{ "VI", "Ellesmere", "GFX8", amd::GPU_Library_HSAIL, VI_ELLESMERE_P_A0, F_VI_BASE, true, false, FAMILY_VI, false },
{ "VI", "Ellesmere", "GFX8", amd::GPU_Library_HSAIL, VI_ELLESMERE_P_A1, F_VI_BASE, true, true, FAMILY_VI, false },
#ifndef BRAHMA
{ "AI", "gfx900", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A0, F_AI_BASE, true, true, FAMILY_AI },
{ "AI", "gfx900", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A0, F_AI_BASE, true, false, FAMILY_AI },
{ "AI", "gfx900", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A1, F_AI_BASE, true, true, FAMILY_AI },
{ "VI", "gfx804", "GFX8", amd::GPU_Library_HSAIL, VI_LEXA_V_A0, F_VI_BASE, true, true, FAMILY_VI },
{ "AI", "gfx901", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A0, F_AI_BASE, true, true, FAMILY_AI ,true },
{ "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", "gfx903", "GFX9", amd::GPU_Library_HSAIL, RAVEN_A0, F_AI_BASE, true, true, FAMILY_RV, true },
{ "AI", "gfx906", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA20_P_A0, F_AI_BASE, true, true, FAMILY_AI, false },
{ "AI", "gfx907", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA20_P_A0, F_AI_BASE, true, true, FAMILY_AI, true },
{ "NV", "gfx1000", "GFX10", amd::GPU_Library_HSAIL, NV_NAVI10_P_A0, F_AI_BASE, true, true, FAMILY_NV, false },
{ "NV", "gfx1001", "GFX10", amd::GPU_Library_HSAIL, NV_NAVI10_P_A0, F_AI_BASE, true, true, FAMILY_NV, true },
#else
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
#endif
InvalidTarget
};
+15 -2
Просмотреть файл
@@ -9,6 +9,7 @@
#include "ci_id.h"
#include "ai_id.h"
#include "rv_id.h"
#include "nv_id.h"
#include "atiid.h"
static const TargetMapping HSAIL64TargetMapping_0_8[] = {
@@ -33,17 +34,29 @@ static const TargetMapping HSAIL64TargetMapping_0_8[] = {
{ "VI", "Ellesmere", "GFX8", amd::GPU_Library_HSAIL, VI_ELLESMERE_P_A0, F_VI_BASE, true, false, FAMILY_VI, false },
{ "VI", "Ellesmere", "GFX8", amd::GPU_Library_HSAIL, VI_ELLESMERE_P_A1, F_VI_BASE, true, true, FAMILY_VI, false },
#ifndef BRAHMA
{ "AI", "gfx900", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A0, F_AI_BASE, true, true, FAMILY_AI, false },
{ "AI", "gfx900", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A0, F_AI_BASE, true, false, FAMILY_AI, false },
{ "AI", "gfx900", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A1, F_AI_BASE, true, true, FAMILY_AI, false },
{ "VI", "gfx804", "GFX8", amd::GPU_Library_HSAIL, VI_LEXA_V_A0, F_VI_BASE, true, true, FAMILY_VI, false },
{ "AI", "gfx901", "GFX9", amd::GPU_Library_HSAIL, AI_GREENLAND_P_A0, F_AI_BASE, true, true, FAMILY_AI, true },
{ "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", "gfx903", "GFX9", amd::GPU_Library_HSAIL, RAVEN_A0, F_AI_BASE, true, true, FAMILY_RV, true },
{ "AI", "gfx906", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA20_P_A0, F_AI_BASE, true, true, FAMILY_AI, false },
{ "AI", "gfx907", "GFX9", amd::GPU_Library_HSAIL, AI_VEGA20_P_A0, F_AI_BASE, true, true, FAMILY_AI, true },
{ "NV", "gfx1000", "GFX10", amd::GPU_Library_HSAIL, NV_NAVI10_P_A0, F_AI_BASE, true, true, FAMILY_NV, false },
{ "NV", "gfx1001", "GFX10", amd::GPU_Library_HSAIL, NV_NAVI10_P_A0, F_AI_BASE, true, true, FAMILY_NV, true },
#else
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
UnknownTarget,
#endif
InvalidTarget
};
+24 -1
Просмотреть файл
@@ -157,6 +157,13 @@ static const AMDDeviceInfo DeviceInfo[] = {
IF(IS_BRAHMA, "", "gfx901"), 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"),
IF(IS_BRAHMA, "", "gfx904"), 4, 16, 1, 256, 64 * Ki, 32, 900 },
/* CAL_TARGET_VEGA20 */{ ED_ATI_CAL_MACHINE_VEGA20_ISA, IF(IS_BRAHMA, "", "gfx906"),
IF(IS_BRAHMA, "", "gfx906"), 4, 16, 1, 256, 64 * Ki, 32, 900 },
/* CAL_TARGET_NAVI10 */{ ED_ATI_CAL_MACHINE_NAVI10_ISA, IF(IS_BRAHMA, "", "gfx1000"),
IF(IS_BRAHMA, "", "gfx1000"), 4, 16, 1, 256, 64 * Ki, 32, 1000 },
};
enum gfx_handle {
@@ -168,7 +175,15 @@ enum gfx_handle {
gfx804 = 804,
gfx810 = 810,
gfx900 = 900,
gfx901 = 901
gfx901 = 901,
gfx902 = 902,
gfx903 = 903,
gfx904 = 904,
gfx905 = 905,
gfx906 = 906,
gfx907 = 907,
gfx1000 = 1000,
gfx1001 = 1001
};
static const char* Gfx700 = "AMD:AMDGPU:7:0:0";
@@ -179,6 +194,14 @@ static const char* Gfx804 = "AMD:AMDGPU:8:0:4";
static const char* Gfx810 = "AMD:AMDGPU:8:1:0";
static const char* Gfx900 = "AMD:AMDGPU:9:0:0";
static const char* Gfx901 = "AMD:AMDGPU:9:0:1";
static const char* Gfx902 = "AMD:AMDGPU:9:0:2";
static const char* Gfx903 = "AMD:AMDGPU:9:0:3";
static const char* Gfx904 = "AMD:AMDGPU:9:0:4";
static const char* Gfx905 = "AMD:AMDGPU:9:0:5";
static const char* Gfx906 = "AMD:AMDGPU:9:0:6";
static const char* Gfx907 = "AMD:AMDGPU:9:0:7";
static const char* Gfx1000 = "AMD:AMDGPU:10:0:0";
static const char* Gfx1001 = "AMD:AMDGPU:10:0:1";
// Supported OpenCL versions
enum OclVersion { OpenCL10, OpenCL11, OpenCL12, OpenCL20 };
+5 -1
Просмотреть файл
@@ -142,6 +142,9 @@ bool NullDevice::create(CALtarget target) {
case CAL_TARGET_LEXA:
case CAL_TARGET_RAVEN:
case CAL_TARGET_POLARIS22:
case CAL_TARGET_VEGA12:
case CAL_TARGET_VEGA20:
case CAL_TARGET_NAVI10:
calAttr.doublePrecision = CAL_TRUE;
calAttr.isOpenCL200Device = CAL_TRUE;
break;
@@ -812,7 +815,8 @@ bool Device::create(CALuint ordinal, CALuint numOfDevices) {
hwInfo_ = &DeviceInfo[calTarget_];
if ((GPU_ENABLE_PAL == 2) &&
(calTarget_ == CAL_TARGET_GREENLAND || calTarget_ == CAL_TARGET_RAVEN)) {
(calTarget_ == CAL_TARGET_GREENLAND || calTarget_ == CAL_TARGET_RAVEN ||
calTarget_ >= CAL_TARGET_VEGA12)) {
return false;
}
+55
Просмотреть файл
@@ -2227,6 +2227,39 @@ hsa_isa_t ORCAHSALoaderContext::IsaFromName(const char* name) {
isa.handle = gfx901;
return isa;
}
if (!strcmp(Gfx902, name)) {
isa.handle = gfx902;
return isa;
}
if (!strcmp(Gfx903, name)) {
isa.handle = gfx903;
return isa;
}
if (!strcmp(Gfx904, name)) {
isa.handle = gfx904;
return isa;
}
if (!strcmp(Gfx905, name)) {
isa.handle = gfx905;
return isa;
}
if (!strcmp(Gfx906, name)) {
isa.handle = gfx906;
return isa;
}
if (!strcmp(Gfx907, name)) {
isa.handle = gfx907;
return isa;
}
if (!strcmp(Gfx1000, name)) {
isa.handle = gfx1000;
return isa;
}
if (!strcmp(Gfx1001, name)) {
isa.handle = gfx1001;
return isa;
}
return isa;
}
@@ -2262,13 +2295,35 @@ bool ORCAHSALoaderContext::IsaSupportedByAgent(hsa_agent_t agent, hsa_isa_t isa)
return false;
}
case gfx900:
case gfx901:
case gfx902:
case gfx903:
case gfx904:
case gfx905:
case gfx906:
case gfx907:
switch (program_->dev().hwInfo()->machine_) {
case ED_ATI_CAL_MACHINE_GREENLAND_ISA:
return isa.handle == gfx900 || isa.handle == gfx901;
case ED_ATI_CAL_MACHINE_RAVEN_ISA:
return isa.handle == gfx902 || isa.handle == gfx903;
case ED_ATI_CAL_MACHINE_VEGA12_ISA:
return isa.handle == gfx904 || isa.handle == gfx905;
case ED_ATI_CAL_MACHINE_VEGA20_ISA:
return isa.handle == gfx906 || isa.handle == gfx907;
default:
assert(0);
return false;
}
case gfx1000:
case gfx1001:
switch (program_->dev().hwInfo()->machine_) {
case ED_ATI_CAL_MACHINE_NAVI10_ISA:
return isa.handle == gfx1000 || isa.handle == gfx1001;
default:
assert(0);
return false;
}
}
}
+3
Просмотреть файл
@@ -164,6 +164,9 @@ bool Settings::create(const CALdeviceattribs& calAttr, bool reportAsOCL12Device,
// APU systems for AI
apuSystem_ = true;
case CAL_TARGET_GREENLAND:
case CAL_TARGET_VEGA12:
case CAL_TARGET_VEGA20:
case CAL_TARGET_NAVI10:
// TODO: specific codes for AI
aiPlus_ = true;
// Fall through to VI ...
+13
Просмотреть файл
@@ -513,6 +513,19 @@ CALGSLDevice::SetupContext(int32 &asic_id)
m_target = CAL_TARGET_POLARIS22;
m_elfmachine = ED_ATI_CAL_MACHINE_POLARIS22_ISA;
break;
case GSL_ATIASIC_ID_VEGA12:
m_target = CAL_TARGET_VEGA12;
m_elfmachine = ED_ATI_CAL_MACHINE_VEGA12_ISA;
break;
case GSL_ATIASIC_ID_VEGA20:
m_target = CAL_TARGET_VEGA20;
m_elfmachine = ED_ATI_CAL_MACHINE_VEGA20_ISA;
break;
case GSL_ATIASIC_ID_NAVI10:
m_target = CAL_TARGET_NAVI10;
m_elfmachine = ED_ATI_CAL_MACHINE_NAVI10_ISA;
break;
default:
// 6XX is not supported
m_adp->deleteContext(temp_cs);
+4 -1
Просмотреть файл
@@ -48,7 +48,10 @@ typedef enum CALtargetEnum {
CAL_TARGET_LEXA, /**< LEXA GPU ISA*/
CAL_TARGET_RAVEN, /**< RAVEN GPU ISA*/
CAL_TARGET_POLARIS22, /**< POLARIS22 GPU ISA*/
CAL_TARGET_LAST = CAL_TARGET_POLARIS22, /**< last */
CAL_TARGET_VEGA12, /**< VEGA12 GPU ISA*/
CAL_TARGET_VEGA20, /**< VEGA20 GPU ISA*/
CAL_TARGET_NAVI10, /**< NAVI10 GPU ISA*/
CAL_TARGET_LAST = CAL_TARGET_NAVI10, /**< last */
//##END_PRIVATE##
} CALtarget;
+20 -7
Просмотреть файл
@@ -153,6 +153,7 @@ static const AMDDeviceInfo GfxIpDeviceInfo[] = {
/* GFX800 */ {"gfx800", "gfx800", 4, 16, 1, 256, 64 * Ki, 32, 800},
/* GFX801 */ {"gfx801", "gfx801", 4, 16, 1, 256, 64 * Ki, 32, 801},
/* GFX900 */ {"gfx900", "gfx900", 4, 16, 1, 256, 64 * Ki, 32, 900},
/* GFX1000 */ {"gfx1000", "gfx1000", 4, 16, 1, 256, 64 * Ki, 32, 1000 },
};
// Ordering as per AsicRevision# in //depot/stg/pal/inc/core/palDevice.h and
@@ -160,16 +161,16 @@ static const AMDDeviceInfo GfxIpDeviceInfo[] = {
static const AMDDeviceInfo Gfx9PlusSubDeviceInfo[] = {
/* Vega10 */{"gfx900", "gfx900", 4, 16, 1, 256, 64 * Ki, 32, 900},
/* Vega10 XNACK */{"gfx901", "gfx901", 4, 16, 1, 256, 64 * Ki, 32, 901},
/* Vega12 */{0},
/* Vega12 XNACK */{0},
/* Vega20 */{0},
/* Vega20 XNACK */{0},
/* Vega12 */{"gfx904", "gfx904", 4, 16, 1, 256, 64 * Ki, 32, 904},
/* Vega12 XNACK */{"gfx905", "gfx905", 4, 16, 1, 256, 64 * Ki, 32, 905},
/* Vega20 */{"gfx906", "gfx906", 4, 16, 1, 256, 64 * Ki, 32, 906},
/* Vega20 XNACK */{"gfx907", "gfx907", 4, 16, 1, 256, 64 * Ki, 32, 907},
/* Raven */{"gfx902", "gfx902", 4, 16, 1, 256, 64 * Ki, 32, 902},
/* Raven XNACK */{"gfx903", "gfx903", 4, 16, 1, 256, 64 * Ki, 32, 903},
/* Raven2 */{0},
/* Raven2 XNACK */{0},
/* Navi10 */{0},
/* Navi10 XNACK */{0},
/* Navi10 */{"gfx1000", "gfx1000", 4, 16, 1, 256, 64 * Ki, 32, 1000},
/* Navi10 XNACK */{"gfx1001", "gfx1001", 4, 16, 1, 256, 64 * Ki, 32, 1001},
};
enum gfx_handle {
@@ -183,7 +184,13 @@ enum gfx_handle {
gfx900 = 900,
gfx901 = 901,
gfx902 = 902,
gfx903 = 903
gfx903 = 903,
gfx904 = 904,
gfx905 = 905,
gfx906 = 906,
gfx907 = 907,
gfx1000 = 1000,
gfx1001 = 1001
};
static const char* Gfx700 = "AMD:AMDGPU:7:0:0";
@@ -196,6 +203,12 @@ static const char* Gfx900 = "AMD:AMDGPU:9:0:0";
static const char* Gfx901 = "AMD:AMDGPU:9:0:1";
static const char* Gfx902 = "AMD:AMDGPU:9:0:2";
static const char* Gfx903 = "AMD:AMDGPU:9:0:3";
static const char* Gfx904 = "AMD:AMDGPU:9:0:4";
static const char* Gfx905 = "AMD:AMDGPU:9:0:5";
static const char* Gfx906 = "AMD:AMDGPU:9:0:6";
static const char* Gfx907 = "AMD:AMDGPU:9:0:7";
static const char* Gfx1000 = "AMD:AMDGPU:10:0:0";
static const char* Gfx1001 = "AMD:AMDGPU:10:0:1";
// Supported OpenCL versions
enum OclVersion { OpenCL10, OpenCL11, OpenCL12, OpenCL20 };
+34
Просмотреть файл
@@ -899,6 +899,31 @@ hsa_isa_t PALHSALoaderContext::IsaFromName(const char* name) {
isa.handle = gfx903;
return isa;
}
if (!strcmp(Gfx904, name)) {
isa.handle = gfx904;
return isa;
}
if (!strcmp(Gfx905, name)) {
isa.handle = gfx905;
return isa;
}
if (!strcmp(Gfx906, name)) {
isa.handle = gfx906;
return isa;
}
if (!strcmp(Gfx907, name)) {
isa.handle = gfx907;
return isa;
}
if (!strcmp(Gfx1000, name)) {
isa.handle = gfx1000;
return isa;
}
if (!strcmp(Gfx1001, name)) {
isa.handle = gfx1001;
return isa;
}
return isa;
}
@@ -928,6 +953,15 @@ bool PALHSALoaderContext::IsaSupportedByAgent(hsa_agent_t agent, hsa_isa_t isa)
case gfx902:
case gfx903:
return isa.handle == gfx902 || isa.handle == gfx903;
case gfx904:
case gfx905:
return isa.handle == gfx904 || isa.handle == gfx905;
case gfx906:
case gfx907:
return isa.handle == gfx906 || isa.handle == gfx907;
case gfx1000:
case gfx1001:
return isa.handle == gfx1000 || isa.handle == gfx1001;
}
}
+2
Просмотреть файл
@@ -171,6 +171,8 @@ bool Settings::create(const Pal::DeviceProperties& palProp,
assert(0 && "Unknown GfxIP type!");
return false;
}
case Pal::AsicRevision::Navi10:
case Pal::AsicRevision::Vega20:
case Pal::AsicRevision::Vega10:
case Pal::AsicRevision::Raven:
aiPlus_ = true;