MLIR 22.0.0git
CudaRuntimeWrappers.cpp File Reference
#include "mlir/ExecutionEngine/CRunnerUtils.h"
#include <cstdio>
#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.
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 voidmgpuMemAlloc (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.
MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostRegisterMemRef (int64_t rank, StridedMemRefType< char, 1 > *descriptor, int64_t elementSizeBytes)
 Registers a memref with the CUDA runtime.
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.
MLIR_CUDA_WRAPPERS_EXPORT void mgpuSetDefaultDevice (int32_t device)

Variables

static thread_local int32_t defaultDevice = 0

Macro Definition Documentation

◆ CUDA_REPORT_IF_ERROR

#define CUDA_REPORT_IF_ERROR ( expr)

◆ 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 66 of file CudaRuntimeWrappers.cpp.

Referenced by mgpuLaunchKernel().

◆ MLIR_CUDA_WRAPPERS_EXPORT

Function Documentation

◆ getDefaultCuDevice()

CUdevice getDefaultCuDevice ( )

Definition at line 74 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 60 of file CudaRuntimeWrappers.cpp.

◆ mgpuEventCreate()

MLIR_CUDA_WRAPPERS_EXPORT CUevent mgpuEventCreate ( )

Definition at line 215 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ mgpuEventDestroy()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventDestroy ( CUevent event)

Definition at line 222 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ mgpuEventRecord()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventRecord ( CUevent event,
CUstream stream )

Definition at line 230 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ mgpuEventSynchronize()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuEventSynchronize ( CUevent event)

Definition at line 226 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ 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 236 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 257 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuMemFree()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemFree ( void * ptr,
CUstream  )

Definition at line 251 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ mgpuMemHostRegister()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuMemHostRegister ( void * ptr,
uint64_t sizeBytes )

Helper functions for writing mlir example code.

Definition at line 282 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 291 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)

◆ 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 324 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 270 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 264 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuModuleGetFunction()

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

Definition at line 153 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuModuleLoad()

MLIR_CUDA_WRAPPERS_EXPORT CUmodule mgpuModuleLoad ( void * data,
size_t  )

Definition at line 120 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuModuleLoadJIT()

MLIR_CUDA_WRAPPERS_EXPORT CUmodule mgpuModuleLoadJIT ( void * data,
int optLevel )

Definition at line 127 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, MLIR_CUDA_WRAPPERS_EXPORT, and result.

◆ mgpuModuleUnload()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuModuleUnload ( CUmodule module)

Definition at line 148 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ mgpuSetDefaultDevice()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuSetDefaultDevice ( int32_t device)

Definition at line 331 of file CudaRuntimeWrappers.cpp.

References defaultDevice, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ mgpuStreamCreate()

MLIR_CUDA_WRAPPERS_EXPORT CUstream mgpuStreamCreate ( )

Definition at line 194 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ mgpuStreamDestroy()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamDestroy ( CUstream stream)

Definition at line 201 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

◆ mgpuStreamSynchronize()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamSynchronize ( CUstream stream)

Definition at line 206 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR.

◆ mgpuStreamWaitEvent()

MLIR_CUDA_WRAPPERS_EXPORT void mgpuStreamWaitEvent ( CUstream stream,
CUevent event )

Definition at line 210 of file CudaRuntimeWrappers.cpp.

References CUDA_REPORT_IF_ERROR, and MLIR_CUDA_WRAPPERS_EXPORT.

Variable Documentation

◆ defaultDevice

thread_local int32_t defaultDevice = 0
static