Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
proteus::JitEngineDeviceHIP Class Reference

#include <JitEngineDeviceHIP.h>

Inheritance diagram for proteus::JitEngineDeviceHIP:
Inheritance graph
[legend]
Collaboration diagram for proteus::JitEngineDeviceHIP:
Collaboration graph
[legend]

Public Member Functions

void setKernelDims (Module &M, dim3 &GridDim, dim3 &BlockDim)
 
void extractModules (BinaryInfo &BinInfo)
 
std::unique_ptr< Module > tryExtractKernelModule (BinaryInfo &BinInfo, StringRef KernelName, LLVMContext &Ctx)
 
HashT getModuleHash (BinaryInfo &BinInfo)
 
std::unique_ptr< MemoryBuffer > codegenObject (Module &M, SmallPtrSetImpl< void * > &GlobalLinkedBinaries, const CodeGenerationConfig &CGConfig)
 
std::unique_ptr< Dispatcher > createDispatcher ()
 
- Public Member Functions inherited from proteus::JitEngineDevice< JitEngineDeviceHIP >
DeviceError_t compileAndRun (JITKernelInfo &KernelInfo, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, typename DeviceTraits< JitEngineDeviceHIP >::DeviceStream_t Stream)
 
std::pair< std::unique_ptr< Module >, std::unique_ptr< MemoryBuffer > > extractKernelModule (BinaryInfo &BinInfo, StringRef KernelName, LLVMContext &Ctx)
 
void extractModuleAndBitcode (JITKernelInfo &KernelInfo)
 
Module & getModule (JITKernelInfo &KernelInfo)
 
MemoryBufferRef getBitcode (JITKernelInfo &KernelInfo)
 
void getLambdaJitValues (SmallVector< uint64_t > &LambdaCalleeInfo, LambdaCallsiteRuntimeConstantsMap &LambdaJitValuesMap)
 
void registerVar (void *Handle, const char *VarName, const void *HostAddr, uint64_t VarSize)
 
void registerLinkedBinary (void *Handle, FatbinWrapperT *FatbinWrapper, const char *ModuleId)
 
void registerFatBinary (void *Handle, FatbinWrapperT *FatbinWrapper, const char *ModuleId)
 
void finalizeRegistration ()
 
void registerFunction (void *Handle, void *Kernel, char *KernelName, ArrayRef< RuntimeConstantInfo * > RCInfoArray)
 
void registerLambdaCallsiteLocation (void *Kernel, uint64_t LambdaID, uint32_t CallsiteIndex, uint32_t KernelArgIndex, int64_t Offset, RuntimeConstantType StorageType)
 
bool containsJITKernelInfo (const void *Func)
 
std::optional< std::reference_wrapper< JITKernelInfo > > getJITKernelInfo (const void *Func)
 
HashT getStaticHash (JITKernelInfo &KernelInfo)
 
StringRef getDeviceArch () const
 
- Public Member Functions inherited from proteus::JitEngine
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 ()
 
static bool optimizesBeforeCodegen (CodegenOption CGOption)
 

Additional Inherited Members

- Public Types inherited from proteus::JitEngineDevice< JitEngineDeviceHIP >
using DeviceError_t = typename DeviceTraits< JitEngineDeviceHIP >::DeviceError_t
 
using DeviceStream_t = typename DeviceTraits< JitEngineDeviceHIP >::DeviceStream_t
 
using KernelFunction_t = typename DeviceTraits< JitEngineDeviceHIP >::KernelFunction_t
 
- Public Attributes inherited from proteus::JitEngineDevice< JitEngineDeviceHIP >
std::unordered_map< std::string, FatbinWrapperT * > ModuleIdToFatBinary
 
std::unordered_map< const void *, BinaryInfo > HandleToBinaryInfo
 
SmallPtrSet< void *, 8 > GlobalLinkedBinaries
 
- Public Attributes inherited from proteus::JitEngine
InitLLVMTargets Init
 
- Protected Member Functions inherited from proteus::JitEngineDevice< JitEngineDeviceHIP >
 JitEngineDevice ()
 
 ~JitEngineDevice ()
 
Dispatcher & getDispatcher ()
 
- Protected Member Functions inherited from proteus::JitEngine
SmallVector< RuntimeConstant > getRuntimeConstantValues (void **KernelArgs, ArrayRef< RuntimeConstantInfo * > RCInfoArray)
 
 JitEngine ()
 
- Protected Attributes inherited from proteus::JitEngineDevice< JitEngineDeviceHIP >
std::unique_ptr< Dispatcher > Dispatch
 
std::string DeviceArch
 
DenseMap< const void *, JITKernelInfo > JITKernelInfoMap
 
DenseMap< const void *, LambdaCallsiteLocationMap > PendingLambdaCallsiteLocationInfo
 
std::unique_ptr< CompilerAsync > AsyncCompiler
 

Member Function Documentation

◆ blockDimXFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::blockDimXFnName ( )
inlinestatic

◆ blockDimYFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::blockDimYFnName ( )
inlinestatic

◆ blockDimZFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::blockDimZFnName ( )
inlinestatic

◆ blockIdxXFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::blockIdxXFnName ( )
inlinestatic

◆ blockIdxYFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::blockIdxYFnName ( )
inlinestatic

◆ blockIdxZFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::blockIdxZFnName ( )
inlinestatic

◆ codegenObject()

std::unique_ptr< MemoryBuffer > JitEngineDeviceHIP::codegenObject ( Module &  M,
SmallPtrSetImpl< void * > &  GlobalLinkedBinaries,
const CodeGenerationConfig &  CGConfig 
)

◆ createDispatcher()

std::unique_ptr< Dispatcher > JitEngineDeviceHIP::createDispatcher ( )

◆ extractModules()

void JitEngineDeviceHIP::extractModules ( BinaryInfo &  BinInfo)

◆ getModuleHash()

HashT JitEngineDeviceHIP::getModuleHash ( BinaryInfo &  BinInfo)

◆ gridDimXFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::gridDimXFnName ( )
inlinestatic

◆ gridDimYFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::gridDimYFnName ( )
inlinestatic

◆ gridDimZFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::gridDimZFnName ( )
inlinestatic

◆ instance()

JitEngineDeviceHIP & JitEngineDeviceHIP::instance ( )
static

◆ optimizesBeforeCodegen()

static bool proteus::JitEngineDeviceHIP::optimizesBeforeCodegen ( CodegenOption  CGOption)
inlinestatic

◆ setKernelDims()

void proteus::JitEngineDeviceHIP::setKernelDims ( Module &  M,
dim3 &  GridDim,
dim3 &  BlockDim 
)

◆ threadIdxXFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::threadIdxXFnName ( )
inlinestatic

◆ threadIdxYFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::threadIdxYFnName ( )
inlinestatic

◆ threadIdxZFnName()

static const SmallVector< StringRef > proteus::JitEngineDeviceHIP::threadIdxZFnName ( )
inlinestatic

◆ tryExtractKernelModule()

std::unique_ptr< Module > JitEngineDeviceHIP::tryExtractKernelModule ( BinaryInfo &  BinInfo,
StringRef  KernelName,
LLVMContext &  Ctx 
)

The documentation for this class was generated from the following files: