Program Listing for File chipid.h
↰ Return to documentation for file (include/embers/amdgpu/chipid.h
)
/* Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved */
#ifndef _EMBERS_AMDGPU_CHIPID_H_
#define _EMBERS_AMDGPU_CHIPID_H_
#include <hip/hip_runtime.h>
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_