Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Namespaces | Classes | Enumerations | Functions
proteus Namespace Reference

Namespaces

namespace  detail
 

Classes

class  BinaryInfo
 
class  CompilationResult
 
class  CompilationTask
 
class  CompilerAsync
 
class  CompilerSync
 
struct  DeviceTraits
 
struct  DeviceTraits< JitEngineDeviceCUDA >
 
struct  DeviceTraits< JitEngineDeviceHIP >
 
struct  FatbinWrapperT
 
class  HashT
 
struct  InitLLVMTargets
 
class  JitCache
 
class  JitEngine
 
class  JitEngineDevice
 
class  JitEngineDeviceCUDA
 
class  JitEngineDeviceHIP
 
class  JitEngineHost
 
class  JITKernelInfo
 
class  JitStorageCache
 
class  LambdaRegistry
 
class  Logger
 
struct  RuntimeConstant
 
struct  TimeTracerRAII
 
class  TransformArgumentSpecialization
 
class  TransformLambdaSpecialization
 
class  TransformSharedArray
 

Enumerations

enum  RuntimeConstantTypes : int32_t {
  BOOL = 1 , INT8 , INT32 , INT64 ,
  FLOAT , DOUBLE , LONG_DOUBLE , PTR
}
 

Functions

void * resolveDeviceGlobalAddr (const void *Addr)
 
cudaError_t launchKernelDirect (void *KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, CUstream Stream)
 
CUfunction getKernelFunctionFromImage (StringRef KernelName, const void *Image, bool RelinkGlobalsByCopy, const std::unordered_map< std::string, const void * > &VarNameToDevPtr)
 
cudaError_t launchKernelFunction (CUfunction KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, CUstream Stream)
 
hipError_t launchKernelDirect (void *KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, hipStream_t Stream)
 
hipError_t launchKernelFunction (hipFunction_t KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, hipStream_t Stream)
 
void optimizeIR (Module &M, StringRef Arch, char OptLevel, unsigned CodegenOptLevel)
 
std::unique_ptr< Module > linkModules (LLVMContext &Ctx, SmallVector< std::unique_ptr< Module > > &LinkedModules)
 
void runCleanupPassPipeline (Module &M)
 
void pruneIR (Module &M, bool UnsetExternallyInitialized=true)
 
void internalize (Module &M, StringRef PreserveFunctionName)
 
void setLaunchBoundsForKernel (Module &M, Function &F, size_t GridSize, int BlockSize)
 
void codegenPTX (Module &M, StringRef DeviceArch, SmallVectorImpl< char > &PTXStr)
 
std::unique_ptr< MemoryBuffer > codegenObject (Module &M, StringRef DeviceArch, SmallPtrSetImpl< void * > &GlobalLinkedBinaries, bool UseRTC=true)
 
HashT hashValue (HashT &H)
 
HashT hashValue (StringRef &S)
 
HashT hashValue (const std::string &S)
 
template<typename T >
std::enable_if_t< std::is_scalar< T >::value, HashThashValue (const T &V)
 
HashT hashArrayRefElement (const RuntimeConstant &RC)
 
HashT hashValue (const ArrayRef< RuntimeConstant > &Arr)
 
HashT hashCombine (HashT A, HashT B)
 
template<typename FirstT , typename... RestTs>
HashT hash (FirstT &&First, RestTs &&...Rest)
 
template<typename T >
HashT hash (T &&Data)
 
bool getEnvOrDefaultBool (const char *VarName, bool Default)
 
int getEnvOrDefaultInt (const char *VarName, int Default)
 
Constant * getConstant (LLVMContext &Ctx, Type *ArgType, const RuntimeConstant &RC)
 

Enumeration Type Documentation

◆ RuntimeConstantTypes

Enumerator
BOOL 
INT8 
INT32 
INT64 
FLOAT 
DOUBLE 
LONG_DOUBLE 
PTR 

Function Documentation

◆ codegenObject()

std::unique_ptr< MemoryBuffer > proteus::codegenObject ( Module &  M,
StringRef  DeviceArch,
SmallPtrSetImpl< void * > &  GlobalLinkedBinaries,
bool  UseRTC = true 
)
inline

◆ codegenPTX()

void proteus::codegenPTX ( Module &  M,
StringRef  DeviceArch,
SmallVectorImpl< char > &  PTXStr 
)
inline

◆ getConstant()

Constant * proteus::getConstant ( LLVMContext &  Ctx,
Type *  ArgType,
const RuntimeConstant RC 
)
inline

◆ getEnvOrDefaultBool()

bool proteus::getEnvOrDefaultBool ( const char *  VarName,
bool  Default 
)
inline

◆ getEnvOrDefaultInt()

int proteus::getEnvOrDefaultInt ( const char *  VarName,
int  Default 
)
inline

◆ getKernelFunctionFromImage()

hipFunction_t proteus::getKernelFunctionFromImage ( StringRef  KernelName,
const void *  Image,
bool  RelinkGlobalsByCopy,
const std::unordered_map< std::string, const void * > &  VarNameToDevPtr 
)
inline

◆ hash() [1/2]

template<typename FirstT , typename... RestTs>
HashT proteus::hash ( FirstT &&  First,
RestTs &&...  Rest 
)
inline

◆ hash() [2/2]

template<typename T >
HashT proteus::hash ( T &&  Data)
inline

◆ hashArrayRefElement()

HashT proteus::hashArrayRefElement ( const RuntimeConstant RC)
inline

◆ hashCombine()

HashT proteus::hashCombine ( HashT  A,
HashT  B 
)
inline

◆ hashValue() [1/5]

HashT proteus::hashValue ( const ArrayRef< RuntimeConstant > &  Arr)
inline

◆ hashValue() [2/5]

HashT proteus::hashValue ( const std::string &  S)
inline

◆ hashValue() [3/5]

template<typename T >
std::enable_if_t< std::is_scalar< T >::value, HashT > proteus::hashValue ( const T &  V)
inline

◆ hashValue() [4/5]

HashT proteus::hashValue ( HashT H)
inline

◆ hashValue() [5/5]

HashT proteus::hashValue ( StringRef &  S)
inline

◆ internalize()

void proteus::internalize ( Module &  M,
StringRef  PreserveFunctionName 
)
inline

◆ launchKernelDirect() [1/2]

cudaError_t proteus::launchKernelDirect ( void *  KernelFunc,
dim3  GridDim,
dim3  BlockDim,
void **  KernelArgs,
uint64_t  ShmemSize,
CUstream  Stream 
)
inline

◆ launchKernelDirect() [2/2]

hipError_t proteus::launchKernelDirect ( void *  KernelFunc,
dim3  GridDim,
dim3  BlockDim,
void **  KernelArgs,
uint64_t  ShmemSize,
hipStream_t  Stream 
)
inline

◆ launchKernelFunction() [1/2]

cudaError_t proteus::launchKernelFunction ( CUfunction  KernelFunc,
dim3  GridDim,
dim3  BlockDim,
void **  KernelArgs,
uint64_t  ShmemSize,
CUstream  Stream 
)
inline

◆ launchKernelFunction() [2/2]

hipError_t proteus::launchKernelFunction ( hipFunction_t  KernelFunc,
dim3  GridDim,
dim3  BlockDim,
void **  KernelArgs,
uint64_t  ShmemSize,
hipStream_t  Stream 
)
inline

◆ linkModules()

std::unique_ptr< Module > proteus::linkModules ( LLVMContext &  Ctx,
SmallVector< std::unique_ptr< Module > > &  LinkedModules 
)
inline

◆ optimizeIR()

void proteus::optimizeIR ( Module &  M,
StringRef  Arch,
char  OptLevel,
unsigned  CodegenOptLevel 
)
inline

◆ pruneIR()

void proteus::pruneIR ( Module &  M,
bool  UnsetExternallyInitialized = true 
)
inline

◆ resolveDeviceGlobalAddr()

void * proteus::resolveDeviceGlobalAddr ( const void *  Addr)
inline

◆ runCleanupPassPipeline()

void proteus::runCleanupPassPipeline ( Module &  M)
inline

◆ setLaunchBoundsForKernel()

void proteus::setLaunchBoundsForKernel ( Module &  M,
Function &  F,
size_t  GridSize,
int  BlockSize 
)
inline