1#ifndef PROTEUS_FRONTEND_DISPATCHER_HIP_HPP
2#define PROTEUS_FRONTEND_DISPATCHER_HIP_HPP
12class DispatcherHIP :
public Dispatcher {
14 static DispatcherHIP &instance() {
15 static DispatcherHIP D;
19 void compile(std::unique_ptr<Module> M)
override {
20 Library =
Jit.compileOnly(*M);
26 LaunchDims BlockDim, ArrayRef<void *> KernelArgs,
27 uint64_t ShmemSize,
void *Stream)
override {
33 dim3 HipGridDim = {GridDim.
X, GridDim.
Y, GridDim.
Z};
34 dim3 HipBlockDim = {BlockDim.
X, BlockDim.
Y, BlockDim.
Z};
35 hipStream_t HipStream =
reinterpret_cast<hipStream_t
>(Stream);
37 void **KernelArgsPtrs =
const_cast<void **
>(KernelArgs.data());
39 KernelArgsPtrs, ShmemSize, HipStream);
43 void *getFunctionAddress(StringRef)
override {
48 JitEngineDeviceHIP &
Jit;
49 DispatcherHIP() :
Jit(JitEngineDeviceHIP::instance()) {}
void char * KernelName
Definition CompilerInterfaceDevice.cpp:50
auto & Jit
Definition CompilerInterfaceDevice.cpp:54
#define PROTEUS_FATAL_ERROR(x)
Definition Error.h:4
Definition Dispatcher.cpp:14
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
Definition Dispatcher.hpp:14
unsigned Z
Definition Dispatcher.hpp:15
unsigned Y
Definition Dispatcher.hpp:15
unsigned X
Definition Dispatcher.hpp:15