<squashed with patch for gfx950 generic targets>

Signed-off-by: Chris Freehill <Chris.Freehill@amd.com>

Change-Id: Ifec6d93cf46c7fbf736c6572882299e279260af6
Этот коммит содержится в:
David Yat Sin
2024-08-21 22:06:03 +00:00
коммит произвёл Amber Lin
родитель 7d64fe49fa
Коммит dab8f2fc65
8 изменённых файлов: 27 добавлений и 10 удалений
+1 -1
Просмотреть файл
@@ -110,7 +110,7 @@ else()
endif()
set(DEFAULT_TARGETS "gfx700;gfx701;gfx702;gfx801;gfx802;gfx803;gfx805;gfx810"
"gfx900;gfx902;gfx904;gfx906;gfx908;gfx909;gfx90a;gfx90c;gfx940;gfx941;gfx942"
"gfx900;gfx902;gfx904;gfx906;gfx908;gfx909;gfx90a;gfx90c;gfx940;gfx941;gfx942;gfx950"
"gfx1010;gfx1011;gfx1012;gfx1013;gfx1030;gfx1031;gfx1032;gfx1033;gfx1034;gfx1035;gfx1036"
"gfx1100;gfx1101;gfx1102;gfx1103;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201")
+8 -4
Просмотреть файл
@@ -391,6 +391,8 @@ void GpuAgent::AssembleShader(const char* func_name, AssembleTarget assemble_tar
asic_shader = &compiled_shader_it->second.compute_942;
break;
}
} else if(isa_->GetMinorVersion() == 5) {
asic_shader = &compiled_shader_it->second.compute_942;
} else {
asic_shader = &compiled_shader_it->second.compute_9;
}
@@ -447,10 +449,10 @@ void GpuAgent::AssembleShader(const char* func_name, AssembleTarget assemble_tar
AMD_HSA_BITS_SET(header->compute_pgm_rsrc2,
AMD_COMPUTE_PGM_RSRC_TWO_ENABLE_SGPR_WORKGROUP_ID_X, 1);
// gfx90a, gfx940, gfx941, gfx942
// gfx90a, gfx940, gfx941, gfx942, gfx950
if ((isa_->GetMajorVersion() == 9) &&
(((isa_->GetMinorVersion() == 0) && (isa_->GetStepping() == 10)) ||
(isa_->GetMinorVersion() == 4))) {
(isa_->GetMinorVersion() == 4 || isa_->GetMinorVersion() == 5))) {
// Program COMPUTE_PGM_RSRC3.ACCUM_OFFSET for 0 ACC VGPRs on gfx90a.
// FIXME: Assemble code objects from source at build time
int gran_accvgprs = ((gran_vgprs + 1) * 8) / 4 - 1;
@@ -1314,7 +1316,8 @@ hsa_status_t GpuAgent::GetInfo(hsa_agent_info_t attribute, void* value) const {
constexpr size_t hsa_name_size = 63;
const bool isa_has_image_support =
(isa_->GetMajorVersion() == 9 && isa_->GetMinorVersion() == 4) ? false : true;
(isa_->GetMajorVersion() == 9 &&
(isa_->GetMinorVersion() == 4 || isa_->GetMinorVersion() == 5)) ? false : true;
switch (attribute_u) {
case HSA_AGENT_INFO_NAME: {
@@ -2237,7 +2240,8 @@ void GpuAgent::BindTrapHandler() {
trap_code_buf_size_);
} else {
if (isa_->GetMajorVersion() >= 11 ||
(isa_->GetMajorVersion() == 9 && isa_->GetMinorVersion() == 4)) {
(isa_->GetMajorVersion() == 9 &&
(isa_->GetMinorVersion() == 4 || isa_->GetMinorVersion() == 5))) {
// No trap handler support without exception handling, soft error.
return;
}
+9
Просмотреть файл
@@ -422,6 +422,15 @@ const IsaRegistry::IsaMap& IsaRegistry::GetSupportedIsas() {
ISAREG_ENTRY_GEN("gfx942:sramecc-:xnack+", 9, 4, 2, disabled, enabled, 64, "gfx9-4-generic:sramecc-:xnack+")
ISAREG_ENTRY_GEN("gfx942:sramecc+:xnack-", 9, 4, 2, enabled, disabled, 64, "gfx9-4-generic:sramecc+:xnack-")
ISAREG_ENTRY_GEN("gfx942:sramecc+:xnack+", 9, 4, 2, enabled, enabled, 64, "gfx9-4-generic:sramecc+:xnack+")
ISAREG_ENTRY_GEN("gfx950", 9, 5, 0, any, any, 64, "gfx9-4-generic")
ISAREG_ENTRY_GEN("gfx950:xnack-", 9, 5, 0, any, disabled, 64, "gfx9-4-generic:xnack-")
ISAREG_ENTRY_GEN("gfx950:xnack+", 9, 5, 0, any, enabled, 64, "gfx9-4-generic:xnack+")
ISAREG_ENTRY_GEN("gfx950:sramecc-", 9, 5, 0, disabled, any, 64, "gfx9-4-generic:sramecc-")
ISAREG_ENTRY_GEN("gfx950:sramecc+", 9, 5, 0, enabled, any, 64, "gfx9-4-generic:sramecc+")
ISAREG_ENTRY_GEN("gfx950:sramecc-:xnack-", 9, 5, 0, disabled, disabled, 64, "gfx9-4-generic:sramecc-:xnack-")
ISAREG_ENTRY_GEN("gfx950:sramecc-:xnack+", 9, 5, 0, disabled, enabled, 64, "gfx9-4-generic:sramecc-:xnack+")
ISAREG_ENTRY_GEN("gfx950:sramecc+:xnack-", 9, 5, 0, enabled, disabled, 64, "gfx9-4-generic:sramecc+:xnack-")
ISAREG_ENTRY_GEN("gfx950:sramecc+:xnack+", 9, 5, 0, enabled, enabled, 64, "gfx9-4-generic:sramecc+:xnack+")
ISAREG_ENTRY_GEN("gfx1010", 10, 1, 0, unsupported, any, 32, "gfx10-1-generic")
ISAREG_ENTRY_GEN("gfx1010:xnack-", 10, 1, 0, unsupported, disabled, 32, "gfx10-1-generic:xnack-")
ISAREG_ENTRY_GEN("gfx1010:xnack+", 10, 1, 0, unsupported, enabled, 32, "gfx10-1-generic:xnack+")
+3 -3
Просмотреть файл
@@ -46,9 +46,9 @@ cmake_minimum_required ( VERSION 3.7 )
find_package(Clang REQUIRED HINTS ${CMAKE_PREFIX_PATH}/llvm PATHS /opt/rocm/llvm )
find_package(LLVM REQUIRED HINTS ${CMAKE_PREFIX_PATH}/llvm PATHS /opt/rocm/llvm )
set (TARGET_DEVS "gfx900;gfx940;gfx941;gfx942;gfx1010;gfx1030;gfx1100;gfx1200")
set (POSTFIX "9;940;941;942;1010;10;11;12")
set (SOURCE_SUFFIX ";;;;;;;_gfx12")
set (TARGET_DEVS "gfx900;gfx940;gfx941;gfx942;gfx950;gfx1010;gfx1030;gfx1100;gfx1200")
set (POSTFIX "9;940;941;942;950;1010;10;11;12")
set (SOURCE_SUFFIX ";;;;;;;;_gfx12")
if(${CMAKE_VERBOSE_MAKEFILE})
get_property(clang_path TARGET clang PROPERTY LOCATION)
+3
Просмотреть файл
@@ -88,6 +88,7 @@ extern uint8_t ocl_blit_object_gfx90c[];
extern uint8_t ocl_blit_object_gfx940[];
extern uint8_t ocl_blit_object_gfx941[];
extern uint8_t ocl_blit_object_gfx942[];
extern uint8_t ocl_blit_object_gfx950[];
extern uint8_t ocl_blit_object_gfx1010[];
extern uint8_t ocl_blit_object_gfx1011[];
extern uint8_t ocl_blit_object_gfx1012[];
@@ -1022,6 +1023,8 @@ hsa_status_t BlitKernel::GetPatchedBlitObject(const char* agent_name,
*blit_code_object = ocl_blit_object_gfx941;
} else if (sname == "gfx942") {
*blit_code_object = ocl_blit_object_gfx942;
} else if (sname == "gfx950") {
*blit_code_object = ocl_blit_object_gfx950;
} else if (sname == "gfx1010") {
*blit_code_object = ocl_blit_object_gfx1010;
} else if (sname == "gfx1011") {
+1 -1
Просмотреть файл
@@ -48,7 +48,7 @@ find_package(Clang REQUIRED HINTS ${CMAKE_PREFIX_PATH}/llvm PATHS /opt/rocm/llvm
# 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;gfx940;gfx941;gfx942"
"gfx900;gfx902;gfx904;gfx906;gfx908;gfx909;gfx90a;gfx90c;gfx940;gfx941;gfx942;gfx950"
"gfx1010;gfx1011;gfx1012;gfx1013;gfx1030;gfx1031;gfx1032;gfx1033;gfx1034;gfx1035;gfx1036"
"gfx1100;gfx1101;gfx1102;gfx1103;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201")
endif()
+1 -1
Просмотреть файл
@@ -136,7 +136,7 @@ enum : unsigned {
EF_AMDGPU_MACH_AMDGCN_GFX942 = 0x04c,
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X4D = 0x04d,
EF_AMDGPU_MACH_AMDGCN_GFX1201 = 0x04e,
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X4F = 0x04f,
EF_AMDGPU_MACH_AMDGCN_GFX950 = 0x04f,
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X50 = 0x050,
EF_AMDGPU_MACH_AMDGCN_GFX9_GENERIC = 0x051,
EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC = 0x052,
+1
Просмотреть файл
@@ -588,6 +588,7 @@ namespace code {
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX940: MI.Name = "gfx940"; MI.XnackSupported = true; MI.SrameccSupported = true; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX941: MI.Name = "gfx941"; MI.XnackSupported = true; MI.SrameccSupported = true; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX942: MI.Name = "gfx942"; MI.XnackSupported = true; MI.SrameccSupported = true; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX950: MI.Name = "gfx950"; MI.XnackSupported = true; MI.SrameccSupported = true; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1010: MI.Name = "gfx1010"; MI.XnackSupported = true; MI.SrameccSupported = false; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1011: MI.Name = "gfx1011"; MI.XnackSupported = true; MI.SrameccSupported = false; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1012: MI.Name = "gfx1012"; MI.XnackSupported = true; MI.SrameccSupported = false; break;