4#include <unordered_map>
6#include <llvm/ADT/StringRef.h>
15#define HIP_SYMBOL(x) x
23 void *DevPtr =
nullptr;
25 assert(DevPtr &&
"Expected non-null device pointer for global");
31 dim3 BlockDim,
void **KernelArgs,
32 uint64_t ShmemSize, hipStream_t Stream) {
33 return hipLaunchKernel(KernelFunc, GridDim, BlockDim, KernelArgs, ShmemSize,
38 StringRef
KernelName,
const void *Image,
bool RelinkGlobalsByCopy,
39 const std::unordered_map<std::string, const void *> &VarNameToDevPtr) {
40 hipModule_t HipModule;
41 hipFunction_t KernelFunc;
44 if (RelinkGlobalsByCopy) {
45 for (
auto &[GlobalName, DevPtr] : VarNameToDevPtr) {
49 (GlobalName +
"$ptr").c_str()));
51 uint64_t PtrVal = (uint64_t)DevPtr;
56 hipModuleGetFunction(&KernelFunc, HipModule,
KernelName.str().c_str()));
62 dim3 BlockDim,
void **KernelArgs,
63 uint64_t ShmemSize, hipStream_t Stream) {
64 return hipModuleLaunchKernel(KernelFunc, GridDim.x, GridDim.y, GridDim.z,
65 BlockDim.x, BlockDim.y, BlockDim.z, ShmemSize,
66 Stream, KernelArgs,
nullptr);
void char * KernelName
Definition CompilerInterfaceDevice.cpp:50
#define HIP_SYMBOL(x)
Definition CoreDeviceHIP.hpp:15
#define proteusHipErrCheck(CALL)
Definition UtilsHIP.h:18
Definition JitEngine.cpp:20
cudaError_t launchKernelDirect(void *KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, CUstream Stream)
Definition CoreDeviceCUDA.hpp:20
cudaError_t launchKernelFunction(CUfunction KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, CUstream Stream)
Definition CoreDeviceCUDA.hpp:51
CUfunction getKernelFunctionFromImage(StringRef KernelName, const void *Image, bool RelinkGlobalsByCopy, const std::unordered_map< std::string, const void * > &VarNameToDevPtr)
Definition CoreDeviceCUDA.hpp:27
void * resolveDeviceGlobalAddr(const void *Addr)
Definition CoreDeviceCUDA.hpp:12