5 #ifndef FML_GPU_ARCH_CUDA_GPUPRIMS_H
6 #define FML_GPU_ARCH_CUDA_GPUPRIMS_H
11 #include <cusolverDn.h>
21 return cudaGetDeviceCount(ngpus);
24 inline cudaError_t gpu_set_device(
int device)
26 return cudaSetDevice(device);
29 inline cudaError_t gpu_synch()
31 return cudaDeviceSynchronize();
34 inline cudaError_t gpu_device_reset()
36 return cudaDeviceReset();
42 inline cudaError_t gpu_malloc(
void **x,
size_t size)
44 return cudaMalloc(x, size);
47 inline cudaError_t gpu_memset(
void *x,
int value,
size_t count)
49 return cudaMemset(x, value, count);
52 inline cudaError_t gpu_free(
void *x)
57 inline cudaError_t gpu_memcpy(
void *dst,
const void *src,
size_t count, cudaMemcpyKind kind)
59 return cudaMemcpy(dst, src, count, kind);
65 inline std::string gpu_error_string(cudaError_t code)
67 return cudaGetErrorString(code);
70 inline cudaError_t gpu_last_error()
72 return cudaGetLastError();
78 inline cublasStatus_t gpu_blas_init(cublasHandle_t *handle)
80 return cublasCreate(handle);
83 inline cublasStatus_t gpu_blas_free(cublasHandle_t handle)
85 return cublasDestroy(handle);
88 inline cusolverStatus_t gpu_lapack_init(cusolverDnHandle_t *handle)
90 return cusolverDnCreate(handle);
93 inline cusolverStatus_t gpu_lapack_free(cusolverDnHandle_t handle)
95 return cusolverDnDestroy(handle);