diff --git a/rocclr/runtime/device/rocm/rocdefs.hpp b/rocclr/runtime/device/rocm/rocdefs.hpp index 1ad52a318a..bb76e93c1b 100644 --- a/rocclr/runtime/device/rocm/rocdefs.hpp +++ b/rocclr/runtime/device/rocm/rocdefs.hpp @@ -46,6 +46,9 @@ const HsaDeviceId HSA_VEGA20_ID = 13; const HsaDeviceId HSA_ARIEL_ID = 14; const HsaDeviceId HSA_NAVI10_ID = 15; const HsaDeviceId HSA_MI100_ID = 16; +const HsaDeviceId HSA_NAVI12_ID = 17; +const HsaDeviceId HSA_NAVI14_ID = 18; +const HsaDeviceId HSA_NAVI21_ID = 19; const HsaDeviceId HSA_INVALID_DEVICE_ID = -1; static const AMDDeviceInfo DeviceInfo[] = { @@ -72,7 +75,10 @@ static const AMDDeviceInfo DeviceInfo[] = { /* TARGET VEGA20 */ {HSA_VEGA20_ID, "", "gfx906", "gfx906", "gfx906", 4, 16, 1, 256, 64 * Ki, 32, 0, 0}, /* TARGET ARIEL */ {HSA_ARIEL_ID, "", "gfx1000", "gfx1000", "gfx1000", 2, 32, 1, 256, 64 * Ki, 32, 0, 0}, /* TARGET NAVI10 */ {HSA_NAVI10_ID, "", "gfx1010", "gfx1010", "gfx1010", 2, 32, 1, 256, 64 * Ki, 32, 0, 0}, - /* TARGET MI100 */ {HSA_MI100_ID, "", "gfx908", "gfx908", "gfx908", 4, 16, 1, 256, 64 * Ki, 32, 0, 0}}; + /* TARGET MI100 */ {HSA_MI100_ID, "", "gfx908", "gfx908", "gfx908", 4, 16, 1, 256, 64 * Ki, 32, 0, 0}, + /* TARGET NAVI12 */ {HSA_NAVI12_ID, "", "gfx1011", "gfx1011", "gfx1011", 2, 32, 1, 256, 64 * Ki, 32, 0, 0}, + /* TARGET NAVI14 */ {HSA_NAVI14_ID, "", "gfx1012", "gfx1012", "gfx1012", 2, 32, 1, 256, 64 * Ki, 32, 0, 0} +}; } const uint kMaxAsyncQueues = 8; // set to match the number of pipes, which is 8 diff --git a/rocclr/runtime/device/rocm/rocdevice.cpp b/rocclr/runtime/device/rocm/rocdevice.cpp index aa68692b82..7affd55112 100644 --- a/rocclr/runtime/device/rocm/rocdevice.cpp +++ b/rocclr/runtime/device/rocm/rocdevice.cpp @@ -99,6 +99,12 @@ static HsaDeviceId getHsaDeviceId(hsa_agent_t device, uint32_t& pci_id) { return HSA_ARIEL_ID; case 1010: return HSA_NAVI10_ID; + case 1011: + return HSA_NAVI12_ID; + case 1012: + return HSA_NAVI14_ID; + case 1030: + return HSA_NAVI21_ID; default: return HSA_INVALID_DEVICE_ID; }