Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
|
#include <JitEngineDeviceHIP.hpp>
Public Member Functions | |
void * | resolveDeviceGlobalAddr (const void *Addr) |
void | setLaunchBoundsForKernel (Module &M, Function &F, size_t GridSize, int BlockSize) |
void | setKernelDims (Module &M, dim3 &GridDim, dim3 &BlockDim) |
std::unique_ptr< Module > | extractModule (BinaryInfo &BinInfo) |
std::unique_ptr< MemoryBuffer > | codegenObject (Module &M, StringRef DeviceArch) |
hipFunction_t | getKernelFunctionFromImage (StringRef KernelName, const void *Image) |
hipError_t | launchKernelFunction (hipFunction_t KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, hipStream_t Stream) |
HashT | getModuleHash (BinaryInfo &BinInfo) |
![]() | |
DeviceError_t | compileAndRun (JITKernelInfo &KernelInfo, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, typename DeviceTraits< JitEngineDeviceHIP >::DeviceStream_t Stream) |
Module & | getModule (JITKernelInfo &KernelInfo) |
void | getLambdaJitValues (JITKernelInfo &KernelInfo, SmallVector< RuntimeConstant > &LambdaJitValuesVec) |
void | insertRegisterVar (const char *VarName, const void *Addr) |
void | registerLinkedBinary (FatbinWrapperT *FatbinWrapper, const char *ModuleId) |
void | registerFatBinary (void *Handle, FatbinWrapperT *FatbinWrapper, const char *ModuleId) |
void | registerFatBinaryEnd () |
void | registerFunction (void *Handle, void *Kernel, char *KernelName, int32_t *RCIndices, int32_t *RCTypes, int32_t NumRCs) |
bool | containsJITKernelInfo (const void *Func) |
std::optional< std::reference_wrapper< JITKernelInfo > > | getJITKernelInfo (const void *Func) |
HashT | getStaticHash (JITKernelInfo &KernelInfo) |
void | finalize () |
![]() | |
void | optimizeIR (Module &M, StringRef Arch, char OptLevel='3', unsigned CodegenOptLevel=3) |
bool | isProteusDisabled () |
void | enable () |
void | disable () |
Static Public Member Functions | |
static JitEngineDeviceHIP & | instance () |
static const SmallVector< StringRef > | gridDimXFnName () |
static const SmallVector< StringRef > | gridDimYFnName () |
static const SmallVector< StringRef > | gridDimZFnName () |
static const SmallVector< StringRef > | blockDimXFnName () |
static const SmallVector< StringRef > | blockDimYFnName () |
static const SmallVector< StringRef > | blockDimZFnName () |
static const SmallVector< StringRef > | blockIdxXFnName () |
static const SmallVector< StringRef > | blockIdxYFnName () |
static const SmallVector< StringRef > | blockIdxZFnName () |
static const SmallVector< StringRef > | threadIdxXFnName () |
static const SmallVector< StringRef > | threadIdxYFnName () |
static const SmallVector< StringRef > | threadIdxZFnName () |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
std::unique_ptr< MemoryBuffer > JitEngineDeviceHIP::codegenObject | ( | Module & | M, |
StringRef | DeviceArch | ||
) |
std::unique_ptr< Module > JitEngineDeviceHIP::extractModule | ( | BinaryInfo & | BinInfo | ) |
hipFunction_t JitEngineDeviceHIP::getKernelFunctionFromImage | ( | StringRef | KernelName, |
const void * | Image | ||
) |
HashT JitEngineDeviceHIP::getModuleHash | ( | BinaryInfo & | BinInfo | ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
static |
hipError_t JitEngineDeviceHIP::launchKernelFunction | ( | hipFunction_t | KernelFunc, |
dim3 | GridDim, | ||
dim3 | BlockDim, | ||
void ** | KernelArgs, | ||
uint64_t | ShmemSize, | ||
hipStream_t | Stream | ||
) |
void * JitEngineDeviceHIP::resolveDeviceGlobalAddr | ( | const void * | Addr | ) |
void proteus::JitEngineDeviceHIP::setKernelDims | ( | Module & | M, |
dim3 & | GridDim, | ||
dim3 & | BlockDim | ||
) |
void JitEngineDeviceHIP::setLaunchBoundsForKernel | ( | Module & | M, |
Function & | F, | ||
size_t | GridSize, | ||
int | BlockSize | ||
) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |