23 #ifndef __CLRX_AMD3BINARIES_H__ 24 #define __CLRX_AMD3BINARIES_H__ 80 uint32_t groupSegmentFixedSize;
81 uint32_t privateSegmentFixedSize;
83 uint64_t kernelCodeEntryOffset;
89 uint16_t initialKernelExecState;
94 SLEV(groupSegmentFixedSize, groupSegmentFixedSize);
95 SLEV(privateSegmentFixedSize, privateSegmentFixedSize);
96 SLEV(kernelCodeEntryOffset, kernelCodeEntryOffset);
97 SLEV(pgmRsrc3, pgmRsrc3);
98 SLEV(pgmRsrc1, pgmRsrc1);
99 SLEV(pgmRsrc2, pgmRsrc2);
100 SLEV(initialKernelExecState, initialKernelExecState);
112 std::unique_ptr<Amd3Region[]> regions;
113 RegionMap regionsMap;
116 size_t globalDataSize;
121 const cxbyte *kernelDescData;
122 std::unique_ptr<Amd3Metadata> metadataInfo;
124 KernelDescMap kernelDescMap;
125 RegionMap kernelInfosMap;
136 uint32_t& archStepping)
const;
139 {
return regionsNum; }
143 {
return regions[index]; }
146 const Amd3Region& getRegion(
const char* name)
const;
160 {
return globalDataSize; }
164 {
return globalData; }
167 {
return globalData; }
171 {
return metadataSize; }
181 {
return metadataInfo!=
nullptr; }
185 {
return *metadataInfo; }
189 {
return metadataInfo->kernels.size(); }
193 {
return metadataInfo->kernels[index]; }
196 const Amd3KernelMetadata& getKernelInfo(
const char* name)
const;
200 {
return kernelDescOffsets.
size(); }
205 kernelDescData + kernelDescOffsets[index]); }
208 const Amd3KernelMetadata& getKernelDesc(
const char* name)
const;
216 {
return gotSymbols.
size(); }
220 {
return gotSymbols; }
224 {
return gotSymbols[index]; }
ROCmAccessQual
ROCm access qualifier.
Definition: ROCmBinaries.h:122
ROCmValueKind
ROCm Value kind.
Definition: ROCmBinaries.h:70
ROCm data region.
Definition: Amd3Binaries.h:61
non copyable and non movable base structure (class)
Definition: Utilities.h:46
uint32_t Flags
type for declaring various flags
Definition: Utilities.h:100
ROCm printf call info.
Definition: ROCmBinaries.h:182
const char * getMetadata() const
get metadata
Definition: Amd3Binaries.h:173
size_t getCodeSize() const
get code size
Definition: Amd3Binaries.h:149
class ElfBinaryTemplate< Elf64Types > ElfBinary64
type for 64-bit ELF binary
Definition: ElfBinaries.h:483
create region map
Definition: Amd3Binaries.h:46
common definitions for binaries
bool hasMetadataInfo() const
has metadata info
Definition: Amd3Binaries.h:180
size_t getKernelInfosNum() const
get kernel metadata infos number
Definition: Amd3Binaries.h:188
const Amd3KernelDescriptor & getKernelDesc(size_t index) const
get kernel descriptor
Definition: Amd3Binaries.h:203
an array class
Definition: Containers.h:41
ROCmValueType
ROCm argument's value type.
Definition: ROCmBinaries.h:91
Definition: Amd3Binaries.h:78
size_t size
data size
Definition: Amd3Binaries.h:64
Amd3RegionType
ROCm region/symbol type.
Definition: Amd3Binaries.h:54
const Amd3Region & getRegion(size_t index) const
get region by index
Definition: Amd3Binaries.h:142
size_t getGlobalDataSize() const
get global data size
Definition: Amd3Binaries.h:159
size_t getKernelDescsNum() const
get kernel descriptors number
Definition: Amd3Binaries.h:199
creation flags for ELF binaries
Definition: ElfBinaries.h:73
Amd3RegionType type
type
Definition: Amd3Binaries.h:66
create kernel metadata info map
Definition: Amd3Binaries.h:48
create metadata info object
Definition: Amd3Binaries.h:47
unsigned char cxbyte
unsigned byte
Definition: Config.h:229
cxbyte * getGlobalData()
get global data
Definition: Amd3Binaries.h:166
main namespace
Definition: AsmDefs.h:38
bool hasKernelDescMap() const
returns true if object has kernel descriptor map
Definition: Amd3Binaries.h:233
const CString & getTarget() const
get target
Definition: Amd3Binaries.h:211
const cxbyte * getCode() const
get code
Definition: Amd3Binaries.h:152
Definition: Amd3Binaries.h:104
Array< std::pair< CString, size_t > > RegionMap
region map type
Definition: Amd3Binaries.h:108
ROCm kernel argument.
Definition: ROCmBinaries.h:132
inlines for accessing memory words in LittleEndian and unaligned
bool hasKernelInfoMap() const
returns true if object has kernel info map
Definition: Amd3Binaries.h:230
size_t getRegionsNum() const
get regions number
Definition: Amd3Binaries.h:138
size_t getGotSymbol(size_t index) const
get GOT symbol index (from elfbin dynsymbols)
Definition: Amd3Binaries.h:223
GPUDeviceType
type of GPU device
Definition: GPUId.h:51
char * getMetadata()
get metadata
Definition: Amd3Binaries.h:176
utilities for other libraries and programs
CString regionName
region name
Definition: Amd3Binaries.h:63
const Array< size_t > getGotSymbols() const
get GOT symbols (indices) (from elfbin dynsymbols)
Definition: Amd3Binaries.h:219
GPU identification utilities.
create kernel metadata info map
Definition: Amd3Binaries.h:49
size_t size() const
returns number of elements
Definition: Containers.h:172
size_t offset
data
Definition: Amd3Binaries.h:65
ROCmAddressSpace
ROCm argument address space.
Definition: ROCmBinaries.h:109
bool hasRegionMap() const
returns true if kernel map exists
Definition: Amd3Binaries.h:227
const Amd3KernelMetadata & getKernelInfo(size_t index) const
get kernel metadata info
Definition: Amd3Binaries.h:192
void SLEV(uint8_t &r, uint8_t v)
save from/to little endian value
Definition: MemAccess.h:246
size_t getMetadataSize() const
get metadata size
Definition: Amd3Binaries.h:170
all ROCm binaries flags
Definition: Amd3Binaries.h:50
const cxbyte * getGlobalData() const
get global data
Definition: Amd3Binaries.h:163
size_t getGotSymbolsNum() const
get GOT symbol index (from elfbin dynsymbols)
Definition: Amd3Binaries.h:215
const ROCmMetadata & getMetadataInfo() const
get metadata info
Definition: Amd3Binaries.h:184
simple C-string container
Definition: CString.h:38
containers and other utils for other libraries and programs
cxbyte * getCode()
get code
Definition: Amd3Binaries.h:155