8#include <llvm/ADT/StringRef.h>
10#include <unordered_map>
16#define HIP_SYMBOL(x) x
24 void *DevPtr =
nullptr;
27 assert(DevPtr &&
"Expected non-null device pointer for global");
33 dim3 BlockDim,
void **KernelArgs,
34 uint64_t ShmemSize, hipStream_t Stream) {
36 KernelArgs, ShmemSize, Stream);
40 StringRef
KernelName,
const void *Image,
bool RelinkGlobalsByCopy,
41 const std::unordered_map<std::string, GlobalVarInfo> &VarNameToGlobalInfo) {
42 hipModule_t HipModule;
43 hipFunction_t KernelFunc;
46 if (RelinkGlobalsByCopy) {
47 for (
auto &[GlobalName, GVI] : VarNameToGlobalInfo) {
50 " without a concrete device address");
55 &Dptr, &Bytes, HipModule, (GlobalName +
"$ptr").c_str()));
57 uint64_t PtrVal = (uint64_t)GVI.DevAddr;
62 &KernelFunc, HipModule,
KernelName.str().c_str()));
68 dim3 BlockDim,
void **KernelArgs,
69 uint64_t ShmemSize, hipStream_t Stream) {
71 KernelFunc, GridDim.x, GridDim.y, GridDim.z, BlockDim.x, BlockDim.y,
72 BlockDim.z, ShmemSize, Stream, KernelArgs,
nullptr);
void char * KernelName
Definition CompilerInterfaceDevice.cpp:59
#define HIP_SYMBOL(x)
Definition CoreDeviceHIP.h:16
#define proteusHipErrCheck(CALL)
Definition UtilsHIP.h:20
Definition CompiledLibrary.h:7
hipError_t moduleLaunchKernel(hipFunction_t Function, unsigned int GridDimX, unsigned int GridDimY, unsigned int GridDimZ, unsigned int BlockDimX, unsigned int BlockDimY, unsigned int BlockDimZ, unsigned int SharedMemBytes, hipStream_t Stream, void **KernelParams, void **Extra)
Definition HIPRuntimeAPI.cpp:156
hipError_t getSymbolAddress(void **DevPtr, const void *Symbol)
Definition HIPRuntimeAPI.cpp:124
hipError_t memcpyHtoD(hipDeviceptr_t Dst, const void *Src, size_t SizeBytes)
Definition HIPRuntimeAPI.cpp:130
hipError_t moduleGetGlobal(hipDeviceptr_t *Dptr, size_t *Bytes, hipModule_t Module, const char *Name)
Definition HIPRuntimeAPI.cpp:142
hipError_t moduleGetFunction(hipFunction_t *Function, hipModule_t Module, const char *Name)
Definition HIPRuntimeAPI.cpp:149
hipError_t launchKernel(const void *FunctionAddress, dim3 NumBlocks, dim3 DimBlocks, void **Args, size_t SharedMemBytes, hipStream_t Stream)
Definition HIPRuntimeAPI.cpp:168
hipError_t moduleLoadData(hipModule_t *Module, const void *Image)
Definition HIPRuntimeAPI.cpp:136
Definition MemoryCache.h:27
void reportFatalError(const llvm::Twine &Reason, const char *FILE, unsigned Line)
Definition Error.cpp:14
cudaError_t launchKernelDirect(void *KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, CUstream Stream)
Definition CoreDeviceCUDA.h:38
cudaError_t launchKernelFunction(CUfunction KernelFunc, dim3 GridDim, dim3 BlockDim, void **KernelArgs, uint64_t ShmemSize, CUstream Stream)
Definition CoreDeviceCUDA.h:78
void * resolveDeviceGlobalAddr(const void *Addr)
Definition CoreDeviceCUDA.h:26
CUfunction getKernelFunctionFromImage(StringRef KernelName, const void *Image, bool RelinkGlobalsByCopy, const std::unordered_map< std::string, GlobalVarInfo > &VarNameToGlobalInfo)
Definition CoreDeviceCUDA.h:50