MLIR  20.0.0git
Classes | Macros | Functions | Variables
CudaRuntimeWrappers.cpp File Reference
#include "mlir/ExecutionEngine/CRunnerUtils.h"
#include <stdio.h>
#include "cuda.h"
#include "cuda_bf16.h"
#include "cuda_fp16.h"

Go to the source code of this file.

Classes

class  ScopedContext
 

Macros

#define MLIR_CUDA_WRAPPERS_EXPORT   __attribute__((visibility("default")))
 
#define CUDA_REPORT_IF_ERROR(expr)
 
#define CUSPARSE_REPORT_IF_ERROR(expr)
 
#define debug_print(fmt, ...)
 

Functions

bool isDebugEnabled ()
 Helper method that checks environment value for debugging. More...
 
CUdevice getDefaultCuDevice ()
 
MLIR_CUDA_WRAPPERS_EXPORT CUmodule mgpuModuleLoad (void *data, size_t)
 
MLIR_CUDA_WRAPPERS_EXPORT CUmodule mgpuModuleLoadJIT (void *data, int optLevel)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuModuleUnload (CUmodule module)
 
MLIR_CUDA_WRAPPERS_EXPORT CUfunction mgpuModuleGetFunction (CUmodule module, const char *name)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuLaunchKernel (CUfunction function, intptr_t gridX, intptr_t gridY, intptr_t gridZ, intptr_t blockX, intptr_t blockY, intptr_t blockZ, int32_t smem, CUstream stream, void **params, void **extra, size_t)
 
MLIR_CUDA_WRAPPERS_EXPORT CUstream mgpuStreamCreate ()
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamDestroy (CUstream stream)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamSynchronize (CUstream stream)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamWaitEvent (CUstream stream, CUevent event)
 
MLIR_CUDA_WRAPPERS_EXPORT CUevent mgpuEventCreate ()
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventDestroy (CUevent event)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventSynchronize (CUevent event)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventRecord (CUevent event, CUstream stream)
 
MLIR_CUDA_WRAPPERS_EXPORT void * mgpuMemAlloc (uint64_t sizeBytes, CUstream stream, bool isHostShared)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemFree (void *ptr, CUstream)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemcpy (void *dst, void *src, size_t sizeBytes, CUstream stream)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemset32 (void *dst, unsigned int value, size_t count, CUstream stream)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemset16 (void *dst, unsigned short value, size_t count, CUstream stream)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostRegister (void *ptr, uint64_t sizeBytes)
 Helper functions for writing mlir example code. More...
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostRegisterMemRef (int64_t rank, StridedMemRefType< char, 1 > *descriptor, int64_t elementSizeBytes)
 Registers a memref with the CUDA runtime. More...
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostUnregister (void *ptr)
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostUnregisterMemRef (int64_t rank, StridedMemRefType< char, 1 > *descriptor, int64_t elementSizeBytes)
 Unregisters a memref with the CUDA runtime. More...
 
MLIR_CUDA_WRAPPERS_EXPORT void mgpuSetDefaultDevice (int32_t device)
 

Variables

static thread_local int32_t defaultDevice = 0
 
const char * kDebugEnvironmentVariable = "MLIR_CUDA_DEBUG"
 

Macro Definition Documentation

◆ CUDA_REPORT_IF_ERROR

#define CUDA_REPORT_IF_ERROR (   expr)
Value:
[](CUresult result) { \
if (!result) \
return; \
const char *name = nullptr; \
cuGetErrorName(result, &name); \
if (!name) \
name = "<unknown>"; \
fprintf(stderr, "'%s' failed with '%s'\n", #expr, name); \
}(expr)

Definition at line 37 of file CudaRuntimeWrappers.cpp.

◆ CUSPARSE_REPORT_IF_ERROR

#define CUSPARSE_REPORT_IF_ERROR (   expr)
Value:
{ \
cusparseStatus_t status = (expr); \
if (status != CUSPARSE_STATUS_SUCCESS) { \
fprintf(stderr, "cuSPARSE '%s' failed with '%s'\n", #expr, \
cusparseGetErrorString(status)); \
} \
}

Definition at line 48 of file CudaRuntimeWrappers.cpp.

◆ debug_print

#define debug_print (   fmt,
  ... 
)
Value:
do { \
if (isDebugEnabled()) \
fprintf(stderr, "%s:%d:%s(): " fmt, "CudaRuntimeWrappers.cpp", __LINE__, \
__func__, __VA_ARGS__); \
} while (0)
bool isDebugEnabled()
Helper method that checks environment value for debugging.

Definition at line 70 of file CudaRuntimeWrappers.cpp.

◆ MLIR_CUDA_WRAPPERS_EXPORT

#define MLIR_CUDA_WRAPPERS_EXPORT   __attribute__((visibility("default")))

Definition at line 34 of file CudaRuntimeWrappers.cpp.

Function Documentation

◆ getDefaultCuDevice()

CUdevice getDefaultCuDevice ( )

Definition at line 78 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and defaultDevice.

Referenced by mgpuLaunchKernel(), and ScopedContext::ScopedContext().

◆ isDebugEnabled()

bool isDebugEnabled ( )

Helper method that checks environment value for debugging.

Definition at line 62 of file CudaRuntimeWrappers.cpp.

References kDebugEnvironmentVariable.

◆ mgpuEventCreate()

MLIR_CUDA_WRAPPERS_EXPORT CUevent mgpuEventCreate ( )

Definition at line 219 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuEventDestroy()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventDestroy ( CUevent  event)

Definition at line 226 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuEventRecord()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventRecord ( CUevent  event,
CUstream  stream 
)

Definition at line 234 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuEventSynchronize()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventSynchronize ( CUevent  event)

Definition at line 230 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuLaunchKernel()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuLaunchKernel ( CUfunction  function,
intptr_t  gridX,
intptr_t  gridY,
intptr_t  gridZ,
intptr_t  blockX,
intptr_t  blockY,
intptr_t  blockZ,
int32_t  smem,
CUstream  stream,
void **  params,
void **  extra,
size_t   
)

◆ mgpuMemAlloc()

MLIR_CUDA_WRAPPERS_EXPORT void* mgpuMemAlloc ( uint64_t  sizeBytes,
CUstream  stream,
bool  isHostShared 
)

Definition at line 240 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuMemcpy()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemcpy ( void *  dst,
void *  src,
size_t  sizeBytes,
CUstream  stream 
)

Definition at line 261 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuMemFree()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemFree ( void *  ptr,
CUstream   
)

Definition at line 255 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuMemHostRegister()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostRegister ( void *  ptr,
uint64_t  sizeBytes 
)

Helper functions for writing mlir example code.

Definition at line 286 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

Referenced by mgpuMemHostRegisterMemRef().

◆ mgpuMemHostRegisterMemRef()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostRegisterMemRef ( int64_t  rank,
StridedMemRefType< char, 1 > *  descriptor,
int64_t  elementSizeBytes 
)

Registers a memref with the CUDA runtime.

descriptor is a pointer to a ranked memref descriptor struct of rank rank. Helpful until we have transfer functions implemented.

Definition at line 295 of file CudaRuntimeWrappers.cpp.

References StridedMemRefType< T, N >::data, mgpuMemHostRegister(), StridedMemRefType< T, N >::offset, and StridedMemRefType< T, N >::sizes.

◆ mgpuMemHostUnregister()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostUnregister ( void *  ptr)

Definition at line 320 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

Referenced by mgpuMemHostUnregisterMemRef().

◆ mgpuMemHostUnregisterMemRef()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostUnregisterMemRef ( int64_t  rank,
StridedMemRefType< char, 1 > *  descriptor,
int64_t  elementSizeBytes 
)

Unregisters a memref with the CUDA runtime.

descriptor is a pointer to a ranked memref descriptor struct of rank rank

Definition at line 328 of file CudaRuntimeWrappers.cpp.

References StridedMemRefType< T, N >::data, mgpuMemHostUnregister(), and StridedMemRefType< T, N >::offset.

◆ mgpuMemset16()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemset16 ( void *  dst,
unsigned short  value,
size_t  count,
CUstream  stream 
)

Definition at line 274 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuMemset32()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemset32 ( void *  dst,
unsigned int  value,
size_t  count,
CUstream  stream 
)

Definition at line 268 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuModuleGetFunction()

MLIR_CUDA_WRAPPERS_EXPORT CUfunction mgpuModuleGetFunction ( CUmodule  module,
const char *  name 
)

Definition at line 157 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuModuleLoad()

MLIR_CUDA_WRAPPERS_EXPORT CUmodule mgpuModuleLoad ( void *  data,
size_t   
)

Definition at line 124 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuModuleLoadJIT()

MLIR_CUDA_WRAPPERS_EXPORT CUmodule mgpuModuleLoadJIT ( void *  data,
int  optLevel 
)

Definition at line 131 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuModuleUnload()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuModuleUnload ( CUmodule  module)

Definition at line 152 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuSetDefaultDevice()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuSetDefaultDevice ( int32_t  device)

Definition at line 335 of file CudaRuntimeWrappers.cpp.

References defaultDevice.

◆ mgpuStreamCreate()

MLIR_CUDA_WRAPPERS_EXPORT CUstream mgpuStreamCreate ( )

Definition at line 198 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuStreamDestroy()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamDestroy ( CUstream  stream)

Definition at line 205 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuStreamSynchronize()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamSynchronize ( CUstream  stream)

Definition at line 210 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuStreamWaitEvent()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamWaitEvent ( CUstream  stream,
CUevent  event 
)

Definition at line 214 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

Variable Documentation

◆ defaultDevice

thread_local int32_t defaultDevice = 0
static

◆ kDebugEnvironmentVariable

const char* kDebugEnvironmentVariable = "MLIR_CUDA_DEBUG"

Definition at line 59 of file CudaRuntimeWrappers.cpp.

Referenced by isDebugEnabled().