Add gfx1013 support

Change-Id: I7122caea3ef2254b50bde25ec545116685452116
Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>


[ROCm/ROCR-Runtime commit: 80206af91e]
This commit is contained in:
Oak Zeng
2021-06-14 18:10:27 -05:00
committed by Lang Yu
orang tua b1fb887b40
melakukan f590465aa3
6 mengubah file dengan 13 tambahan dan 4 penghapusan
@@ -602,8 +602,9 @@ void GpuAgent::InitDma() {
auto blit_lambda = [this](bool use_xgmi, lazy_ptr<core::Queue>& queue) {
Flag::SDMA_OVERRIDE sdma_override = core::Runtime::runtime_singleton_->flag().enable_sdma();
// User SDMA queues are unstable on gfx8.
bool use_sdma = ((isa_->GetMajorVersion() != 8));
// User SDMA queues are unstable on gfx8 and unsupported on gfx1013.
bool use_sdma =
((isa_->GetMajorVersion() != 8) && (isa_->GetVersion() != std::make_tuple(10, 1, 3)));
if (sdma_override != Flag::SDMA_DEFAULT) use_sdma = (sdma_override == Flag::SDMA_ENABLE);
if (use_sdma && (HSA_PROFILE_BASE == profile_)) {
@@ -305,6 +305,9 @@ constexpr size_t hsa_name_size = 63;
ISAREG_ENTRY_GEN("gfx1012", 10, 1, 2, unsupported, any)
ISAREG_ENTRY_GEN("gfx1012:xnack-", 10, 1, 2, unsupported, disabled)
ISAREG_ENTRY_GEN("gfx1012:xnack+", 10, 1, 2, unsupported, enabled)
ISAREG_ENTRY_GEN("gfx1013", 10, 1, 3, unsupported, any)
ISAREG_ENTRY_GEN("gfx1013:xnack-", 10, 1, 3, unsupported, disabled)
ISAREG_ENTRY_GEN("gfx1013:xnack+", 10, 1, 3, unsupported, enabled)
ISAREG_ENTRY_GEN("gfx1030", 10, 3, 0, unsupported, unsupported)
ISAREG_ENTRY_GEN("gfx1031", 10, 3, 1, unsupported, unsupported)
ISAREG_ENTRY_GEN("gfx1032", 10, 3, 2, unsupported, unsupported)
@@ -88,6 +88,7 @@ extern uint8_t ocl_blit_object_gfx90c[];
extern uint8_t ocl_blit_object_gfx1010[];
extern uint8_t ocl_blit_object_gfx1011[];
extern uint8_t ocl_blit_object_gfx1012[];
extern uint8_t ocl_blit_object_gfx1013[];
extern uint8_t ocl_blit_object_gfx1030[];
extern uint8_t ocl_blit_object_gfx1031[];
extern uint8_t ocl_blit_object_gfx1032[];
@@ -1007,6 +1008,8 @@ hsa_status_t BlitKernel::GetPatchedBlitObject(const char* agent_name,
*blit_code_object = ocl_blit_object_gfx1011;
} else if (sname == "gfx1012") {
*blit_code_object = ocl_blit_object_gfx1012;
} else if (sname == "gfx1013") {
*blit_code_object = ocl_blit_object_gfx1013;
} else if (sname == "gfx1030") {
*blit_code_object = ocl_blit_object_gfx1030;
} else if (sname == "gfx1031") {
@@ -69,7 +69,7 @@ endif()
# Determine the target devices if not specified
if (NOT DEFINED TARGET_DEVICES)
set (TARGET_DEVICES "gfx700;gfx701;gfx702;gfx801;gfx802;gfx803;gfx805;gfx810;gfx900;gfx902;gfx904;gfx906;gfx908;gfx909;gfx90a;gfx90c;gfx1010;gfx1011;gfx1012;gfx1030;gfx1031;gfx1032;gfx1033;gfx1034;gfx1035")
set (TARGET_DEVICES "gfx700;gfx701;gfx702;gfx801;gfx802;gfx803;gfx805;gfx810;gfx900;gfx902;gfx904;gfx906;gfx908;gfx909;gfx90a;gfx90c;gfx1010;gfx1011;gfx1012;gfx1013;gfx1030;gfx1031;gfx1032;gfx1033;gfx1034;gfx1035")
endif()
set( TARGET_DEVICES ${TARGET_DEVICES} CACHE STRING "Build targets" FORCE )
@@ -120,10 +120,11 @@ enum : unsigned {
EF_AMDGPU_MACH_AMDGCN_GFX90A = 0x03f,
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X40 = 0x040,
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X41 = 0x041,
EF_AMDGPU_MACH_AMDGCN_GFX1013 = 0x042,
// First/last AMDGCN-based processors.
EF_AMDGPU_MACH_AMDGCN_FIRST = EF_AMDGPU_MACH_AMDGCN_GFX600,
EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX90A,
EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX1013,
// Indicates if the "xnack" target feature is enabled for all code contained
// in the object.
@@ -573,6 +573,7 @@ namespace code {
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1010: name = "gfx1010"; xnack_supported = true; sramecc_supported = false; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1011: name = "gfx1011"; xnack_supported = true; sramecc_supported = false; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1012: name = "gfx1012"; xnack_supported = true; sramecc_supported = false; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1013: name = "gfx1013"; xnack_supported = true; sramecc_supported = false; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1030: name = "gfx1030"; xnack_supported = false; sramecc_supported = false; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1031: name = "gfx1031"; xnack_supported = false; sramecc_supported = false; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1032: name = "gfx1032"; xnack_supported = false; sramecc_supported = false; break;