From ee6b0d92941be7c84ec538bfee48a013e9f63d73 Mon Sep 17 00:00:00 2001 From: Konstantin Zhuravlyov Date: Tue, 10 Nov 2020 13:20:36 -0500 Subject: [PATCH] SWDEV-198415 - Implement Target ID Proposal Changes from Jason Tang, Tony Tye Change-Id: Idb9b6923f12dfb61a5773c9aa3d3fbeb1327ec47 --- rocclr/device/comgrctx.cpp | 4 ++-- rocclr/elf/elfio/elf_types.hpp | 42 ++++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/rocclr/device/comgrctx.cpp b/rocclr/device/comgrctx.cpp index 492c5852cc..de195357cb 100644 --- a/rocclr/device/comgrctx.cpp +++ b/rocclr/device/comgrctx.cpp @@ -32,8 +32,8 @@ bool Comgr::LoadLib() { #if defined(COMGR_DYN_DLL) ClPrint(amd::LOG_INFO, amd::LOG_CODE, "Loading COMGR library."); static constexpr const char* ComgrLibName = - LP64_SWITCH(WINDOWS_SWITCH("amd_comgr32.dll", "libamd_comgr32.so.1"), - WINDOWS_SWITCH("amd_comgr.dll", "libamd_comgr.so.1")); + LP64_SWITCH(WINDOWS_SWITCH("amd_comgr32.dll", "libamd_comgr32.so.2"), + WINDOWS_SWITCH("amd_comgr.dll", "libamd_comgr.so.2")); cep_.handle = Os::loadLibrary(ComgrLibName); if (nullptr == cep_.handle) { return false; diff --git a/rocclr/elf/elfio/elf_types.hpp b/rocclr/elf/elfio/elf_types.hpp index 8215b6c247..f7a27a2c69 100644 --- a/rocclr/elf/elfio/elf_types.hpp +++ b/rocclr/elf/elfio/elf_types.hpp @@ -375,6 +375,9 @@ typedef uint64_t Elf64_Off; #define ELFOSABI_AMDGPU_MESA3D 66 // AMDGPU OS for Mesa3D compatible graphics // shaders and compute kernels. +#define ELFABIVERSION_AMDGPU_HSA_V2 0 +#define ELFABIVERSION_AMDGPU_HSA_V3 1 +#define ELFABIVERSION_AMDGPU_HSA_V4 2 // AMDGPU specific e_flags #define EF_AMDGPU_MACH 0x0ff // AMDGPU processor selection mask. @@ -417,10 +420,45 @@ typedef uint64_t Elf64_Off; #define EF_AMDGPU_MACH_AMDGCN_GFX902 0x02d #define EF_AMDGPU_MACH_AMDGCN_GFX904 0x02e #define EF_AMDGPU_MACH_AMDGCN_GFX906 0x02f +#define EF_AMDGPU_MACH_AMDGCN_GFX908 0x030 +#define EF_AMDGPU_MACH_AMDGCN_GFX909 0x031 +#define EF_AMDGPU_MACH_AMDGCN_GFX1010 0x033 +#define EF_AMDGPU_MACH_AMDGCN_GFX1011 0x034 +#define EF_AMDGPU_MACH_AMDGCN_GFX1012 0x035 +#define EF_AMDGPU_MACH_AMDGCN_GFX1030 0x036 +#define EF_AMDGPU_MACH_AMDGCN_GFX1031 0x037 + #define EF_AMDGPU_MACH_AMDGCN_RESERVED0 0x027 -#define EF_AMDGPU_MACH_AMDGCN_RESERVED1 0x030 +#define EF_AMDGPU_MACH_AMDGCN_RESERVED1 0x032 + #define EF_AMDGPU_MACH_AMDGCN_FIRST EF_AMDGPU_MACH_AMDGCN_GFX600 -#define EF_AMDGPU_MACH_AMDGCN_LAST EF_AMDGPU_MACH_AMDGCN_GFX906 +#define EF_AMDGPU_MACH_AMDGCN_LAST EF_AMDGPU_MACH_AMDGCN_GFX1031 + +// Indicates if the "xnack" target feature is enabled for all code contained +// in the object. +// +// Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V3. +#define EF_AMDGPU_FEATURE_XNACK_V3 0x100 +// Indicates if the "sramecc" target feature is enabled for all code +// contained in the object. +// +// Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V3. +#define EF_AMDGPU_FEATURE_SRAMECC_V3 0x200 + +// Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4. +#define EF_AMDGPU_FEATURE_XNACK_V4 0x300 +#define EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4 0x000 +#define EF_AMDGPU_FEATURE_XNACK_ANY_V4 0x100 +#define EF_AMDGPU_FEATURE_XNACK_OFF_V4 0x200 +#define EF_AMDGPU_FEATURE_XNACK_ON_V4 0x300 + +// SRAMECC selection mask for EF_AMDGPU_FEATURE_SRAMECC_* values. +// Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4. +#define EF_AMDGPU_FEATURE_SRAMECC_V4 0xc00 +#define EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4 0x000 +#define EF_AMDGPU_FEATURE_SRAMECC_ANY_V4 0x400 +#define EF_AMDGPU_FEATURE_SRAMECC_OFF_V4 0x800 +#define EF_AMDGPU_FEATURE_SRAMECC_ON_V4 0xc00 ///////////////////// // Sections constants