mirror of https://github.com/hpcaitech/ColossalAI
34 lines
699 B
Plaintext
34 lines
699 B
Plaintext
// Adapted from turboderp exllama: https://github.com/turboderp/exllama
|
|
|
|
#ifndef _util_cuh
|
|
#define _util_cuh
|
|
|
|
#include <cuda_runtime.h>
|
|
#include <cuda_fp16.h>
|
|
#include <cstdint>
|
|
#include <cstdio>
|
|
|
|
#if defined(USE_ROCM)
|
|
#define cudaUnspecified hipErrorUnknown
|
|
#else
|
|
#define cudaUnspecified cudaErrorApiFailureBase
|
|
#endif
|
|
|
|
// React to failure on return code != cudaSuccess
|
|
|
|
#define _cuda_check(fn) \
|
|
do { \
|
|
{_cuda_err = fn;} \
|
|
if (_cuda_err != cudaSuccess) goto _cuda_fail; \
|
|
} while(false)
|
|
|
|
// React to failure on return code == 0
|
|
|
|
#define _alloc_check(fn) \
|
|
do { \
|
|
if (!(fn)) { _cuda_err = cudaUnspecified; goto _cuda_fail; } \
|
|
else _cuda_err = cudaSuccess; \
|
|
} while(false)
|
|
|
|
#endif
|