LAL  7.5.0.1-ec27e42
CudaFunctions.c
Go to the documentation of this file.
1 #include <lal/LALDatatypes.h>
2 #include <lal/XLALError.h>
3 #include <cuda_runtime.h>
4 #include "CudaFunctions.h"
5 
6 
8 {
9  REAL4 *d_data;
10 
11  XLALCUDACHECK(cudaMalloc( (void **)&d_data, sizeof(REAL4) * size ));
12 
13  if( !d_data )
15  return d_data;
16 }
17 
19 {
20  COMPLEX8 *d_data;
21 
22  XLALCUDACHECK(cudaMalloc( (void **)&d_data, sizeof(COMPLEX8) * size));
23 
24  if( !d_data )
26  return d_data;
27 }
28 
29 void XLALCudaFree(void *d_data)
30 {
31  if( !d_data )
33  cudaFree(d_data);
34 }
COMPLEX8 * XLALCudaMallocComplex(UINT4 size)
Definition: CudaFunctions.c:18
void XLALCudaFree(void *d_data)
Definition: CudaFunctions.c:29
REAL4 * XLALCudaMallocReal(UINT4 size)
Definition: CudaFunctions.c:7
#define XLALCUDACHECK(e)
Definition: CudaFunctions.h:15
uint32_t UINT4
Four-byte unsigned integer.
float complex COMPLEX8
Single-precision floating-point complex number (8 bytes total)
float REAL4
Single precision real floating-point number (4 bytes).
#define XLAL_ERROR_VOID(...)
Macro to invoke a failure from a XLAL routine returning void.
Definition: XLALError.h:726
#define XLAL_ERROR_NULL(...)
Macro to invoke a failure from a XLAL routine returning a pointer.
Definition: XLALError.h:713
@ XLAL_ENOMEM
Memory allocation error.
Definition: XLALError.h:407
@ XLAL_EFAULT
Invalid pointer.
Definition: XLALError.h:408