.. _program_listing_file_include_embers_amdgpu_chipid.h: Program Listing for File chipid.h ================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/embers/amdgpu/chipid.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved */ #ifndef _EMBERS_AMDGPU_CHIPID_H_ #define _EMBERS_AMDGPU_CHIPID_H_ #include namespace embers { namespace amdgpu { enum class ChipID : int { NAVI10_W5700X = 0x7310, NAVI10_W5700 = 0x7312, NAVI10_5700 = 0x731b, NAVI10_5600 = 0x731f, NAVI21_V620 = 0x73a1, NAVI21_W6900X = 0x73a2, NAVI21_W6800 = 0x73a3, NAVI21_6950XT = 0x73a5, NAVI21_W6800X = 0x73ab, NAVI21_V620MX = 0x73ae, NAVI21_6900XT = 0x73af, NAVI21_6800XT = 0x73bf, NAVI31_W7900 = 0x7448, NAVI31_7900XT = 0x744c, NAVI31_W7800 = 0x745e, VEGA20_INSTINCT = 0x66a0, VEGA20_MI50 = 0x66a1, VEGA20 = 0x66a2, VEGA20_VEGAII = 0x66a3, VEGA20_VII = 0x66af, MI100_0 = 0x7388, MI100_1 = 0x738c, MI100_2 = 0x738e, MI210 = 0x740F, MI250X = 0x7408, MI250X_MI250 = 0x740c, MI300X = 0x74a1, MI300X_SRIOV = 0x74b5, MI300X_HF = 0x74a9, MI300X_HF_SRIOV = 0x74bd, MI300A = 0x74a0, MI300A_SRIOV = 0x74b4, MI308X = 0x74a2, MI308X_SRIOV = 0x74b6, MI325X = 0x74a5, MI325X_SRIOV = 0x74b9, }; __host__ __device__ inline bool IsVEGA20(ChipID id) { switch (id) { case ChipID::VEGA20_INSTINCT: return true; case ChipID::VEGA20_MI50: return true; case ChipID::VEGA20: return true; case ChipID::VEGA20_VEGAII: return true; case ChipID::VEGA20_VII: return true; default: return false; } } __host__ __device__ inline bool IsMI100(ChipID id) { switch (id) { case ChipID::MI100_0: return true; case ChipID::MI100_1: return true; case ChipID::MI100_2: return true; default: return false; } } __host__ __device__ inline bool IsNAVI10(ChipID id) { switch (id) { case ChipID::NAVI10_W5700X: return true; case ChipID::NAVI10_W5700: return true; case ChipID::NAVI10_5700: return true; case ChipID::NAVI10_5600: return true; default: return false; } } __host__ __device__ inline bool IsNAVI21(ChipID id) { switch (id) { case ChipID::NAVI21_V620: return true; case ChipID::NAVI21_W6900X: return true; case ChipID::NAVI21_W6800: return true; case ChipID::NAVI21_6950XT: return true; case ChipID::NAVI21_W6800X: return true; case ChipID::NAVI21_V620MX: return true; case ChipID::NAVI21_6900XT: return true; case ChipID::NAVI21_6800XT: return true; default: return false; } } __host__ __device__ inline bool IsNAVI31(ChipID id) { switch (id) { case ChipID::NAVI21_V620: return true; case ChipID::NAVI21_W6900X: return true; case ChipID::NAVI21_W6800: return true; case ChipID::NAVI21_6950XT: return true; case ChipID::NAVI21_W6800X: return true; case ChipID::NAVI21_V620MX: return true; case ChipID::NAVI21_6900XT: return true; case ChipID::NAVI21_6800XT: return true; case ChipID::NAVI31_W7900: return true; case ChipID::NAVI31_7900XT: return true; case ChipID::NAVI31_W7800: return true; default: return false; } } __host__ __device__ inline bool IsMI200(ChipID id) { switch (id) { case ChipID::MI210: return true; case ChipID::MI250X: return true; case ChipID::MI250X_MI250: return true; default: return false; } } __host__ __device__ inline bool IsMI300X(ChipID id) { switch (id) { case ChipID::MI300X: return true; case ChipID::MI300X_SRIOV: return true; default: return false; } } __host__ __device__ inline bool IsMI300XHF(ChipID id) { switch (id) { case ChipID::MI300X_HF: return true; case ChipID::MI300X_HF_SRIOV: return true; default: return false; } } __host__ __device__ inline bool IsMI300A(ChipID id) { switch (id) { case ChipID::MI300A: return true; default: return false; } } __host__ __device__ inline bool IsMI308X(ChipID id) { switch (id) { case ChipID::MI308X: return true; case ChipID::MI308X_SRIOV: return true; default: return false; } } __host__ __device__ inline bool IsMI325X(ChipID id) { switch (id) { case ChipID::MI325X: return true; case ChipID::MI325X_SRIOV: return true; default: return false; } } __host__ __device__ inline bool IsMI300(ChipID id) { return IsMI300A(id) || IsMI300X(id) || IsMI300XHF(id); } __host__ __device__ inline bool IsMI3XX(ChipID id) { return IsMI300(id) || IsMI308X(id) || IsMI325X(id) || IsMI300XHF(id); } } // namespace amdgpu } // namespace embers #endif // _EMBERS_AMDGPU_CHIPID_H_