fml  0.1-0
Fused Matrix Library
types.hh
1 // This file is part of fml which is released under the Boost Software
2 // License, Version 1.0. See accompanying file LICENSE or copy at
3 // https://www.boost.org/LICENSE_1_0.txt
4 
5 #ifndef FML_GPU_ARCH_CUDA_TYPES_H
6 #define FML_GPU_ARCH_CUDA_TYPES_H
7 #pragma once
8 
9 
10 #include <cublas.h>
11 #include <cuda_runtime.h>
12 #include <cusolverDn.h>
13 
14 
15 // core
16 typedef cudaError_t gpu_error_t;
17 #define GPU_SUCCESS cudaSuccess
18 
19 #define GPU_MEMCPY_HOST_TO_DEVICE cudaMemcpyHostToDevice
20 #define GPU_MEMCPY_DEVICE_TO_HOST cudaMemcpyDeviceToHost
21 #define GPU_MEMCPY_DEVICE_TO_DEVICE cudaMemcpyDeviceToDevice
22 
23 // blas
24 #define GPUBLAS_STATUS_SUCCESS CUBLAS_STATUS_SUCCESS
25 typedef cublasStatus_t gpublas_status_t;
26 typedef cublasHandle_t gpublas_handle_t;
27 
28 typedef cublasOperation_t gpublas_operation_t;
29 #define GPUBLAS_OP_T CUBLAS_OP_T
30 #define GPUBLAS_OP_N CUBLAS_OP_N
31 
32 typedef cublasFillMode_t gpublas_fillmode_t;
33 #define GPUBLAS_FILL_L CUBLAS_FILL_MODE_LOWER
34 #define GPUBLAS_FILL_U CUBLAS_FILL_MODE_UPPER
35 
36 typedef cublasSideMode_t gpublas_sidemode_t;
37 #define GPUBLAS_SIDE_LEFT CUBLAS_SIDE_LEFT
38 #define GPUBLAS_SIDE_RIGHT CUBLAS_SIDE_RIGHT
39 
40 typedef cublasDiagType_t gpublas_diagtype_t;
41 #define GPUBLAS_DIAG_NON_UNIT CUBLAS_DIAG_NON_UNIT
42 #define GPUBLAS_DIAG_UNIT CUBLAS_DIAG_UNIT
43 
44 typedef cublasMath_t gpublas_mathmode_t;
45 #define GPUBLAS_MATH_DEFAULT CUBLAS_DEFAULT_MATH
46 #define GPUBLAS_MATH_ACCELERATE CUBLAS_TF32_TENSOR_OP_MATH
47 #define GPUBLAS_MATH_PEDANTIC CUBLAS_PEDANTIC_MATH
48 
49 // lapack/"solver"
50 #define GPULAPACK_STATUS_SUCCESS CUSOLVER_STATUS_SUCCESS
51 typedef cusolverStatus_t gpulapack_status_t;
52 typedef cusolverDnHandle_t gpulapack_handle_t;
53 
54 
55 #endif