cuda_fft.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef CUDA_FFT_H
  2. #define CUDA_FFT_H
  3. #include <cuda.h>
  4. #include <cuda_runtime.h>
  5. #include <cuda_runtime_api.h>
  6. #include <cufft.h>
  7. #include "utilities.h"
  8. #define CUDA_SAFE_CALL( call) do { \
  9. cudaError_t err = call; \
  10. if (cudaSuccess != err) { \
  11. fprintf(stderr, "Cuda error in file '%s' in line %i : %s.\n", \
  12. __FILE__, __LINE__, cudaGetErrorString( err) ); \
  13. exit(EXIT_FAILURE); \
  14. } \
  15. } while (0)
  16. #define CUFFT_SAFE_CALL( call) do { \
  17. cufftResult err = call; \
  18. if (err != CUFFT_SUCCESS) { \
  19. fprintf(stderr, "Cufft error in file '%s' in line %i : %s.\n", \
  20. __FILE__, __LINE__, "error" ); \
  21. exit(EXIT_FAILURE); \
  22. } \
  23. } while (0)
  24. typedef bool (*CudaBenchmarkFunc) (cufftComplex *dev_mem, cufftComplex *dev_out_mem, int n_dims, size_t *dims, int n_runs, Timer *timer);
  25. void loop_data_cuda (const char *vendor, CudaBenchmarkFunc func, int n_devices, OutputType outputType, TimeEntry *time_entries);
  26. bool compute_cuda_fft (cufftComplex *dev_mem, cufftComplex *out_mem, int n_dims, size_t *dims, int n_runs, Timer *timer);
  27. double sum_of_absolute_differences_complex (cufftComplex *a, cufftComplex *b, int n, bool scale);
  28. #endif