CLRX
1
An unofficial OpenCL extensions designed for Radeon GPUs
|
ROCm binaries handling. More...
#include <CLRX/Config.h>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <string>
#include <vector>
#include <CLRX/amdbin/Elf.h>
#include <CLRX/amdbin/ElfBinaries.h>
#include <CLRX/amdbin/Commons.h>
#include <CLRX/utils/MemAccess.h>
#include <CLRX/utils/Containers.h>
#include <CLRX/utils/Utilities.h>
#include <CLRX/utils/GPUId.h>
#include <CLRX/utils/InputOutput.h>
Go to the source code of this file.
Classes | |
struct | CLRX::ROCmRegion |
ROCm data region. More... | |
struct | CLRX::ROCmKernelArgInfo |
ROCm kernel argument. More... | |
struct | CLRX::ROCmKernelMetadata |
ROCm kernel metadata. More... | |
struct | CLRX::ROCmPrintfInfo |
ROCm printf call info. More... | |
struct | CLRX::ROCmMetadata |
ROCm binary metadata. More... | |
class | CLRX::ROCmBinary |
ROCm main binary for GPU for 64-bit mode. More... | |
struct | CLRX::ROCmSymbolInput |
ROCm binary symbol input. More... | |
struct | CLRX::ROCmInput |
ROCm binary input structure. More... | |
class | CLRX::ROCmBinGenerator |
ROCm binary generator. More... | |
Namespaces | |
CLRX | |
main namespace | |
Typedefs | |
typedef AmdHsaKernelConfig | CLRX::ROCmKernelConfig |
ROCm kernel configuration structure. | |
Enumerations | |
enum | : Flags { CLRX::ROCMBIN_CREATE_REGIONMAP = 0x10, CLRX::ROCMBIN_CREATE_METADATAINFO = 0x20, CLRX::ROCMBIN_CREATE_KERNELINFOMAP = 0x40, CLRX::ROCMBIN_CREATE_ALL = ELF_CREATE_ALL | 0xfff0 } |
enum | CLRX::ROCmRegionType : uint8_t { CLRX::DATA, CLRX::DATA = 0, CLRX::FKERNEL, CLRX::KERNEL } |
ROCm region/symbol type. More... | |
enum | CLRX::ROCmValueKind : cxbyte { CLRX::ROCmValueKind::BY_VALUE = 0, CLRX::ROCmValueKind::GLOBAL_BUFFER, CLRX::ROCmValueKind::DYN_SHARED_PTR, CLRX::ROCmValueKind::SAMPLER, CLRX::ROCmValueKind::IMAGE, CLRX::ROCmValueKind::PIPE, CLRX::ROCmValueKind::QUEUE, CLRX::ROCmValueKind::HIDDEN_GLOBAL_OFFSET_X, CLRX::ROCmValueKind::HIDDEN_GLOBAL_OFFSET_Y, CLRX::ROCmValueKind::HIDDEN_GLOBAL_OFFSET_Z, CLRX::ROCmValueKind::HIDDEN_NONE, CLRX::ROCmValueKind::HIDDEN_PRINTF_BUFFER, CLRX::ROCmValueKind::HIDDEN_DEFAULT_QUEUE, CLRX::ROCmValueKind::HIDDEN_COMPLETION_ACTION, MAX_VALUE = HIDDEN_COMPLETION_ACTION } |
ROCm Value kind. More... | |
enum | CLRX::ROCmValueType : cxbyte { CLRX::ROCmValueType::STRUCTURE = 0, CLRX::ROCmValueType::INT8, CLRX::ROCmValueType::UINT8, CLRX::ROCmValueType::INT16, CLRX::ROCmValueType::UINT16, CLRX::ROCmValueType::FLOAT16, CLRX::ROCmValueType::INT32, CLRX::ROCmValueType::UINT32, CLRX::ROCmValueType::FLOAT32, CLRX::ROCmValueType::INT64, CLRX::ROCmValueType::UINT64, CLRX::ROCmValueType::FLOAT64, MAX_VALUE = FLOAT64 } |
ROCm argument's value type. More... | |
enum | CLRX::ROCmAddressSpace : cxbyte { NONE = 0, PRIVATE, GLOBAL, CONSTANT, LOCAL, GENERIC, REGION, MAX_VALUE = REGION } |
ROCm argument address space. | |
enum | CLRX::ROCmAccessQual : cxbyte { DEFAULT = 0, READ_ONLY, WRITE_ONLY, READ_WRITE, MAX_VALUE = READ_WRITE } |
ROCm access qualifier. | |
enum | { ROCMFLAG_USE_PRIVATE_SEGMENT_BUFFER = AMDHSAFLAG_USE_PRIVATE_SEGMENT_BUFFER, ROCMFLAG_USE_DISPATCH_PTR = AMDHSAFLAG_USE_DISPATCH_PTR, ROCMFLAG_USE_QUEUE_PTR = AMDHSAFLAG_USE_QUEUE_PTR, ROCMFLAG_USE_KERNARG_SEGMENT_PTR = AMDHSAFLAG_USE_KERNARG_SEGMENT_PTR, ROCMFLAG_USE_DISPATCH_ID = AMDHSAFLAG_USE_DISPATCH_ID, ROCMFLAG_USE_FLAT_SCRATCH_INIT = AMDHSAFLAG_USE_FLAT_SCRATCH_INIT, ROCMFLAG_USE_PRIVATE_SEGMENT_SIZE = AMDHSAFLAG_USE_PRIVATE_SEGMENT_SIZE, ROCMFLAG_USE_GRID_WORKGROUP_COUNT_BIT = AMDHSAFLAG_USE_GRID_WORKGROUP_COUNT_BIT, ROCMFLAG_USE_GRID_WORKGROUP_COUNT_X = AMDHSAFLAG_USE_GRID_WORKGROUP_COUNT_X, ROCMFLAG_USE_GRID_WORKGROUP_COUNT_Y = AMDHSAFLAG_USE_GRID_WORKGROUP_COUNT_Y, ROCMFLAG_USE_GRID_WORKGROUP_COUNT_Z = AMDHSAFLAG_USE_GRID_WORKGROUP_COUNT_Z, ROCMFLAG_USE_ORDERED_APPEND_GDS = AMDHSAFLAG_USE_ORDERED_APPEND_GDS, ROCMFLAG_PRIVATE_ELEM_SIZE_BIT = AMDHSAFLAG_PRIVATE_ELEM_SIZE_BIT, ROCMFLAG_USE_PTR64 = AMDHSAFLAG_USE_PTR64, ROCMFLAG_USE_DYNAMIC_CALL_STACK = AMDHSAFLAG_USE_DYNAMIC_CALL_STACK, ROCMFLAG_USE_DEBUG_ENABLED = AMDHSAFLAG_USE_DEBUG_ENABLED, ROCMFLAG_USE_XNACK_ENABLED = AMDHSAFLAG_USE_XNACK_ENABLED } |
enum | : cxuint { ROCMSECTID_HASH = ELFSECTID_OTHER_BUILTIN, ROCMSECTID_DYNAMIC, ROCMSECTID_NOTE, ROCMSECTID_GPUCONFIG, ROCMSECTID_RELADYN, ROCMSECTID_GOT, ROCMSECTID_MAX = ROCMSECTID_GOT } |
Functions | |
bool | CLRX::isROCmBinary (size_t binarySize, const cxbyte *binary) |
check whether is Amd OpenCL 2.0 binary | |
ROCm binaries handling.