CLRX  1
An unofficial OpenCL extensions designed for Radeon GPUs
Classes | Namespaces | Typedefs | Enumerations | Functions
ROCmBinaries.h File Reference

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
 

Detailed Description

ROCm binaries handling.