cuda_fft.h 1.0 KB

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