Add code object v5 support

Change-Id: I03522765056e99ed49e6c5e213ee3753852de27b


[ROCm/ROCR-Runtime commit: 9265409f08]
Cette révision appartient à :
Konstantin Zhuravlyov
2022-04-04 16:40:51 -04:00
révisé par Konstantin Zhuravlyov
Parent 6622fe0163
révision 625b1c99b3
3 fichiers modifiés avec 12 ajouts et 5 suppressions
+6 -3
Voir le fichier
@@ -74,7 +74,8 @@ enum {
// was never defined for V1.
ELFABIVERSION_AMDGPU_HSA_V2 = 0,
ELFABIVERSION_AMDGPU_HSA_V3 = 1,
ELFABIVERSION_AMDGPU_HSA_V4 = 2
ELFABIVERSION_AMDGPU_HSA_V4 = 2,
ELFABIVERSION_AMDGPU_HSA_V5 = 3
};
// AMDGPU specific e_flags.
@@ -150,7 +151,8 @@ enum : unsigned {
// XNACK selection mask for EF_AMDGPU_FEATURE_XNACK_* values.
//
// Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4.
// Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4,
// ELFABIVERSION_AMDGPU_HSA_V5.
EF_AMDGPU_FEATURE_XNACK_V4 = 0x300,
// XNACK is not supported.
EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4 = 0x000,
@@ -163,7 +165,8 @@ enum : unsigned {
// SRAMECC selection mask for EF_AMDGPU_FEATURE_SRAMECC_* values.
//
// Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4.
// Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4,
// ELFABIVERSION_AMDGPU_HSA_V5.
EF_AMDGPU_FEATURE_SRAMECC_V4 = 0xc00,
// SRAMECC is not supported.
EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4 = 0x000,
+5 -1
Voir le fichier
@@ -479,6 +479,10 @@ namespace code {
*major = 4;
*minor = 0;
return true;
case ELF::ELFABIVERSION_AMDGPU_HSA_V5:
*major = 5;
*minor = 0;
return true;
}
return false;
@@ -724,7 +728,7 @@ namespace code {
target_name += ":xnack+";
else if (xnack_supported)
target_name += ":xnack-";
} else if (code_object_major_version == 4) {
} else if (code_object_major_version == 4 || code_object_major_version == 5) {
switch (img->EFlags() & ELF::EF_AMDGPU_FEATURE_SRAMECC_V4) {
case ELF::EF_AMDGPU_FEATURE_SRAMECC_OFF_V4:
target_name += ":sramecc-";
+1 -1
Voir le fichier
@@ -1221,7 +1221,7 @@ hsa_status_t ExecutableImpl::LoadCodeObject(
return HSA_STATUS_ERROR_INVALID_CODE_OBJECT;
}
if (majorVersion < 1 || majorVersion > 4) {
if (majorVersion < 1 || majorVersion > 5) {
logger_ << "LoaderError: unsupported code object version: " << majorVersion << "\n";
return HSA_STATUS_ERROR_INVALID_CODE_OBJECT;
}