diff --git a/cuda/CMakeLists.txt b/cuda/CMakeLists.txt new file mode 100644 index 00000000..2602e179 --- /dev/null +++ b/cuda/CMakeLists.txt @@ -0,0 +1,558 @@ +set(PSB_cuda_source_files + psb_base_vectordev_mod.F90 + psb_cuda_mod.F90 + c_cusparse_mod.F90 + psb_d_cuda_csrg_mat_mod.F90 + psb_i_cuda_dnsg_mat_mod.F90 + psb_z_cuda_diag_mat_mod.F90 + psb_i_vectordev_mod.F90 + psb_z_cuda_csrg_mat_mod.F90 + cusparse_mod.F90 + impl/psb_z_cuda_hdiag_csmv.F90 + impl/psb_c_cuda_hybg_csmm.F90 + impl/psb_c_cuda_csrg_vect_mv.F90 + impl/psb_c_cuda_elg_trim.f90 + impl/psb_s_cuda_mv_elg_from_fmt.F90 + impl/psb_c_cuda_csrg_inner_vect_sv.F90 + impl/psb_c_cuda_cp_hlg_from_coo.F90 + impl/psb_c_cuda_diag_to_gpu.F90 + impl/psb_c_cuda_elg_csput.F90 + impl/psb_z_cuda_cp_csrg_from_coo.F90 + impl/psb_s_cuda_cp_elg_from_fmt.F90 + impl/psb_d_cuda_elg_csmm.F90 + impl/psb_c_cuda_diag_vect_mv.F90 + impl/psb_s_cuda_hdiag_mold.F90 + impl/psb_c_cuda_mv_hlg_from_coo.F90 + impl/psb_c_cuda_hdiag_mold.F90 + impl/psb_c_cuda_hybg_scal.F90 + impl/psb_s_cuda_elg_scal.F90 + impl/psb_c_cuda_mv_csrg_from_fmt.F90 + impl/psb_z_cuda_mv_hlg_from_fmt.F90 + impl/psb_d_cuda_elg_trim.f90 + impl/psb_c_cuda_hybg_inner_vect_sv.F90 + impl/psb_c_cuda_cp_elg_from_fmt.F90 + impl/psb_s_cuda_hybg_vect_mv.F90 + impl/psb_s_cuda_cp_elg_from_coo.F90 + impl/psb_c_cuda_hlg_vect_mv.F90 + impl/psb_d_cuda_mv_hybg_from_coo.F90 + impl/psb_d_cuda_elg_asb.f90 + impl/psb_d_cuda_csrg_scals.F90 + impl/psb_s_cuda_csrg_vect_mv.F90 + impl/psb_d_cuda_elg_csmv.F90 + impl/psb_c_cuda_hlg_scal.F90 + impl/psb_s_cuda_hlg_csmm.F90 + impl/psb_d_cuda_csrg_csmm.F90 + impl/psb_z_cuda_cp_hybg_from_fmt.F90 + impl/psb_z_cuda_elg_to_gpu.F90 + impl/psb_s_cuda_elg_mold.F90 + impl/psb_s_cuda_elg_allocate_mnnz.F90 + impl/psb_d_cuda_diag_vect_mv.F90 + impl/psb_z_cuda_hybg_csmm.F90 + impl/psb_s_cuda_hybg_allocate_mnnz.F90 + impl/psb_d_cuda_hlg_scal.F90 + impl/psb_c_cuda_csrg_csmv.F90 + impl/psb_d_cuda_cp_hybg_from_fmt.F90 + impl/psb_d_cuda_csrg_from_gpu.F90 + impl/psb_z_cuda_csrg_vect_mv.F90 + impl/psb_s_cuda_elg_inner_vect_sv.F90 + impl/psb_s_cuda_mv_csrg_from_fmt.F90 + impl/psb_s_cuda_mv_hybg_from_coo.F90 + impl/psb_d_cuda_dnsg_mat_impl.F90 + impl/psb_z_cuda_elg_scal.F90 + impl/psb_c_cuda_dnsg_mat_impl.F90 + impl/psb_c_cuda_csrg_scal.F90 + impl/psb_z_cuda_diag_csmv.F90 + impl/psb_c_cuda_mv_elg_from_coo.F90 + impl/psb_s_cuda_elg_asb.f90 + impl/psb_s_cuda_cp_hlg_from_coo.F90 + impl/psb_s_cuda_hybg_csmv.F90 + impl/psb_z_cuda_elg_trim.f90 + impl/psb_z_cuda_csrg_inner_vect_sv.F90 + impl/psb_s_cuda_hybg_to_gpu.F90 + impl/psb_s_cuda_hybg_mold.F90 + impl/psb_z_cuda_elg_inner_vect_sv.F90 + impl/psb_c_cuda_csrg_scals.F90 + impl/psb_d_cuda_hlg_reallocate_nz.F90 + impl/psb_z_cuda_hybg_allocate_mnnz.F90 + impl/psb_s_cuda_csrg_csmm.F90 + impl/psb_s_cuda_hlg_scals.F90 + impl/psb_z_cuda_hybg_csmv.F90 + impl/psb_c_cuda_cp_hdiag_from_coo.F90 + impl/psb_s_cuda_diag_csmv.F90 + impl/psb_z_cuda_hlg_scals.F90 + impl/psb_z_cuda_hlg_scal.F90 + impl/psb_c_cuda_csrg_to_gpu.F90 + impl/psb_d_cuda_hybg_scal.F90 + impl/psb_c_cuda_mv_elg_from_fmt.F90 + impl/psb_d_cuda_cp_csrg_from_fmt.F90 + impl/psb_d_cuda_cp_elg_from_fmt.F90 + impl/psb_z_cuda_mv_diag_from_coo.F90 + impl/psb_c_cuda_elg_asb.f90 + impl/psb_d_cuda_csrg_vect_mv.F90 + impl/psb_d_cuda_hybg_reallocate_nz.F90 + impl/psb_z_cuda_hdiag_vect_mv.F90 + impl/psb_z_cuda_hybg_to_gpu.F90 + impl/psb_d_cuda_mv_hdiag_from_coo.F90 + impl/psb_c_cuda_cp_elg_from_coo.F90 + impl/psb_c_cuda_hdiag_to_gpu.F90 + impl/psb_c_cuda_hlg_inner_vect_sv.F90 + impl/psb_z_cuda_diag_to_gpu.F90 + impl/psb_c_cuda_elg_to_gpu.F90 + impl/psb_c_cuda_hlg_scals.F90 + impl/psb_d_cuda_csrg_inner_vect_sv.F90 + impl/psb_c_cuda_cp_csrg_from_fmt.F90 + impl/psb_z_cuda_diag_vect_mv.F90 + impl/psb_z_cuda_cp_elg_from_coo.F90 + impl/psb_z_cuda_mv_csrg_from_fmt.F90 + impl/psb_d_cuda_mv_diag_from_coo.F90 + impl/psb_d_cuda_hybg_allocate_mnnz.F90 + impl/psb_c_cuda_hybg_vect_mv.F90 + impl/psb_s_cuda_mv_hlg_from_fmt.F90 + impl/psb_c_cuda_mv_diag_from_coo.F90 + impl/psb_s_cuda_hlg_mold.F90 + impl/psb_d_cuda_cp_elg_from_coo.F90 + impl/psb_d_cuda_elg_scals.F90 + impl/psb_d_cuda_csrg_scal.F90 + impl/psb_d_cuda_hlg_csmv.F90 + impl/psb_d_cuda_hdiag_mold.F90 + impl/psb_z_cuda_hdiag_mold.F90 + impl/psb_c_cuda_csrg_csmm.F90 + impl/psb_s_cuda_hlg_csmv.F90 + impl/psb_d_cuda_elg_csput.F90 + impl/psb_d_cuda_hdiag_csmv.F90 + impl/psb_z_cuda_hybg_inner_vect_sv.F90 + impl/psb_s_cuda_csrg_scal.F90 + impl/psb_c_cuda_elg_scals.F90 + impl/psb_d_cuda_csrg_mold.F90 + impl/psb_z_cuda_csrg_mold.F90 + impl/psb_s_cuda_cp_csrg_from_coo.F90 + impl/psb_c_cuda_hybg_scals.F90 + impl/psb_s_cuda_hdiag_vect_mv.F90 + impl/psb_s_cuda_hlg_vect_mv.F90 + impl/psb_z_cuda_cp_hdiag_from_coo.F90 + impl/psb_c_cuda_elg_inner_vect_sv.F90 + impl/psb_c_cuda_elg_allocate_mnnz.F90 + impl/psb_s_cuda_csrg_mold.F90 + impl/psb_c_cuda_mv_hybg_from_coo.F90 + impl/psb_d_cuda_mv_hybg_from_fmt.F90 + impl/psb_c_cuda_hybg_csmv.F90 + impl/psb_z_cuda_hybg_vect_mv.F90 + impl/psb_c_cuda_cp_csrg_from_coo.F90 + impl/psb_z_cuda_elg_mold.F90 + impl/psb_z_cuda_cp_hybg_from_coo.F90 + impl/psb_z_cuda_cp_elg_from_fmt.F90 + impl/psb_s_cuda_hybg_csmm.F90 + impl/psb_z_cuda_elg_asb.f90 + impl/psb_z_cuda_mv_csrg_from_coo.F90 + impl/psb_d_cuda_hlg_from_gpu.F90 + impl/psb_c_cuda_hlg_csmv.F90 + impl/psb_z_cuda_dnsg_mat_impl.F90 + impl/psb_c_cuda_cp_hybg_from_coo.F90 + impl/psb_z_cuda_cp_hlg_from_fmt.F90 + impl/psb_s_cuda_elg_csmm.F90 + impl/psb_c_cuda_csrg_from_gpu.F90 + impl/psb_d_cuda_diag_to_gpu.F90 + impl/psb_d_cuda_mv_elg_from_coo.F90 + impl/psb_d_cuda_elg_from_gpu.F90 + impl/psb_z_cuda_elg_allocate_mnnz.F90 + impl/psb_d_cuda_cp_hdiag_from_coo.F90 + impl/psb_z_cuda_hlg_csmv.F90 + impl/psb_d_cuda_elg_mold.F90 + impl/psb_z_cuda_mv_hdiag_from_coo.F90 + impl/psb_s_cuda_hlg_inner_vect_sv.F90 + impl/psb_c_cuda_cp_hlg_from_fmt.F90 + impl/psb_s_cuda_mv_hybg_from_fmt.F90 + impl/psb_c_cuda_mv_hlg_from_fmt.F90 + impl/psb_z_cuda_mv_hlg_from_coo.F90 + impl/psb_z_cuda_elg_scals.F90 + impl/psb_d_cuda_hybg_vect_mv.F90 + impl/psb_z_cuda_hlg_reallocate_nz.F90 + impl/psb_z_cuda_csrg_csmm.F90 + impl/psb_z_cuda_csrg_to_gpu.F90 + impl/psb_s_cuda_elg_from_gpu.F90 + impl/psb_d_cuda_hybg_csmm.F90 + impl/psb_s_cuda_mv_csrg_from_coo.F90 + impl/psb_d_cuda_hybg_csmv.F90 + impl/psb_s_cuda_csrg_inner_vect_sv.F90 + impl/psb_d_cuda_hlg_vect_mv.F90 + impl/psb_z_cuda_csrg_allocate_mnnz.F90 + impl/psb_s_cuda_hlg_reallocate_nz.F90 + impl/psb_s_cuda_elg_reallocate_nz.F90 + impl/psb_d_cuda_hlg_allocate_mnnz.F90 + impl/psb_d_cuda_elg_scal.F90 + impl/psb_z_cuda_hlg_allocate_mnnz.F90 + impl/psb_z_cuda_hlg_to_gpu.F90 + impl/psb_z_cuda_elg_csmm.F90 + impl/psb_d_cuda_hlg_inner_vect_sv.F90 + impl/psb_z_cuda_diag_mold.F90 + impl/psb_s_cuda_diag_mold.F90 + impl/psb_c_cuda_hybg_to_gpu.F90 + impl/psb_c_cuda_cp_diag_from_coo.F90 + impl/psb_d_cuda_cp_diag_from_coo.F90 + impl/psb_s_cuda_cp_hybg_from_fmt.F90 + impl/psb_s_cuda_elg_csmv.F90 + impl/psb_d_cuda_hlg_to_gpu.F90 + impl/psb_s_cuda_mv_diag_from_coo.F90 + impl/psb_c_cuda_hybg_mold.F90 + impl/psb_s_cuda_hlg_from_gpu.F90 + impl/psb_c_cuda_hdiag_csmv.F90 + impl/psb_z_cuda_cp_hlg_from_coo.F90 + impl/psb_c_cuda_hlg_csmm.F90 + impl/psb_d_cuda_hlg_csmm.F90 + impl/psb_z_cuda_hlg_vect_mv.F90 + impl/psb_z_cuda_cp_csrg_from_fmt.F90 + impl/psb_s_cuda_csrg_scals.F90 + impl/psb_c_cuda_hlg_reallocate_nz.F90 + impl/psb_c_cuda_mv_hdiag_from_coo.F90 + impl/psb_s_cuda_elg_csput.F90 + impl/psb_d_cuda_csrg_to_gpu.F90 + impl/psb_d_cuda_mv_elg_from_fmt.F90 + impl/psb_s_cuda_cp_csrg_from_fmt.F90 + impl/psb_d_cuda_hybg_inner_vect_sv.F90 + impl/psb_d_cuda_hlg_mold.F90 + impl/psb_s_cuda_csrg_reallocate_nz.F90 + impl/psb_z_cuda_csrg_csmv.F90 + impl/psb_s_cuda_mv_hlg_from_coo.F90 + impl/psb_s_cuda_hdiag_csmv.F90 + impl/psb_c_cuda_hlg_mold.F90 + impl/psb_z_cuda_hlg_from_gpu.F90 + impl/psb_s_cuda_cp_diag_from_coo.F90 + impl/psb_d_cuda_hlg_scals.F90 + impl/psb_c_cuda_mv_csrg_from_coo.F90 + impl/psb_s_cuda_cp_hybg_from_coo.F90 + impl/psb_s_cuda_hybg_scals.F90 + impl/psb_d_cuda_cp_hybg_from_coo.F90 + impl/psb_c_cuda_csrg_mold.F90 + impl/psb_d_cuda_elg_vect_mv.F90 + impl/psb_d_cuda_elg_allocate_mnnz.F90 + impl/psb_s_cuda_csrg_to_gpu.F90 + impl/psb_d_cuda_hybg_to_gpu.F90 + impl/psb_z_cuda_cp_diag_from_coo.F90 + impl/psb_d_cuda_mv_hlg_from_coo.F90 + impl/psb_c_cuda_diag_mold.F90 + impl/psb_d_cuda_mv_csrg_from_coo.F90 + impl/psb_d_cuda_hybg_scals.F90 + impl/psb_c_cuda_elg_mold.F90 + impl/psb_z_cuda_hlg_mold.F90 + impl/psb_c_cuda_elg_scal.F90 + impl/psb_d_cuda_csrg_reallocate_nz.F90 + impl/psb_z_cuda_elg_csput.F90 + impl/psb_d_cuda_hdiag_to_gpu.F90 + impl/psb_d_cuda_cp_hlg_from_fmt.F90 + impl/psb_z_cuda_mv_hybg_from_coo.F90 + impl/psb_z_cuda_hlg_csmm.F90 + impl/psb_z_cuda_mv_elg_from_fmt.F90 + impl/psb_d_cuda_diag_mold.F90 + impl/psb_c_cuda_elg_csmv.F90 + impl/psb_d_cuda_mv_csrg_from_fmt.F90 + impl/psb_c_cuda_hlg_from_gpu.F90 + impl/psb_c_cuda_hlg_allocate_mnnz.F90 + impl/psb_z_cuda_csrg_reallocate_nz.F90 + impl/psb_c_cuda_hlg_to_gpu.F90 + impl/psb_c_cuda_csrg_allocate_mnnz.F90 + impl/psb_s_cuda_elg_trim.f90 + impl/psb_c_cuda_elg_reallocate_nz.F90 + impl/psb_d_cuda_csrg_csmv.F90 + impl/psb_z_cuda_csrg_scals.F90 + impl/psb_s_cuda_elg_vect_mv.F90 + impl/psb_z_cuda_csrg_from_gpu.F90 + impl/psb_c_cuda_elg_from_gpu.F90 + impl/psb_c_cuda_diag_csmv.F90 + impl/psb_z_cuda_hybg_reallocate_nz.F90 + impl/psb_z_cuda_hlg_inner_vect_sv.F90 + impl/psb_s_cuda_elg_scals.F90 + impl/psb_s_cuda_hybg_inner_vect_sv.F90 + impl/psb_s_cuda_dnsg_mat_impl.F90 + impl/psb_d_cuda_csrg_allocate_mnnz.F90 + impl/psb_z_cuda_elg_vect_mv.F90 + impl/psb_d_cuda_elg_reallocate_nz.F90 + impl/psb_c_cuda_hybg_reallocate_nz.F90 + impl/psb_d_cuda_mv_hlg_from_fmt.F90 + impl/psb_d_cuda_cp_hlg_from_coo.F90 + impl/psb_s_cuda_hlg_scal.F90 + impl/psb_s_cuda_hlg_to_gpu.F90 + impl/psb_d_cuda_hybg_mold.F90 + impl/psb_s_cuda_hybg_scal.F90 + impl/psb_c_cuda_hdiag_vect_mv.F90 + impl/psb_z_cuda_elg_from_gpu.F90 + impl/psb_c_cuda_mv_hybg_from_fmt.F90 + impl/psb_s_cuda_elg_to_gpu.F90 + impl/psb_s_cuda_mv_hdiag_from_coo.F90 + impl/psb_d_cuda_cp_csrg_from_coo.F90 + impl/psb_d_cuda_diag_csmv.F90 + impl/psb_z_cuda_mv_elg_from_coo.F90 + impl/psb_c_cuda_cp_hybg_from_fmt.F90 + impl/psb_s_cuda_csrg_allocate_mnnz.F90 + impl/psb_c_cuda_elg_csmm.F90 + impl/psb_s_cuda_mv_elg_from_coo.F90 + impl/psb_z_cuda_elg_reallocate_nz.F90 + impl/psb_s_cuda_hybg_reallocate_nz.F90 + impl/psb_s_cuda_diag_vect_mv.F90 + impl/psb_s_cuda_diag_to_gpu.F90 + impl/psb_z_cuda_hybg_mold.F90 + impl/psb_s_cuda_csrg_csmv.F90 + impl/psb_z_cuda_hybg_scals.F90 + impl/psb_s_cuda_csrg_from_gpu.F90 + impl/psb_z_cuda_elg_csmv.F90 + impl/psb_s_cuda_hdiag_to_gpu.F90 + impl/psb_s_cuda_hlg_allocate_mnnz.F90 + impl/psb_z_cuda_hdiag_to_gpu.F90 + impl/psb_s_cuda_cp_hdiag_from_coo.F90 + impl/psb_z_cuda_csrg_scal.F90 + impl/psb_c_cuda_elg_vect_mv.F90 + impl/psb_c_cuda_hybg_allocate_mnnz.F90 + impl/psb_s_cuda_cp_hlg_from_fmt.F90 + impl/psb_d_cuda_elg_inner_vect_sv.F90 + impl/psb_c_cuda_csrg_reallocate_nz.F90 + impl/psb_d_cuda_elg_to_gpu.F90 + impl/psb_z_cuda_mv_hybg_from_fmt.F90 + impl/psb_d_cuda_hdiag_vect_mv.F90 + impl/psb_z_cuda_hybg_scal.F90 + psb_d_cuda_elg_mat_mod.F90 + psb_d_cuda_hlg_mat_mod.F90 + hdiagdev_mod.F90 + psb_s_cuda_hybg_mat_mod.F90 + psb_d_cuda_hybg_mat_mod.F90 + dnsdev_mod.F90 + psb_c_cuda_hlg_mat_mod.F90 + psb_i_cuda_vect_mod.F90 + z_cusparse_mod.F90 + psb_s_cuda_hdiag_mat_mod.F90 + psb_d_cuda_hdiag_mat_mod.F90 + psb_z_cuda_hdiag_mat_mod.F90 + psb_z_cuda_vect_mod.F90 + psb_z_cuda_hybg_mat_mod.F90 + psb_c_cuda_elg_mat_mod.F90 + psb_c_cuda_dnsg_mat_mod.F90 + elldev_mod.F90 + psb_c_cuda_diag_mat_mod.F90 + psb_z_cuda_elg_mat_mod.F90 + psb_i_cuda_diag_mat_mod.F90 + psb_i_cuda_hdiag_mat_mod.F90 + psb_c_cuda_vect_mod.F90 + psb_d_cuda_dnsg_mat_mod.F90 + psb_s_cuda_dnsg_mat_mod.F90 + psb_s_cuda_vect_mod.F90 + hlldev_mod.F90 + psb_z_cuda_dnsg_mat_mod.F90 + psb_i_cuda_csrg_mat_mod.F90 + psb_z_cuda_hlg_mat_mod.F90 + psb_c_vectordev_mod.F90 + psb_s_cuda_diag_mat_mod.F90 + psb_s_cuda_elg_mat_mod.F90 + psb_s_cuda_hlg_mat_mod.F90 + core_mod.f90 + psb_d_cuda_diag_mat_mod.F90 + psb_i_cuda_hybg_mat_mod.F90 + psb_z_vectordev_mod.F90 + psb_i_cuda_hlg_mat_mod.F90 + psb_d_cuda_vect_mod.F90 + psb_cuda_env_mod.F90 + psb_c_cuda_hdiag_mat_mod.F90 + psb_s_vectordev_mod.F90 + base_cusparse_mod.F90 + psb_i_cuda_elg_mat_mod.F90 + psb_vectordev_mod.f90 + psb_c_cuda_hybg_mat_mod.F90 + s_cusparse_mod.F90 + d_cusparse_mod.F90 + diagdev_mod.F90 + psb_d_vectordev_mod.F90 + psb_c_cuda_csrg_mat_mod.F90 + psb_s_cuda_csrg_mat_mod.F90 +) + + +list(APPEND PSB_cuda_source_C_files + zvectordev.c + ivectordev.c + hdiagdev.c + scusparse.c + ccusparse.c + vectordev.c + diagdev.c + dnsdev.c + hlldev.c + svectordev.c + dvectordev.c + fcusparse.c + spgpu/hell.c + spgpu/ell.c + spgpu/dia.c + spgpu/core.c + zcusparse.c + cuda_util.c + elldev.c + cvectordev.c + dcusparse.c + + ) + +list(APPEND PSB_cuda_header_C_files + diagdev.h + fcusparse_fct.h + zcusparse.h + ccusparse.h + cintrf.h + vectordev.h + dnsdev.h + zvectordev.h + ivectordev.h + elldev.h + fcusparse.h + cuda_util.h + cvectordev.h + dcusparse.h + fcusparse_dat.h + hlldev.h + spgpu/kernels/cudadebug.h + spgpu/kernels/cudalang.h + spgpu/debug.h + spgpu/ell.h + spgpu/coo_conv.h + spgpu/ell_conv.h + spgpu/hdia_conv.h + spgpu/hdia.h + spgpu/core.h + spgpu/vector.h + spgpu/dia.h + spgpu/hell.h + spgpu/dia_conv.h + spgpu/hell_conv.h + svectordev.h + hdiagdev.h + dvectordev.h + scusparse.h +) + +list(APPEND PSB_cuda_header_cu_files + CUDA/psi_cuda_CopyCooToElg.cuh + CUDA/psi_cuda_common.cuh + CUDA/psi_cuda_CopyCooToHlg.cuh + spgpu/kernels/mathbase.cuh + spgpu/kernels/dia_spmv_base.cuh + spgpu/kernels/asum_base.cuh + spgpu/kernels/hdia_spmv_base.cuh + spgpu/kernels/hdia_spmv_base_template.cuh + spgpu/kernels/scal_base.cuh + spgpu/kernels/gath_base.cuh + spgpu/kernels/ell_spmv_base_template.cuh + spgpu/kernels/ell_spmv_base.cuh + spgpu/kernels/setscal_base.cuh + spgpu/kernels/amax_base.cuh + spgpu/kernels/abs_base.cuh + spgpu/kernels/hell_spmv_base.cuh + spgpu/kernels/dia_spmv_base_template.cuh + spgpu/kernels/axy_base.cuh + spgpu/kernels/ell_csput_base.cuh + spgpu/kernels/scat_base.cuh + spgpu/kernels/ell_spmv_base_nors.cuh + spgpu/kernels/hell_spmv_base_template.cuh +) + +list(APPEND PSB_cuda_source_cu_files + CUDA/psi_cuda_c_CopyCooToElg.cu + CUDA/psi_cuda_d_CopyCooToElg.cu + CUDA/psi_cuda_c_CopyCooToHlg.cu + CUDA/psi_cuda_s_CopyCooToHlg.cu + CUDA/psi_cuda_s_CopyCooToElg.cu + CUDA/psi_cuda_d_CopyCooToHlg.cu + CUDA/psi_cuda_z_CopyCooToHlg.cu + CUDA/psi_cuda_z_CopyCooToElg.cu + spgpu/kernels/ddot.cu + spgpu/kernels/zscat.cu + spgpu/kernels/ell_cspmv.cu + spgpu/kernels/ssetscal.cu + spgpu/kernels/sasum.cu + spgpu/kernels/dupd_xyz.cu + spgpu/kernels/caxy.cu + spgpu/kernels/cscal.cu + spgpu/kernels/sscal.cu + spgpu/kernels/hell_sspmv.cu + spgpu/kernels/dscat.cu + spgpu/kernels/hell_cspmv.cu + spgpu/kernels/cxyzw.cu + spgpu/kernels/casum.cu + spgpu/kernels/zabs.cu + spgpu/kernels/ell_zspmv.cu + spgpu/kernels/ell_zcsput.cu + spgpu/kernels/hdia_cspmv.cu + spgpu/kernels/zxyzw.cu + spgpu/kernels/dnrm2.cu + spgpu/kernels/cabs.cu + spgpu/kernels/cnrm2.cu + spgpu/kernels/csetscal.cu + spgpu/kernels/cscat.cu + spgpu/kernels/zdot.cu + spgpu/kernels/ell_ccsput.cu + spgpu/kernels/zaxpby.cu + spgpu/kernels/zsetscal.cu + spgpu/kernels/sdot.cu + spgpu/kernels/zgath.cu + spgpu/kernels/saxy.cu + spgpu/kernels/dscal.cu + spgpu/kernels/cgath.cu + spgpu/kernels/hdia_dspmv.cu + spgpu/kernels/camax.cu + spgpu/kernels/dabs.cu + spgpu/kernels/dasum.cu + spgpu/kernels/sgath.cu + spgpu/kernels/znrm2.cu + spgpu/kernels/igath.cu + spgpu/kernels/hell_zspmv.cu + spgpu/kernels/hell_dspmv.cu + spgpu/kernels/damax.cu + spgpu/kernels/dsetscal.cu + spgpu/kernels/dxyzw.cu + spgpu/kernels/zaxy.cu + spgpu/kernels/dgath.cu + spgpu/kernels/iscat.cu + spgpu/kernels/supd_xyz.cu + spgpu/kernels/sxyzw.cu + spgpu/kernels/ell_dcsput.cu + spgpu/kernels/dia_cspmv.cu + spgpu/kernels/ell_scsput.cu + spgpu/kernels/caxpby.cu + spgpu/kernels/zupd_xyz.cu + spgpu/kernels/isetscal.cu + spgpu/kernels/hdia_sspmv.cu + spgpu/kernels/daxy.cu + spgpu/kernels/zscal.cu + spgpu/kernels/ell_sspmv.cu + spgpu/kernels/sabs.cu + spgpu/kernels/hdia_zspmv.cu + spgpu/kernels/saxpby.cu + spgpu/kernels/zamax.cu + spgpu/kernels/dia_sspmv.cu + spgpu/kernels/zasum.cu + spgpu/kernels/dia_zspmv.cu + spgpu/kernels/ell_dspmv.cu + spgpu/kernels/snrm2.cu + spgpu/kernels/sscat.cu + spgpu/kernels/cdot.cu + spgpu/kernels/samax.cu + spgpu/kernels/cupd_xyz.cu + spgpu/kernels/dia_dspmv.cu + spgpu/kernels/daxpby.cu +) + + +foreach(file IN LISTS PSB_cuda_source_files) + list(APPEND cuda_source_files ${CMAKE_CURRENT_LIST_DIR}/${file}) +endforeach() + +foreach(file IN LISTS PSB_cuda_source_C_files) + list(APPEND cuda_source_C_files ${CMAKE_CURRENT_LIST_DIR}/${file}) +endforeach() + +foreach(file IN LISTS PSB_cuda_header_C_files) + list(APPEND cuda_header_C_files ${CMAKE_CURRENT_LIST_DIR}/${file}) +endforeach() + +foreach(file IN LISTS PSB_cuda_source_cu_files) + list(APPEND cuda_source_cu_files ${CMAKE_CURRENT_LIST_DIR}/${file}) +endforeach() + +foreach(file IN LISTS PSB_cuda_header_cu_files) + list(APPEND cuda_header_cu_files ${CMAKE_CURRENT_LIST_DIR}/${file}) +endforeach()