Peano
Loading...
Searching...
No Matches
MLIRbridgeCUDAfunctions.h
Go to the documentation of this file.
1#include <iostream>
2#include <cstring>
3#include <cstdint>
4#include <cmath>
5#include <cstdio>
6#include <iomanip>
7#include <cstdlib>
8
9
10// *** NOTE: These are the CUDA-based functions that the generated MLIR code call
11// to setup the streams, load and launch the kernels etc.
12// A similar MLIRbridgeROCM.cpp will be required for AMD ROCm support
13
14extern "C" {
15 typedef void* GPUModule;
16 typedef void* GPUFunction;
17 typedef void* GPUStream;
18
19 GPUModule mgpuModuleLoad(const void* binary, size_t size);
20
22
23 GPUFunction mgpuModuleGetFunction(GPUModule module, const char* name);
24
25 // Stream management
27
29
31
33 int64_t gridDimX, int64_t gridDimY, int64_t gridDimZ,
34 int64_t blockDimX, int64_t blockDimY, int64_t blockDimZ,
35 int32_t smemSize,
36 GPUStream stream,
37 void** kernelParams, void** extraParams,
38 int64_t paramCount);
39
40
41
42 void* mgpuMemAlloc(int64_t size, void* stream, int8_t flags);
43
44 int32_t mgpuMemFree(void* ptr, void* stream);
45
46
47void setupMLIRContextGPU(CUdevice targetDevice);
48
49void releaseMLIRContextGPU(CUdevice targetDevice);
50
51 }
void * GPUModule
void setupMLIRContextGPU(CUdevice targetDevice)
void mgpuModuleUnload(GPUModule module)
void * mgpuMemAlloc(int64_t size, void *stream, int8_t flags)
int32_t mgpuMemFree(void *ptr, void *stream)
void releaseMLIRContextGPU(CUdevice targetDevice)
void * GPUStream
GPUStream mgpuStreamCreate()
void mgpuStreamSynchronize(GPUStream stream)
GPUFunction mgpuModuleGetFunction(GPUModule module, const char *name)
void * GPUFunction
void mgpuLaunchKernel(GPUFunction func, int64_t gridDimX, int64_t gridDimY, int64_t gridDimZ, int64_t blockDimX, int64_t blockDimY, int64_t blockDimZ, int32_t smemSize, GPUStream stream, void **kernelParams, void **extraParams, int64_t paramCount)
GPUModule mgpuModuleLoad(const void *binary, size_t size)
void mgpuStreamDestroy(GPUStream stream)