23 #ifndef __CLRX_ROCMBINARIES_H__ 24 #define __CLRX_ROCMBINARIES_H__ 77 std::unique_ptr<ROCmRegion[]> regions;
90 uint32_t& archStepping)
const;
94 {
return regionsNum; }
98 {
return regions[index]; }
101 const ROCmRegion& getRegion(
const char* name)
const;
117 ROCMFLAG_USE_DISPATCH_PTR = AMDHSAFLAG_USE_DISPATCH_PTR,
120 ROCMFLAG_USE_DISPATCH_ID = AMDHSAFLAG_USE_DISPATCH_ID,
121 ROCMFLAG_USE_FLAT_SCRATCH_INIT = AMDHSAFLAG_USE_FLAT_SCRATCH_INIT,
123 ROCMFLAG_USE_GRID_WORKGROUP_COUNT_BIT = AMDHSAFLAG_USE_GRID_WORKGROUP_COUNT_BIT,
128 ROCMFLAG_USE_ORDERED_APPEND_GDS = AMDHSAFLAG_USE_ORDERED_APPEND_GDS,
131 ROCMFLAG_USE_DYNAMIC_CALL_STACK = AMDHSAFLAG_USE_DYNAMIC_CALL_STACK,
147 ROCMSECTID_HASH = ELFSECTID_OTHER_BUILTIN,
150 ROCMSECTID_GPUCONFIG,
151 ROCMSECTID_MAX = ROCMSECTID_GPUCONFIG
178 void addEmptyKernel(
const char* kernelName);
189 void generateInternal(std::ostream* osPtr, std::vector<char>* vPtr,
207 size_t codeSize,
const cxbyte* code,
208 const std::vector<ROCmSymbolInput>& symbols);
211 size_t codeSize,
const cxbyte* code,
212 std::vector<ROCmSymbolInput>&& symbols);
227 void generate(std::ostream& os)
const;
230 void generate(std::vector<char>& vector)
const;
use private segment size
Definition: Commons.h:49
use workgroup count for Y dim
Definition: Commons.h:52
ROCm data region.
Definition: ROCmBinaries.h:58
non copyable and non movable base structure (class)
Definition: Utilities.h:43
uint32_t Flags
type for declaring various flags
Definition: Utilities.h:97
const ROCmInput * getInput() const
get input
Definition: ROCmBinaries.h:217
ROCmRegionType type
type
Definition: ROCmBinaries.h:63
size_t size
data size
Definition: ROCmBinaries.h:61
use 64-bit pointers
Definition: Commons.h:57
class ElfBinaryTemplate< Elf64Types > ElfBinary64
type for 64-bit ELF binary
Definition: ElfBinaries.h:461
CString regionName
region name
Definition: ROCmBinaries.h:60
AMD HSA kernel configuration structure.
Definition: Commons.h:64
common definitions for binaries
size_t offset
data
Definition: ROCmBinaries.h:62
all ROCm binaries flags
Definition: ROCmBinaries.h:46
an array class
Definition: Containers.h:38
const ROCmRegion & getRegion(size_t index) const
get region by index
Definition: ROCmBinaries.h:97
use kernel argument segment pointer
Definition: Commons.h:46
use privae segment buffer
Definition: Commons.h:43
size_t getCodeSize() const
get code size
Definition: ROCmBinaries.h:104
ROCm main binary for GPU for 64-bit mode.
Definition: ROCmBinaries.h:70
data object
Definition: ROCmBinaries.h:52
create region map
Definition: ROCmBinaries.h:45
bool isROCmBinary(size_t binarySize, const cxbyte *binary)
check whether is Amd OpenCL 2.0 binary
xnack enabled
Definition: Commons.h:60
unsigned char cxbyte
unsigned byte
Definition: Config.h:215
main namespace
Definition: AsmDefs.h:38
ROCmRegionType
ROCm region/symbol type.
Definition: ROCmBinaries.h:50
Array< std::pair< CString, size_t > > RegionMap
region map type
Definition: ROCmBinaries.h:74
debug enabled
Definition: Commons.h:59
unsigned int cxuint
unsigned int
Definition: Config.h:223
use ordered append gds
Definition: Commons.h:56
inlines for accessing memory words in LittleEndian and unaligned
GPUDeviceType
type of GPU device
Definition: GPUId.h:51
const cxbyte * getCode() const
get code
Definition: ROCmBinaries.h:107
ROCm binary generator.
Definition: ROCmBinaries.h:182
utilities for other libraries and programs
bool hasRegionMap() const
returns true if kernel map exists
Definition: ROCmBinaries.h:111
GPU identification utilities.
creation flags for ELF binaries
Definition: ElfBinaries.h:73
size_t getRegionsNum() const
get regions number
Definition: ROCmBinaries.h:93
use queue pointer
Definition: Commons.h:45
use workgroup count for X dim
Definition: Commons.h:51
OpenCL kernel to call ??
Definition: ROCmBinaries.h:54
use workgroup count for Z dim
Definition: Commons.h:53
simple C-string container
Definition: CString.h:38
containers and other utils for other libraries and programs
function kernel (code)
Definition: ROCmBinaries.h:53
AmdHsaKernelConfig ROCmKernelConfig
ROCm kernel configuration structure.
Definition: ROCmBinaries.h:137