CLRX
1
An unofficial OpenCL extensions designed for Radeon GPUs
|
GPU identification utilities. More...
Go to the source code of this file.
Classes | |
class | CLRX::GPUIdException |
GPUId exception class. More... | |
struct | CLRX::AMDGPUArchVersion |
structure helper for AMDGPU architecture version More... | |
Namespaces | |
CLRX | |
main namespace | |
Typedefs | |
typedef uint16_t | CLRX::GPUArchMask |
GPU architecture mask (one bit represents single GPU architecture) | |
Enumerations | |
enum | CLRX::GPUDeviceType : cxbyte { CLRX::GPUDeviceType::CAPE_VERDE = 0, CLRX::GPUDeviceType::PITCAIRN, CLRX::GPUDeviceType::TAHITI, CLRX::GPUDeviceType::OLAND, CLRX::GPUDeviceType::BONAIRE, CLRX::GPUDeviceType::SPECTRE, CLRX::GPUDeviceType::SPOOKY, CLRX::GPUDeviceType::KALINDI, CLRX::GPUDeviceType::HAINAN, CLRX::GPUDeviceType::HAWAII, CLRX::GPUDeviceType::ICELAND, CLRX::GPUDeviceType::TONGA, CLRX::GPUDeviceType::MULLINS, CLRX::GPUDeviceType::FIJI, CLRX::GPUDeviceType::CARRIZO, DUMMY, GOOSE, HORSE, STONEY, ELLESMERE, BAFFIN, GFX804, GFX900, GFX901, GFX902, GFX903, GFX904, GFX905, GFX906, GFX907, CLRX::GPUDeviceType::GPUDEVICE_MAX = GFX907, CLRX::GPUDeviceType::RADEON_HD7700 = CAPE_VERDE, CLRX::GPUDeviceType::RADEON_HD7800 = PITCAIRN, CLRX::GPUDeviceType::RADEON_HD7900 = TAHITI, CLRX::GPUDeviceType::RADEON_R7_250 = OLAND, CLRX::GPUDeviceType::RADEON_R7_260 = BONAIRE, CLRX::GPUDeviceType::RADEON_R9_290 = HAWAII } |
type of GPU device More... | |
enum | CLRX::GPUArchitecture : cxbyte { CLRX::GPUArchitecture::GCN1_0 = 0, CLRX::GPUArchitecture::GCN1_1, CLRX::GPUArchitecture::GCN1_2, CLRX::GPUArchitecture::GCN1_4, CLRX::GPUArchitecture::GCN1_4_1, GPUARCH_MAX = GCN1_4_1 } |
GPU architecture. More... | |
enum | : GPUArchMask { ARCH_SOUTHERN_ISLANDS = 1, ARCH_SEA_ISLANDS = 2, ARCH_VOLCANIC_ISLANDS = 4, ARCH_HD7X00 = 1, ARCH_RX2X0 = 2, ARCH_RX3X0 = 4, ARCH_RXVEGA = 8, ARCH_VEGA20 = 16, ARCH_GCN_1_0_1 = 0x3, ARCH_GCN_1_1_2 = 0x6, ARCH_GCN_1_1_2_4 = 0x1e, ARCH_GCN_1_2_4 = 0x1c, ARCH_GCN_1_4 = 0x18, ARCH_GCN_ALL = 0xffff } |
enum | : Flags { REGCOUNT_NO_VCC = 1, REGCOUNT_NO_FLAT = 2, REGCOUNT_NO_XNACK = 4, REGCOUNT_NO_EXTRA = 0xffff } |
enum | : cxuint { REGTYPE_SGPR = 0, REGTYPE_VGPR } |
enum | : Flags { GCN_VCC = 1, GCN_FLAT = 2, GCN_XNACK = 4 } |
enum | : Flags { GPUSETUP_TGSIZE_EN = 1, GPUSETUP_SCRATCH_EN = 2 } |
enum | : cxuint { MAX_REGTYPES_NUM = 4 } |
enum | CLRX::GPUArchVersionTable : cxuint { CLRX::GPUArchVersionTable::AMDCL2 = 0, CLRX::GPUArchVersionTable::OPENSOURCE, CLRX::GPUArchVersionTable::ROCM } |
ADMGPUArchValues table type. More... | |
Functions | |
GPUDeviceType | CLRX::getGPUDeviceTypeFromName (const char *name) |
get GPU device type from name | |
const char * | CLRX::getGPUDeviceTypeName (GPUDeviceType deviceType) |
get GPU device type name | |
GPUArchitecture | CLRX::getGPUArchitectureFromName (const char *name) |
get GPU architecture from name | |
GPUArchitecture | CLRX::getGPUArchitectureFromDeviceType (GPUDeviceType deviceType) |
get GPUArchitecture from GPU device type | |
GPUDeviceType | CLRX::getLowestGPUDeviceTypeFromArchitecture (GPUArchitecture arch) |
get lowest GPU device for architecture | |
const char * | CLRX::getGPUArchitectureName (GPUArchitecture architecture) |
get GPU architecture name | |
bool | CLRX::isThisGPUArchitecture (GPUArchitecture requiredArch, GPUArchitecture thisArch) |
check whether is this GPU architecture | |
cxuint | CLRX::getGPUMaxRegistersNum (GPUArchitecture architecture, cxuint regType, Flags flags=0) |
get maximum available registers for GPU (type: 0 - scalar, 1 - vector) | |
cxuint | CLRX::getGPUMaxRegsNumByArchMask (GPUArchMask archMask, cxuint regType) |
get maximum available registers for GPU (type: 0 - scalar, 1 - vector) | |
bool | CLRX::isSpecialSGPRRegister (GPUArchMask archMask, cxuint index) |
get maximum number of scalar register + extra scalar reg (VCC, FLAT_SCRATCH, ...) | |
void | CLRX::getGPUSetupMinRegistersNum (GPUArchitecture architecture, cxuint dimMask, cxuint userDataNum, Flags flags, cxuint *gprsOut) |
get minimal number of required registers | |
cxuint | CLRX::getDefaultDimMask (GPUArchitecture architecture, uint32_t pgmRSRC2) |
get default dimMask from PGMRSRC2 | |
size_t | CLRX::getGPUMaxLocalSize (GPUArchitecture architecture) |
get maximum local size for GPU architecture | |
size_t | CLRX::getGPUMaxGDSSize (GPUArchitecture architecture) |
get maximum GDS size for GPU architecture | |
cxuint | CLRX::getGPUExtraRegsNum (GPUArchitecture architecture, cxuint regType, Flags flags) |
get extra registers (like VCC,FLAT_SCRATCH) | |
uint32_t | CLRX::calculatePgmRSrc1 (GPUArchitecture arch, cxuint vgprsNum, cxuint sgprsNum, cxuint priority, cxuint floatMode, bool privMode, bool dx10clamp, bool debugMode, bool ieeeMode) |
calculate PGMRSRC1 register value | |
uint32_t | CLRX::calculatePgmRSrc2 (GPUArchitecture arch, bool scratchEn, cxuint userDataNum, bool trapPresent, cxuint dimMask, cxuint defDimValues, bool tgSizeEn, cxuint ldsSize, cxuint exceptions) |
calculate PGMRSRC2 register value | |
AMDGPUArchVersion | CLRX::getGPUArchVersion (GPUDeviceType deviceType, GPUArchVersionTable table) |
get AMD GPU architecture version for specific device type and driver | |
GPUDeviceType | CLRX::getGPUDeviceTypeFromArchVersion (cxuint archMajor, cxuint archMinor, cxuint archStepping) |
GPU identification utilities.