Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Namespaces | Functions | Variables
CompilerInterfaceDevice.cpp File Reference
#include "proteus/impl/CompilerInterfaceDevice.h"
#include "proteus/KernelMetadata.h"
#include "proteus/TimeTracing.h"
#include "proteus/impl/CompilerInterfaceDeviceInternal.h"
#include "proteus/impl/JitEngineDevice.h"
#include "proteus/impl/JitEngineInfoRegistry.h"
#include "proteus/impl/LambdaRegistry.h"
#include <llvm/ADT/DenseMap.h>
#include <cstring>
#include <utility>
#include <vector>
Include dependency graph for CompilerInterfaceDevice.cpp:

Namespaces

namespace  proteus
 
namespace  proteus::runtime
 

Functions

 __attribute ((used)) void __proteus_register_var(void *Handle
 
JitEngineInfo registerVar (Handle, HostAddr, VarName, VarSize)
 
 __attribute__ ((used)) void __proteus_register_fatbinary(void *Handle
 
JitEngineInfo registerFatBinary (Handle, FatbinWrapper, ModuleId)
 
JitEngineInfo registerLinkedBinary (FatbinWrapper, ModuleId)
 
JitEngineInfo registerFunction (Handle, Kernel, KernelName, RCInfoArray)
 
Jit registerLambdaCallsiteLocation (Kernel, LambdaID, CallsiteIndex, KernelArgIndex, Offset, static_cast< RuntimeConstantType >(StorageType))
 
LR populateLambdaRegistrationCodeCache (Kernel, RegistrationFunc)
 
 switch (static_cast< RuntimeConstantType >(Type))
 
LR appendDeviceCallsiteRuntimeConstant (LambdaID, CallsiteIndex, RC)
 
proteus::DeviceTraits< JitDeviceImplT >::DeviceError_t __proteus_launch_kernel (void *Kernel, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, void *Stream)
 
void __proteus_enable_device ()
 
void __proteus_disable_device ()
 
std::optional< KernelMetadata > proteus::runtime::captureKernelMetadata (const void *Kernel)
 

Variables

const void * HostAddr
 
const void const char * VarName
 
const void const char uint64_t VarSize
 
void * FatbinWrapper
 
void const char * ModuleId
 
void * Kernel
 
void char * KernelName
 
void char RuntimeConstantInfo ** RCInfoArrayPtr
 
void char RuntimeConstantInfo int32_t NumRCs
 
auto & JitEngineInfo = JitEngineInfoRegistry::instance()
 
uint64_t LambdaID
 
uint64_t uint32_t CallsiteIndex
 
uint64_t uint32_t uint32_t KernelArgIndex
 
uint64_t uint32_t uint32_t int64_t Offset
 
uint64_t uint32_t uint32_t int64_t int32_t StorageType
 
void * RegistrationFunc
 
uint32_t int32_t Type
 
uint32_t int32_t int32_t Pos
 
uint32_t int32_t int32_t int32_t const void * ValuePtr
 
auto & LR = LambdaRegistry::instance()
 

Function Documentation

◆ __attribute()

__attribute ( (used)  )

◆ __attribute__()

__attribute__ ( (used)  )
noexcept

◆ __proteus_disable_device()

void __proteus_disable_device ( )

◆ __proteus_enable_device()

void __proteus_enable_device ( )

◆ __proteus_launch_kernel()

proteus::DeviceTraits< JitDeviceImplT >::DeviceError_t __proteus_launch_kernel ( void *  Kernel,
dim3  GridDim,
dim3  BlockDim,
void **  KernelArgs,
uint64_t  ShmemSize,
void *  Stream 
)

◆ appendDeviceCallsiteRuntimeConstant()

LR appendDeviceCallsiteRuntimeConstant ( LambdaID  ,
CallsiteIndex  ,
RC   
)

◆ populateLambdaRegistrationCodeCache()

LR populateLambdaRegistrationCodeCache ( Kernel  ,
RegistrationFunc   
)

◆ registerFatBinary()

JitEngineInfo registerFatBinary ( Handle  ,
FatbinWrapper  ,
ModuleId   
)

◆ registerFunction()

JitEngineInfo registerFunction ( Handle  ,
Kernel  ,
KernelName  ,
RCInfoArray   
)

◆ registerLambdaCallsiteLocation()

Jit registerLambdaCallsiteLocation ( Kernel  ,
LambdaID  ,
CallsiteIndex  ,
KernelArgIndex  ,
Offset  ,
static_cast< RuntimeConstantType >  StorageType 
)

◆ registerLinkedBinary()

JitEngineInfo registerLinkedBinary ( FatbinWrapper  ,
ModuleId   
)

◆ registerVar()

JitEngineInfo registerVar ( Handle  ,
HostAddr  ,
VarName  ,
VarSize   
)

◆ switch()

switch ( static_cast< RuntimeConstantType >  Type)

Variable Documentation

◆ CallsiteIndex

uint32_t CallsiteIndex

◆ FatbinWrapper

void* FatbinWrapper

◆ HostAddr

const void* HostAddr

◆ JitEngineInfo

auto& JitEngineInfo = JitEngineInfoRegistry::instance()

◆ Kernel

void* Kernel

◆ KernelArgIndex

uint64_t uint32_t uint32_t KernelArgIndex

◆ KernelName

void char* KernelName

◆ LambdaID

uint64_t LambdaID

◆ LR

auto& LR = LambdaRegistry::instance()

◆ ModuleId

const char * ModuleId
Initial value:
{
auto & JitEngineInfo
Definition CompilerInterfaceDevice.cpp:67
static JitEngineInfoRegistry & instance()
Definition JitEngineInfoRegistry.h:58

◆ NumRCs

void char RuntimeConstantInfo int32_t NumRCs
Initial value:
{
ArrayRef<RuntimeConstantInfo *> RCInfoArray{RCInfoArrayPtr,
static_cast<size_t>(NumRCs)}
void char RuntimeConstantInfo int32_t NumRCs
Definition CompilerInterfaceDevice.cpp:64
void char RuntimeConstantInfo ** RCInfoArrayPtr
Definition CompilerInterfaceDevice.cpp:63

◆ Offset

uint32_t int32_t int32_t int32_t Offset

◆ Pos

uint32_t int32_t int32_t Pos

◆ RCInfoArrayPtr

void char RuntimeConstantInfo** RCInfoArrayPtr

◆ RegistrationFunc

void* RegistrationFunc
Initial value:
{
auto & LR
Definition CompilerInterfaceDevice.cpp:129
static LambdaRegistry & instance()
Definition LambdaRegistry.h:27

◆ StorageType

uint64_t uint32_t uint32_t int64_t int32_t StorageType
Initial value:
{
auto &Jit = JitDeviceImplT::instance()

◆ Type

uint32_t int32_t Type

◆ ValuePtr

uint32_t int32_t int32_t int32_t const void* ValuePtr
Initial value:
{
uint32_t int32_t Type
Definition CompilerInterfaceDevice.cpp:98
uint64_t uint32_t uint32_t int64_t Offset
Definition CompilerInterfaceDevice.cpp:75
uint32_t int32_t int32_t Pos
Definition CompilerInterfaceDevice.cpp:98
RuntimeConstantType
Definition CompilerInterfaceTypes.h:20
Definition CompilerInterfaceTypes.h:72

◆ VarName

const void const char* VarName

◆ VarSize

const void const char uint64_t VarSize