fmm_pts_gpu.hpp 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. #ifndef _CUDA_FUNC_HPP_
  2. #define _CUDA_FUNC_HPP_
  3. #include <pvfmm_common.hpp>
  4. #include <stdint.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <assert.h>
  8. #include <cstring>
  9. #include <device_wrapper.hpp>
  10. #include <matrix.hpp>
  11. #include <vector.hpp>
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. void in_perm_d(char* precomp_data, double* input_data, char* buff_in , size_t* input_perm, size_t vec_cnt, size_t M_dim0, cudaStream_t* stream);
  16. void out_perm_d(char* precomp_data, double* output_data, char* buff_out, size_t* output_perm, size_t vec_cnt, size_t M_dim1, cudaStream_t* stream);
  17. #ifdef __cplusplus
  18. }
  19. #endif
  20. template <class Real_t>
  21. void in_perm_gpu(char* precomp_data, Real_t* input_data, char* buff_in , size_t* input_perm, size_t vec_cnt, size_t M_dim0, cudaStream_t* stream){
  22. in_perm_d (precomp_data, input_data, buff_in , input_perm, vec_cnt, M_dim0, stream);
  23. };
  24. template <class Real_t>
  25. void out_perm_gpu(char* precomp_data, Real_t* output_data, char* buff_out, size_t* output_perm, size_t vec_cnt, size_t M_dim1, cudaStream_t* stream){
  26. out_perm_d(precomp_data, output_data, buff_out, output_perm, vec_cnt, M_dim1, stream);
  27. };
  28. #endif //_CUDA_FUNC_HPP_