23 #ifndef __CLRX_GPUID_H__ 24 #define __CLRX_GPUID_H__ 121 REGCOUNT_NO_FLAT = 2,
122 REGCOUNT_NO_XNACK = 4,
123 REGCOUNT_NO_EXTRA = 0xffff
139 GPUSETUP_TGSIZE_EN = 1,
140 GPUSETUP_SCRATCH_EN = 2
178 cxuint priority,
cxuint floatMode,
bool privMode,
bool dx10clamp,
179 bool debugMode,
bool ieeeMode);
183 bool trapPresent,
cxuint dimMask,
cxuint defDimValues,
bool tgSizeEn,
uint32_t Flags
type for declaring various flags
Definition: Utilities.h:97
first iteration (Radeon HD7000 series)
virtual ~GPUIdException() noexcept=default
destructor
structure helper for AMDGPU architecture version
Definition: GPUId.h:169
GPUArchitecture getGPUArchitectureFromDeviceType(GPUDeviceType deviceType)
get GPUArchitecture from GPU device type
GPUArchitecture getGPUArchitectureFromName(const char *name)
get GPU architecture from name
GPUArchitecture
GPU architecture.
Definition: GPUId.h:92
GPUId exception class.
Definition: GPUId.h:35
GPUDeviceType getLowestGPUDeviceTypeFromArchitecture(GPUArchitecture arch)
get lowest GPU device for architecture
GPUArchVersionTable
ADMGPUArchValues table type.
Definition: GPUId.h:188
void getGPUSetupMinRegistersNum(GPUArchitecture architecture, cxuint dimMask, cxuint userDataNum, Flags flags, cxuint *gprsOut)
get minimal number of required registers
uint32_t calculatePgmRSrc2(GPUArchitecture arch, bool scratchEn, cxuint userDataNum, bool trapPresent, cxuint dimMask, cxuint defDimValues, bool tgSizeEn, cxuint ldsSize, cxuint exceptions)
calculate PGMRSRC2 register value
const char * getGPUDeviceTypeName(GPUDeviceType deviceType)
get GPU device type name
size_t getGPUMaxLocalSize(GPUArchitecture architecture)
get maximum local size for GPU architecture
cxuint getGPUMaxRegistersNum(GPUArchitecture architecture, cxuint regType, Flags flags=0)
get maximum available registers for GPU (type: 0 - scalar, 1 - vector)
uint32_t major
arch major number
Definition: GPUId.h:171
uint32_t stepping
arch stepping number
Definition: GPUId.h:173
unsigned char cxbyte
unsigned byte
Definition: Config.h:215
uint32_t calculatePgmRSrc1(GPUArchitecture arch, cxuint vgprsNum, cxuint sgprsNum, cxuint priority, cxuint floatMode, bool privMode, bool dx10clamp, bool debugMode, bool ieeeMode)
calculate PGMRSRC1 register value
main namespace
Definition: AsmDefs.h:38
GFX9 architecture (AMD RX VEGA)
unsigned int cxuint
unsigned int
Definition: Config.h:223
size_t getGPUMaxGDSSize(GPUArchitecture architecture)
get maximum GDS size for GPU architecture
cxuint getGPUMaxRegsNumByArchMask(uint16_t archMask, cxuint regType)
get maximum available registers for GPU (type: 0 - scalar, 1 - vector)
uint32_t minor
arch minor number
Definition: GPUId.h:172
GPUDeviceType
type of GPU device
Definition: GPUId.h:51
third iteration (Radeon Rx 300 series and Tonga)
ROCm (RadeonOpenCompute) format.
GPUIdException()=default
empty constructor
utilities for other libraries and programs
const char * getGPUArchitectureName(GPUArchitecture architecture)
get GPU architecture name
std::string message
message
Definition: Utilities.h:61
GPUDeviceType getGPUDeviceTypeFromName(const char *name)
get GPU device type from name
exception class
Definition: Utilities.h:58
AMDGPUArchVersion getGPUArchVersion(GPUDeviceType deviceType, GPUArchVersionTable table)
get AMD GPU architecture version for specific device type and driver
cxuint getGPUExtraRegsNum(GPUArchitecture architecture, cxuint regType, Flags flags)
get extra registers (like VCC,FLAT_SCRATCH)
second iteration (Radeon Rx 200 series)