From a3c3220c753c39878ad028da0230e7e615671962 Mon Sep 17 00:00:00 2001 From: foreman Date: Thu, 30 Mar 2017 13:57:45 -0400 Subject: [PATCH] P4 to Git Change 1392761 by wchau@wchau_OCL_boltzmann on 2017/03/30 13:38:04 SWDEV-79278 - [OpenCL][GFXIP9 Bring up] Add the Vega10 DeviceInfo entry and the gfx90X control functions. - modify getHsaDeviceId() to use HSA_AGENT_INFO_NAME to determine the HSA device ID. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#45 edit [ROCm/clr commit: 168c0a27b7fc166162960213151a3ebb243476f7] --- .../rocclr/runtime/device/rocm/rocdevice.cpp | 115 ++++-------------- 1 file changed, 21 insertions(+), 94 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp b/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp index 4fbbfad0c8..c50e4793bc 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp @@ -55,104 +55,31 @@ const bool roc::NullDevice::offlineDevice_= true; static HsaDeviceId getHsaDeviceId(hsa_agent_t device, uint32_t& pci_id) { - /* - * Use the device id to determine the ASIC family - */ - // TODO: translate from hsa_agent to internal AMD device id. - if (HSA_STATUS_SUCCESS != - hsa_agent_get_info( - device, (hsa_agent_info_t)HSA_AMD_AGENT_INFO_CHIP_ID, - &pci_id)) { + char agent_name[64] = { 0 }; + + if (HSA_STATUS_SUCCESS != hsa_agent_get_info(device, HSA_AGENT_INFO_NAME, agent_name)) { return HSA_INVALID_DEVICE_ID; } - switch (pci_id) { - case DEVICE_ID_SPECTRE_MOBILE: - case DEVICE_ID_SPECTRE_DESKTOP: - case DEVICE_ID_SPECTRE_LITE_MOBILE_1309: - case DEVICE_ID_SPECTRE_LITE_MOBILE_130A: - case DEVICE_ID_SPECTRE_SL_MOBILE_130B: - case DEVICE_ID_SPECTRE_MOBILE_130C: - case DEVICE_ID_SPECTRE_LITE_MOBILE_130D: - case DEVICE_ID_SPECTRE_SL_MOBILE_130E: - case DEVICE_ID_SPECTRE_DESKTOP_130F: - case DEVICE_ID_SPECTRE_WORKSTATION_1310: - case DEVICE_ID_SPECTRE_WORKSTATION_1311: - case DEVICE_ID_SPECTRE_LITE_DESKTOP_1313: - case DEVICE_ID_SPECTRE_SL_DESKTOP_1315: - case DEVICE_ID_SPECTRE_SL_MOBILE_1318: - case DEVICE_ID_SPECTRE_SL_EMBEDDED_131B: - case DEVICE_ID_SPECTRE_EMBEDDED_131C: - case DEVICE_ID_SPECTRE_LITE_EMBEDDED_131D: - return HSA_SPECTRE_ID; - case DEVICE_ID_SPOOKY_MOBILE: - case DEVICE_ID_SPOOKY_DESKTOP: - case DEVICE_ID_SPOOKY_DESKTOP_1312: - case DEVICE_ID_SPOOKY_DESKTOP_1316: - case DEVICE_ID_SPOOKY_MOBILE_1317: - return HSA_SPOOKY_ID; - case DEVICE_ID_VI_TONGA_P_6920: - case DEVICE_ID_VI_TONGA_P_6921: - case DEVICE_ID_VI_TONGA_P_6928: - case DEVICE_ID_VI_TONGA_P_692B: - case DEVICE_ID_VI_TONGA_P_692F: - case DEVICE_ID_VI_TONGA_P_6938: - case DEVICE_ID_VI_TONGA_P_6939: - return HSA_TONGA_ID; - case DEVICE_ID_VI_FIJI_P_7300: - return HSA_FIJI_ID; - case DEVICE_ID_CZ_9870: - case DEVICE_ID_CZ_9874: - case DEVICE_ID_CZ_9875: - case DEVICE_ID_CZ_9876: - case DEVICE_ID_CZ_9877: - return HSA_CARRIZO_ID; - case DEVICE_ID_VI_ICELAND_M_6900: - case DEVICE_ID_VI_ICELAND_M_6901: - case DEVICE_ID_VI_ICELAND_M_6902: - case DEVICE_ID_VI_ICELAND_M_6903: - case DEVICE_ID_VI_ICELAND_M_6907: - return HSA_ICELAND_ID; - case DEVICE_ID_CI_HAWAII_P_67A0: - case DEVICE_ID_CI_HAWAII_P_67A1: - case DEVICE_ID_CI_HAWAII_P_67A2: - case DEVICE_ID_CI_HAWAII_P_67A8: - case DEVICE_ID_CI_HAWAII_P_67A9: - case DEVICE_ID_CI_HAWAII_P_67AA: - case DEVICE_ID_CI_HAWAII_P_67B0: - case DEVICE_ID_CI_HAWAII_P_67B1: - case DEVICE_ID_CI_HAWAII_P_67B8: - case DEVICE_ID_CI_HAWAII_P_67B9: - case DEVICE_ID_CI_HAWAII_P_67BE: - return HSA_HAWAII_ID; - case DEVICE_ID_VI_ELLESMERE_P_67C0: - case DEVICE_ID_VI_ELLESMERE_P_67C1: - case DEVICE_ID_VI_ELLESMERE_P_67C2: - case DEVICE_ID_VI_ELLESMERE_P_67C4: - case DEVICE_ID_VI_ELLESMERE_P_67C7: - case DEVICE_ID_VI_ELLESMERE_P_67DF: - case DEVICE_ID_VI_ELLESMERE_P_67D0: - case DEVICE_ID_VI_ELLESMERE_P_67C8: - case DEVICE_ID_VI_ELLESMERE_P_67C9: - case DEVICE_ID_VI_ELLESMERE_P_67CA: - case DEVICE_ID_VI_ELLESMERE_P_67CC: - case DEVICE_ID_VI_ELLESMERE_P_67CF: - return HSA_ELLESMERE_ID; - case DEVICE_ID_VI_BAFFIN_M_67E0: - case DEVICE_ID_VI_BAFFIN_M_67E3: - case DEVICE_ID_VI_BAFFIN_M_67E8: - case DEVICE_ID_VI_BAFFIN_M_67EB: - case DEVICE_ID_VI_BAFFIN_M_67EF: - case DEVICE_ID_VI_BAFFIN_M_67FF: - case DEVICE_ID_VI_BAFFIN_M_67E1: - case DEVICE_ID_VI_BAFFIN_M_67E7: - case DEVICE_ID_VI_BAFFIN_M_67E9: - return HSA_BAFFIN_ID; - case DEVICE_ID_AI_GREENLAND_P_687F: - return HSA_VEGA10_ID; - default: + if (strncmp(agent_name, "gfx", 3) != 0) { return HSA_INVALID_DEVICE_ID; - } + } + + uint gfxipVersion = atoi(&agent_name[3]); + switch (gfxipVersion) { + case 701: + return HSA_HAWAII_ID; + case 801: + return HSA_CARRIZO_ID; + case 802: + return HSA_TONGA_ID; + case 803: + return HSA_FIJI_ID; + case 900: + return HSA_VEGA10_ID; + default: + return HSA_INVALID_DEVICE_ID; + } } bool NullDevice::create(const AMDDeviceInfo& deviceInfo) {