diff --git a/openacc/impl/psb_c_oacc_csr_allocate_mnnz.F90 b/openacc/impl/psb_c_oacc_csr_allocate_mnnz.F90 index 09cdc228..a6fe9b9c 100644 --- a/openacc/impl/psb_c_oacc_csr_allocate_mnnz.F90 +++ b/openacc/impl/psb_c_oacc_csr_allocate_mnnz.F90 @@ -15,14 +15,8 @@ contains info = psb_success_ call a%psb_c_csr_sparse_mat%allocate(m, n, nz) - - if (.not.allocated(a%val)) then - allocate(a%val(nz)) - allocate(a%ja(nz)) - allocate(a%irp(m+1)) - end if - - call a%set_dev() + call a%set_host() + call a%sync_dev_space() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_c_oacc_csr_cp_from_coo.F90 b/openacc/impl/psb_c_oacc_csr_cp_from_coo.F90 index a411cc6a..ab5f514b 100644 --- a/openacc/impl/psb_c_oacc_csr_cp_from_coo.F90 +++ b/openacc/impl/psb_c_oacc_csr_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_c_csr_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_c_oacc_csr_cp_from_fmt.F90 b/openacc/impl/psb_c_oacc_csr_cp_from_fmt.F90 index a8cd93a0..c6287cbb 100644 --- a/openacc/impl/psb_c_oacc_csr_cp_from_fmt.F90 +++ b/openacc/impl/psb_c_oacc_csr_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_c_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_c_csr_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_c_oacc_csr_inner_vect_sv.F90 b/openacc/impl/psb_c_oacc_csr_inner_vect_sv.F90 index 1dee9f2e..833140f4 100644 --- a/openacc/impl/psb_c_oacc_csr_inner_vect_sv.F90 +++ b/openacc/impl/psb_c_oacc_csr_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_c_csr_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_c_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_c_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_c_oacc_csr_mv_from_coo.F90 b/openacc/impl/psb_c_oacc_csr_mv_from_coo.F90 index 30691030..73f02b84 100644 --- a/openacc/impl/psb_c_oacc_csr_mv_from_coo.F90 +++ b/openacc/impl/psb_c_oacc_csr_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_c_csr_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_c_oacc_csr_mv_from_fmt.F90 b/openacc/impl/psb_c_oacc_csr_mv_from_fmt.F90 index b37011c0..853a3269 100644 --- a/openacc/impl/psb_c_oacc_csr_mv_from_fmt.F90 +++ b/openacc/impl/psb_c_oacc_csr_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_c_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_c_csr_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_c_oacc_csr_reallocate_nz.F90 b/openacc/impl/psb_c_oacc_csr_reallocate_nz.F90 index 92a53116..e7dc970a 100644 --- a/openacc/impl/psb_c_oacc_csr_reallocate_nz.F90 +++ b/openacc/impl/psb_c_oacc_csr_reallocate_nz.F90 @@ -14,8 +14,8 @@ contains info = psb_success_ call a%psb_c_csr_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_c_oacc_ell_allocate_mnnz.F90 b/openacc/impl/psb_c_oacc_ell_allocate_mnnz.F90 index 594f3e88..5a363434 100644 --- a/openacc/impl/psb_c_oacc_ell_allocate_mnnz.F90 +++ b/openacc/impl/psb_c_oacc_ell_allocate_mnnz.F90 @@ -21,20 +21,8 @@ contains end if call a%psb_c_ell_sparse_mat%allocate(m, n, nz_) - - if (.not.allocated(a%val)) then - allocate(a%val(m, nz_)) - allocate(a%ja(m, nz_)) - allocate(a%irn(m)) - allocate(a%idiag(m)) - end if - - a%val = czero - a%ja = -1 - a%irn = 0 - a%idiag = 0 - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_c_oacc_ell_cp_from_coo.F90 b/openacc/impl/psb_c_oacc_ell_cp_from_coo.F90 index 836874fe..47118e48 100644 --- a/openacc/impl/psb_c_oacc_ell_cp_from_coo.F90 +++ b/openacc/impl/psb_c_oacc_ell_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_c_ell_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_c_oacc_ell_cp_from_fmt.F90 b/openacc/impl/psb_c_oacc_ell_cp_from_fmt.F90 index 31d6c4b4..559cb65c 100644 --- a/openacc/impl/psb_c_oacc_ell_cp_from_fmt.F90 +++ b/openacc/impl/psb_c_oacc_ell_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_c_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_c_ell_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_c_oacc_ell_inner_vect_sv.F90 b/openacc/impl/psb_c_oacc_ell_inner_vect_sv.F90 index df642ee8..cfabcb78 100644 --- a/openacc/impl/psb_c_oacc_ell_inner_vect_sv.F90 +++ b/openacc/impl/psb_c_oacc_ell_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_c_ell_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_c_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_c_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_c_oacc_ell_mv_from_coo.F90 b/openacc/impl/psb_c_oacc_ell_mv_from_coo.F90 index 1ca43435..183be9a5 100644 --- a/openacc/impl/psb_c_oacc_ell_mv_from_coo.F90 +++ b/openacc/impl/psb_c_oacc_ell_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_c_ell_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_c_oacc_ell_mv_from_fmt.F90 b/openacc/impl/psb_c_oacc_ell_mv_from_fmt.F90 index 95798429..d1bd6330 100644 --- a/openacc/impl/psb_c_oacc_ell_mv_from_fmt.F90 +++ b/openacc/impl/psb_c_oacc_ell_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_c_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_c_ell_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_c_oacc_ell_reallocate_nz.F90 b/openacc/impl/psb_c_oacc_ell_reallocate_nz.F90 index 9f21c5df..24d153f6 100644 --- a/openacc/impl/psb_c_oacc_ell_reallocate_nz.F90 +++ b/openacc/impl/psb_c_oacc_ell_reallocate_nz.F90 @@ -14,8 +14,8 @@ contains info = psb_success_ call a%psb_c_ell_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_c_oacc_hll_allocate_mnnz.F90 b/openacc/impl/psb_c_oacc_hll_allocate_mnnz.F90 index 0840d0d6..c90fc652 100644 --- a/openacc/impl/psb_c_oacc_hll_allocate_mnnz.F90 +++ b/openacc/impl/psb_c_oacc_hll_allocate_mnnz.F90 @@ -22,25 +22,8 @@ contains end if call a%psb_c_hll_sparse_mat%allocate(m, n, nz_) - - hksz = a%hksz - nhacks = (m + hksz - 1) / hksz - - if (.not.allocated(a%val)) then - allocate(a%val(nz_ * m)) - allocate(a%ja(nz_ * m)) - allocate(a%irn(m)) - allocate(a%idiag(m)) - allocate(a%hkoffs(nhacks)) - end if - - a%val = czero - a%ja = -1 - a%irn = 0 - a%idiag = 0 - a%hkoffs = 0 - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_c_oacc_hll_cp_from_coo.F90 b/openacc/impl/psb_c_oacc_hll_cp_from_coo.F90 index 32391cc8..0eaebf9d 100644 --- a/openacc/impl/psb_c_oacc_hll_cp_from_coo.F90 +++ b/openacc/impl/psb_c_oacc_hll_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_c_hll_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_c_oacc_hll_cp_from_fmt.F90 b/openacc/impl/psb_c_oacc_hll_cp_from_fmt.F90 index e442b668..29b18470 100644 --- a/openacc/impl/psb_c_oacc_hll_cp_from_fmt.F90 +++ b/openacc/impl/psb_c_oacc_hll_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_c_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_c_hll_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_c_oacc_hll_inner_vect_sv.F90 b/openacc/impl/psb_c_oacc_hll_inner_vect_sv.F90 index a8d486b2..4b45f518 100644 --- a/openacc/impl/psb_c_oacc_hll_inner_vect_sv.F90 +++ b/openacc/impl/psb_c_oacc_hll_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_c_hll_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_c_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_c_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_c_oacc_hll_mv_from_coo.F90 b/openacc/impl/psb_c_oacc_hll_mv_from_coo.F90 index 30d723fe..193f9753 100644 --- a/openacc/impl/psb_c_oacc_hll_mv_from_coo.F90 +++ b/openacc/impl/psb_c_oacc_hll_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_c_hll_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_c_oacc_hll_mv_from_fmt.F90 b/openacc/impl/psb_c_oacc_hll_mv_from_fmt.F90 index 0ac69af8..1c928067 100644 --- a/openacc/impl/psb_c_oacc_hll_mv_from_fmt.F90 +++ b/openacc/impl/psb_c_oacc_hll_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_c_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_c_hll_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_c_oacc_hll_reallocate_nz.F90 b/openacc/impl/psb_c_oacc_hll_reallocate_nz.F90 index 52983d4e..9290c381 100644 --- a/openacc/impl/psb_c_oacc_hll_reallocate_nz.F90 +++ b/openacc/impl/psb_c_oacc_hll_reallocate_nz.F90 @@ -15,8 +15,8 @@ contains info = psb_success_ call a%psb_c_hll_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_c_oacc_mlt_v.f90 b/openacc/impl/psb_c_oacc_mlt_v.f90 index a366543a..e5f215be 100644 --- a/openacc/impl/psb_c_oacc_mlt_v.f90 +++ b/openacc/impl/psb_c_oacc_mlt_v.f90 @@ -1,6 +1,6 @@ subroutine psb_c_oacc_mlt_v(x, y, info) - use psb_c_oacc_vect_mod, psb_protect_name => psb_c_oacc_mlt_v + use psb_c_oacc_vect_mod, psb_protect_name => psb_c_oacc_mlt_v implicit none class(psb_c_base_vect_type), intent(inout) :: x @@ -13,7 +13,7 @@ subroutine psb_c_oacc_mlt_v(x, y, info) n = min(x%get_nrows(), y%get_nrows()) info = 0 n = min(x%get_nrows(), y%get_nrows()) - select type(xx => x) + select type(xx => x) class is (psb_c_vect_oacc) if (y%is_host()) call y%sync() if (xx%is_host()) call xx%sync() diff --git a/openacc/impl/psb_c_oacc_mlt_v_2.f90 b/openacc/impl/psb_c_oacc_mlt_v_2.f90 index f7bceae7..b47cd1ae 100644 --- a/openacc/impl/psb_c_oacc_mlt_v_2.f90 +++ b/openacc/impl/psb_c_oacc_mlt_v_2.f90 @@ -1,5 +1,5 @@ subroutine psb_c_oacc_mlt_v_2(alpha, x, y, beta, z, info, conjgx, conjgy) - use psb_c_oacc_vect_mod, psb_protect_name => psb_c_oacc_mlt_v_2 + use psb_c_oacc_vect_mod, psb_protect_name => psb_c_oacc_mlt_v_2 use psb_string_mod implicit none complex(psb_spk_), intent(in) :: alpha, beta @@ -18,9 +18,9 @@ subroutine psb_c_oacc_mlt_v_2(alpha, x, y, beta, z, info, conjgx, conjgy) n = min(x%get_nrows(), y%get_nrows(), z%get_nrows()) info = 0 - select type(xx => x) + select type(xx => x) class is (psb_c_vect_oacc) - select type (yy => y) + select type (yy => y) class is (psb_c_vect_oacc) if (xx%is_host()) call xx%sync() if (yy%is_host()) call yy%sync() diff --git a/openacc/impl/psb_d_oacc_csr_allocate_mnnz.F90 b/openacc/impl/psb_d_oacc_csr_allocate_mnnz.F90 index 5281edee..1f210a09 100644 --- a/openacc/impl/psb_d_oacc_csr_allocate_mnnz.F90 +++ b/openacc/impl/psb_d_oacc_csr_allocate_mnnz.F90 @@ -15,14 +15,8 @@ contains info = psb_success_ call a%psb_d_csr_sparse_mat%allocate(m, n, nz) - - if (.not.allocated(a%val)) then - allocate(a%val(nz)) - allocate(a%ja(nz)) - allocate(a%irp(m+1)) - end if - - call a%set_dev() + call a%set_host() + call a%sync_dev_space() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_d_oacc_csr_cp_from_coo.F90 b/openacc/impl/psb_d_oacc_csr_cp_from_coo.F90 index 50da7692..92770e0f 100644 --- a/openacc/impl/psb_d_oacc_csr_cp_from_coo.F90 +++ b/openacc/impl/psb_d_oacc_csr_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_d_csr_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_d_oacc_csr_cp_from_fmt.F90 b/openacc/impl/psb_d_oacc_csr_cp_from_fmt.F90 index 0d35e247..9da6d861 100644 --- a/openacc/impl/psb_d_oacc_csr_cp_from_fmt.F90 +++ b/openacc/impl/psb_d_oacc_csr_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_d_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_d_csr_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_d_oacc_csr_inner_vect_sv.F90 b/openacc/impl/psb_d_oacc_csr_inner_vect_sv.F90 index 5f0ef4a0..c9a875bc 100644 --- a/openacc/impl/psb_d_oacc_csr_inner_vect_sv.F90 +++ b/openacc/impl/psb_d_oacc_csr_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_d_csr_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_d_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_d_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_d_oacc_csr_mv_from_coo.F90 b/openacc/impl/psb_d_oacc_csr_mv_from_coo.F90 index 97fa07d1..0f020e06 100644 --- a/openacc/impl/psb_d_oacc_csr_mv_from_coo.F90 +++ b/openacc/impl/psb_d_oacc_csr_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_d_csr_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_d_oacc_csr_mv_from_fmt.F90 b/openacc/impl/psb_d_oacc_csr_mv_from_fmt.F90 index e992f41a..cfd7d7dd 100644 --- a/openacc/impl/psb_d_oacc_csr_mv_from_fmt.F90 +++ b/openacc/impl/psb_d_oacc_csr_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_d_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_d_csr_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_d_oacc_csr_reallocate_nz.F90 b/openacc/impl/psb_d_oacc_csr_reallocate_nz.F90 index c345f681..8f746105 100644 --- a/openacc/impl/psb_d_oacc_csr_reallocate_nz.F90 +++ b/openacc/impl/psb_d_oacc_csr_reallocate_nz.F90 @@ -14,8 +14,8 @@ contains info = psb_success_ call a%psb_d_csr_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_d_oacc_ell_allocate_mnnz.F90 b/openacc/impl/psb_d_oacc_ell_allocate_mnnz.F90 index b46c5454..ca0a0f84 100644 --- a/openacc/impl/psb_d_oacc_ell_allocate_mnnz.F90 +++ b/openacc/impl/psb_d_oacc_ell_allocate_mnnz.F90 @@ -21,20 +21,8 @@ contains end if call a%psb_d_ell_sparse_mat%allocate(m, n, nz_) - - if (.not.allocated(a%val)) then - allocate(a%val(m, nz_)) - allocate(a%ja(m, nz_)) - allocate(a%irn(m)) - allocate(a%idiag(m)) - end if - - a%val = dzero - a%ja = -1 - a%irn = 0 - a%idiag = 0 - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_d_oacc_ell_cp_from_coo.F90 b/openacc/impl/psb_d_oacc_ell_cp_from_coo.F90 index 6c24098e..384701ce 100644 --- a/openacc/impl/psb_d_oacc_ell_cp_from_coo.F90 +++ b/openacc/impl/psb_d_oacc_ell_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_d_ell_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_d_oacc_ell_cp_from_fmt.F90 b/openacc/impl/psb_d_oacc_ell_cp_from_fmt.F90 index 991681e9..6622a642 100644 --- a/openacc/impl/psb_d_oacc_ell_cp_from_fmt.F90 +++ b/openacc/impl/psb_d_oacc_ell_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_d_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_d_ell_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_d_oacc_ell_inner_vect_sv.F90 b/openacc/impl/psb_d_oacc_ell_inner_vect_sv.F90 index 2c5563ce..466594fb 100644 --- a/openacc/impl/psb_d_oacc_ell_inner_vect_sv.F90 +++ b/openacc/impl/psb_d_oacc_ell_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_d_ell_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_d_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_d_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_d_oacc_ell_mv_from_coo.F90 b/openacc/impl/psb_d_oacc_ell_mv_from_coo.F90 index 9214ba3f..7bddced9 100644 --- a/openacc/impl/psb_d_oacc_ell_mv_from_coo.F90 +++ b/openacc/impl/psb_d_oacc_ell_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_d_ell_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_d_oacc_ell_mv_from_fmt.F90 b/openacc/impl/psb_d_oacc_ell_mv_from_fmt.F90 index 292165fc..53e45b98 100644 --- a/openacc/impl/psb_d_oacc_ell_mv_from_fmt.F90 +++ b/openacc/impl/psb_d_oacc_ell_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_d_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_d_ell_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_d_oacc_ell_reallocate_nz.F90 b/openacc/impl/psb_d_oacc_ell_reallocate_nz.F90 index 11332472..130a931e 100644 --- a/openacc/impl/psb_d_oacc_ell_reallocate_nz.F90 +++ b/openacc/impl/psb_d_oacc_ell_reallocate_nz.F90 @@ -14,8 +14,8 @@ contains info = psb_success_ call a%psb_d_ell_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_d_oacc_hll_allocate_mnnz.F90 b/openacc/impl/psb_d_oacc_hll_allocate_mnnz.F90 index 47a6933b..a30a0b00 100644 --- a/openacc/impl/psb_d_oacc_hll_allocate_mnnz.F90 +++ b/openacc/impl/psb_d_oacc_hll_allocate_mnnz.F90 @@ -22,25 +22,8 @@ contains end if call a%psb_d_hll_sparse_mat%allocate(m, n, nz_) - - hksz = a%hksz - nhacks = (m + hksz - 1) / hksz - - if (.not.allocated(a%val)) then - allocate(a%val(nz_ * m)) - allocate(a%ja(nz_ * m)) - allocate(a%irn(m)) - allocate(a%idiag(m)) - allocate(a%hkoffs(nhacks)) - end if - - a%val = dzero - a%ja = -1 - a%irn = 0 - a%idiag = 0 - a%hkoffs = 0 - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_d_oacc_hll_cp_from_coo.F90 b/openacc/impl/psb_d_oacc_hll_cp_from_coo.F90 index e39a29b7..34a31b0b 100644 --- a/openacc/impl/psb_d_oacc_hll_cp_from_coo.F90 +++ b/openacc/impl/psb_d_oacc_hll_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_d_hll_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_d_oacc_hll_cp_from_fmt.F90 b/openacc/impl/psb_d_oacc_hll_cp_from_fmt.F90 index a838e31e..7d14f65c 100644 --- a/openacc/impl/psb_d_oacc_hll_cp_from_fmt.F90 +++ b/openacc/impl/psb_d_oacc_hll_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_d_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_d_hll_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_d_oacc_hll_inner_vect_sv.F90 b/openacc/impl/psb_d_oacc_hll_inner_vect_sv.F90 index ae1c3c94..ff6a4580 100644 --- a/openacc/impl/psb_d_oacc_hll_inner_vect_sv.F90 +++ b/openacc/impl/psb_d_oacc_hll_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_d_hll_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_d_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_d_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_d_oacc_hll_mv_from_coo.F90 b/openacc/impl/psb_d_oacc_hll_mv_from_coo.F90 index 29494a39..0f0ce6f1 100644 --- a/openacc/impl/psb_d_oacc_hll_mv_from_coo.F90 +++ b/openacc/impl/psb_d_oacc_hll_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_d_hll_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_d_oacc_hll_mv_from_fmt.F90 b/openacc/impl/psb_d_oacc_hll_mv_from_fmt.F90 index e03e2f30..1fcfa4f6 100644 --- a/openacc/impl/psb_d_oacc_hll_mv_from_fmt.F90 +++ b/openacc/impl/psb_d_oacc_hll_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_d_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_d_hll_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_d_oacc_hll_reallocate_nz.F90 b/openacc/impl/psb_d_oacc_hll_reallocate_nz.F90 index 412409d1..21f5c48a 100644 --- a/openacc/impl/psb_d_oacc_hll_reallocate_nz.F90 +++ b/openacc/impl/psb_d_oacc_hll_reallocate_nz.F90 @@ -15,8 +15,8 @@ contains info = psb_success_ call a%psb_d_hll_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_d_oacc_mlt_v.f90 b/openacc/impl/psb_d_oacc_mlt_v.f90 index dac62a65..8b3a05b1 100644 --- a/openacc/impl/psb_d_oacc_mlt_v.f90 +++ b/openacc/impl/psb_d_oacc_mlt_v.f90 @@ -1,6 +1,6 @@ subroutine psb_d_oacc_mlt_v(x, y, info) - use psb_d_oacc_vect_mod, psb_protect_name => psb_d_oacc_mlt_v + use psb_d_oacc_vect_mod, psb_protect_name => psb_d_oacc_mlt_v implicit none class(psb_d_base_vect_type), intent(inout) :: x @@ -13,7 +13,7 @@ subroutine psb_d_oacc_mlt_v(x, y, info) n = min(x%get_nrows(), y%get_nrows()) info = 0 n = min(x%get_nrows(), y%get_nrows()) - select type(xx => x) + select type(xx => x) class is (psb_d_vect_oacc) if (y%is_host()) call y%sync() if (xx%is_host()) call xx%sync() diff --git a/openacc/impl/psb_d_oacc_mlt_v_2.f90 b/openacc/impl/psb_d_oacc_mlt_v_2.f90 index 3f3a457d..ce460924 100644 --- a/openacc/impl/psb_d_oacc_mlt_v_2.f90 +++ b/openacc/impl/psb_d_oacc_mlt_v_2.f90 @@ -1,5 +1,5 @@ subroutine psb_d_oacc_mlt_v_2(alpha, x, y, beta, z, info, conjgx, conjgy) - use psb_d_oacc_vect_mod, psb_protect_name => psb_d_oacc_mlt_v_2 + use psb_d_oacc_vect_mod, psb_protect_name => psb_d_oacc_mlt_v_2 use psb_string_mod implicit none real(psb_dpk_), intent(in) :: alpha, beta @@ -18,9 +18,9 @@ subroutine psb_d_oacc_mlt_v_2(alpha, x, y, beta, z, info, conjgx, conjgy) n = min(x%get_nrows(), y%get_nrows(), z%get_nrows()) info = 0 - select type(xx => x) + select type(xx => x) class is (psb_d_vect_oacc) - select type (yy => y) + select type (yy => y) class is (psb_d_vect_oacc) if (xx%is_host()) call xx%sync() if (yy%is_host()) call yy%sync() diff --git a/openacc/impl/psb_s_oacc_csr_allocate_mnnz.F90 b/openacc/impl/psb_s_oacc_csr_allocate_mnnz.F90 index 08c51bce..0d531129 100644 --- a/openacc/impl/psb_s_oacc_csr_allocate_mnnz.F90 +++ b/openacc/impl/psb_s_oacc_csr_allocate_mnnz.F90 @@ -15,14 +15,8 @@ contains info = psb_success_ call a%psb_s_csr_sparse_mat%allocate(m, n, nz) - - if (.not.allocated(a%val)) then - allocate(a%val(nz)) - allocate(a%ja(nz)) - allocate(a%irp(m+1)) - end if - - call a%set_dev() + call a%set_host() + call a%sync_dev_space() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_s_oacc_csr_cp_from_coo.F90 b/openacc/impl/psb_s_oacc_csr_cp_from_coo.F90 index 3c2fb1cb..f740cf18 100644 --- a/openacc/impl/psb_s_oacc_csr_cp_from_coo.F90 +++ b/openacc/impl/psb_s_oacc_csr_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_s_csr_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_s_oacc_csr_cp_from_fmt.F90 b/openacc/impl/psb_s_oacc_csr_cp_from_fmt.F90 index e47959f8..fc495668 100644 --- a/openacc/impl/psb_s_oacc_csr_cp_from_fmt.F90 +++ b/openacc/impl/psb_s_oacc_csr_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_s_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_s_csr_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_s_oacc_csr_inner_vect_sv.F90 b/openacc/impl/psb_s_oacc_csr_inner_vect_sv.F90 index ec7f4bad..b1785b49 100644 --- a/openacc/impl/psb_s_oacc_csr_inner_vect_sv.F90 +++ b/openacc/impl/psb_s_oacc_csr_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_s_csr_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_s_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_s_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_s_oacc_csr_mv_from_coo.F90 b/openacc/impl/psb_s_oacc_csr_mv_from_coo.F90 index fdbf3a0c..0c92e476 100644 --- a/openacc/impl/psb_s_oacc_csr_mv_from_coo.F90 +++ b/openacc/impl/psb_s_oacc_csr_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_s_csr_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_s_oacc_csr_mv_from_fmt.F90 b/openacc/impl/psb_s_oacc_csr_mv_from_fmt.F90 index a7a581b8..1c61eb3b 100644 --- a/openacc/impl/psb_s_oacc_csr_mv_from_fmt.F90 +++ b/openacc/impl/psb_s_oacc_csr_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_s_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_s_csr_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_s_oacc_csr_reallocate_nz.F90 b/openacc/impl/psb_s_oacc_csr_reallocate_nz.F90 index 77c17120..e49bf2c8 100644 --- a/openacc/impl/psb_s_oacc_csr_reallocate_nz.F90 +++ b/openacc/impl/psb_s_oacc_csr_reallocate_nz.F90 @@ -14,8 +14,8 @@ contains info = psb_success_ call a%psb_s_csr_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_s_oacc_ell_allocate_mnnz.F90 b/openacc/impl/psb_s_oacc_ell_allocate_mnnz.F90 index 38c19b78..b9c25654 100644 --- a/openacc/impl/psb_s_oacc_ell_allocate_mnnz.F90 +++ b/openacc/impl/psb_s_oacc_ell_allocate_mnnz.F90 @@ -21,20 +21,8 @@ contains end if call a%psb_s_ell_sparse_mat%allocate(m, n, nz_) - - if (.not.allocated(a%val)) then - allocate(a%val(m, nz_)) - allocate(a%ja(m, nz_)) - allocate(a%irn(m)) - allocate(a%idiag(m)) - end if - - a%val = szero - a%ja = -1 - a%irn = 0 - a%idiag = 0 - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_s_oacc_ell_cp_from_coo.F90 b/openacc/impl/psb_s_oacc_ell_cp_from_coo.F90 index 0f6fbc48..5a607370 100644 --- a/openacc/impl/psb_s_oacc_ell_cp_from_coo.F90 +++ b/openacc/impl/psb_s_oacc_ell_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_s_ell_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_s_oacc_ell_cp_from_fmt.F90 b/openacc/impl/psb_s_oacc_ell_cp_from_fmt.F90 index 793c2779..47ce5241 100644 --- a/openacc/impl/psb_s_oacc_ell_cp_from_fmt.F90 +++ b/openacc/impl/psb_s_oacc_ell_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_s_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_s_ell_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_s_oacc_ell_inner_vect_sv.F90 b/openacc/impl/psb_s_oacc_ell_inner_vect_sv.F90 index ba42af12..5fc672d0 100644 --- a/openacc/impl/psb_s_oacc_ell_inner_vect_sv.F90 +++ b/openacc/impl/psb_s_oacc_ell_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_s_ell_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_s_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_s_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_s_oacc_ell_mv_from_coo.F90 b/openacc/impl/psb_s_oacc_ell_mv_from_coo.F90 index ba82049f..736d4253 100644 --- a/openacc/impl/psb_s_oacc_ell_mv_from_coo.F90 +++ b/openacc/impl/psb_s_oacc_ell_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_s_ell_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_s_oacc_ell_mv_from_fmt.F90 b/openacc/impl/psb_s_oacc_ell_mv_from_fmt.F90 index df789664..d8d13aa2 100644 --- a/openacc/impl/psb_s_oacc_ell_mv_from_fmt.F90 +++ b/openacc/impl/psb_s_oacc_ell_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_s_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_s_ell_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_s_oacc_ell_reallocate_nz.F90 b/openacc/impl/psb_s_oacc_ell_reallocate_nz.F90 index 373c2b67..34036cdb 100644 --- a/openacc/impl/psb_s_oacc_ell_reallocate_nz.F90 +++ b/openacc/impl/psb_s_oacc_ell_reallocate_nz.F90 @@ -14,8 +14,8 @@ contains info = psb_success_ call a%psb_s_ell_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_s_oacc_hll_allocate_mnnz.F90 b/openacc/impl/psb_s_oacc_hll_allocate_mnnz.F90 index c67ea621..1db3e55d 100644 --- a/openacc/impl/psb_s_oacc_hll_allocate_mnnz.F90 +++ b/openacc/impl/psb_s_oacc_hll_allocate_mnnz.F90 @@ -22,25 +22,8 @@ contains end if call a%psb_s_hll_sparse_mat%allocate(m, n, nz_) - - hksz = a%hksz - nhacks = (m + hksz - 1) / hksz - - if (.not.allocated(a%val)) then - allocate(a%val(nz_ * m)) - allocate(a%ja(nz_ * m)) - allocate(a%irn(m)) - allocate(a%idiag(m)) - allocate(a%hkoffs(nhacks)) - end if - - a%val = szero - a%ja = -1 - a%irn = 0 - a%idiag = 0 - a%hkoffs = 0 - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_s_oacc_hll_cp_from_coo.F90 b/openacc/impl/psb_s_oacc_hll_cp_from_coo.F90 index dfba3c6c..ca4afeb7 100644 --- a/openacc/impl/psb_s_oacc_hll_cp_from_coo.F90 +++ b/openacc/impl/psb_s_oacc_hll_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_s_hll_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_s_oacc_hll_cp_from_fmt.F90 b/openacc/impl/psb_s_oacc_hll_cp_from_fmt.F90 index 849e03b7..47a41b8d 100644 --- a/openacc/impl/psb_s_oacc_hll_cp_from_fmt.F90 +++ b/openacc/impl/psb_s_oacc_hll_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_s_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_s_hll_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_s_oacc_hll_inner_vect_sv.F90 b/openacc/impl/psb_s_oacc_hll_inner_vect_sv.F90 index 900b8982..ea81574b 100644 --- a/openacc/impl/psb_s_oacc_hll_inner_vect_sv.F90 +++ b/openacc/impl/psb_s_oacc_hll_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_s_hll_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_s_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_s_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_s_oacc_hll_mv_from_coo.F90 b/openacc/impl/psb_s_oacc_hll_mv_from_coo.F90 index c22818fa..c26c5018 100644 --- a/openacc/impl/psb_s_oacc_hll_mv_from_coo.F90 +++ b/openacc/impl/psb_s_oacc_hll_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_s_hll_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_s_oacc_hll_mv_from_fmt.F90 b/openacc/impl/psb_s_oacc_hll_mv_from_fmt.F90 index 992b1c7b..dd04bbab 100644 --- a/openacc/impl/psb_s_oacc_hll_mv_from_fmt.F90 +++ b/openacc/impl/psb_s_oacc_hll_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_s_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_s_hll_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_s_oacc_hll_reallocate_nz.F90 b/openacc/impl/psb_s_oacc_hll_reallocate_nz.F90 index 7768d1ed..242ffe0d 100644 --- a/openacc/impl/psb_s_oacc_hll_reallocate_nz.F90 +++ b/openacc/impl/psb_s_oacc_hll_reallocate_nz.F90 @@ -15,8 +15,8 @@ contains info = psb_success_ call a%psb_s_hll_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_s_oacc_mlt_v.f90 b/openacc/impl/psb_s_oacc_mlt_v.f90 index 61a1d152..11dcac6c 100644 --- a/openacc/impl/psb_s_oacc_mlt_v.f90 +++ b/openacc/impl/psb_s_oacc_mlt_v.f90 @@ -1,6 +1,6 @@ subroutine psb_s_oacc_mlt_v(x, y, info) - use psb_s_oacc_vect_mod, psb_protect_name => psb_s_oacc_mlt_v + use psb_s_oacc_vect_mod, psb_protect_name => psb_s_oacc_mlt_v implicit none class(psb_s_base_vect_type), intent(inout) :: x @@ -13,7 +13,7 @@ subroutine psb_s_oacc_mlt_v(x, y, info) n = min(x%get_nrows(), y%get_nrows()) info = 0 n = min(x%get_nrows(), y%get_nrows()) - select type(xx => x) + select type(xx => x) class is (psb_s_vect_oacc) if (y%is_host()) call y%sync() if (xx%is_host()) call xx%sync() diff --git a/openacc/impl/psb_s_oacc_mlt_v_2.f90 b/openacc/impl/psb_s_oacc_mlt_v_2.f90 index bcaebfbe..2ce7fe53 100644 --- a/openacc/impl/psb_s_oacc_mlt_v_2.f90 +++ b/openacc/impl/psb_s_oacc_mlt_v_2.f90 @@ -1,5 +1,5 @@ subroutine psb_s_oacc_mlt_v_2(alpha, x, y, beta, z, info, conjgx, conjgy) - use psb_s_oacc_vect_mod, psb_protect_name => psb_s_oacc_mlt_v_2 + use psb_s_oacc_vect_mod, psb_protect_name => psb_s_oacc_mlt_v_2 use psb_string_mod implicit none real(psb_spk_), intent(in) :: alpha, beta @@ -18,9 +18,9 @@ subroutine psb_s_oacc_mlt_v_2(alpha, x, y, beta, z, info, conjgx, conjgy) n = min(x%get_nrows(), y%get_nrows(), z%get_nrows()) info = 0 - select type(xx => x) + select type(xx => x) class is (psb_s_vect_oacc) - select type (yy => y) + select type (yy => y) class is (psb_s_vect_oacc) if (xx%is_host()) call xx%sync() if (yy%is_host()) call yy%sync() diff --git a/openacc/impl/psb_z_oacc_csr_allocate_mnnz.F90 b/openacc/impl/psb_z_oacc_csr_allocate_mnnz.F90 index fd19d6f9..b7ba4bad 100644 --- a/openacc/impl/psb_z_oacc_csr_allocate_mnnz.F90 +++ b/openacc/impl/psb_z_oacc_csr_allocate_mnnz.F90 @@ -15,14 +15,8 @@ contains info = psb_success_ call a%psb_z_csr_sparse_mat%allocate(m, n, nz) - - if (.not.allocated(a%val)) then - allocate(a%val(nz)) - allocate(a%ja(nz)) - allocate(a%irp(m+1)) - end if - - call a%set_dev() + call a%set_host() + call a%sync_dev_space() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_z_oacc_csr_cp_from_coo.F90 b/openacc/impl/psb_z_oacc_csr_cp_from_coo.F90 index 6c40d0d2..ef1b5b73 100644 --- a/openacc/impl/psb_z_oacc_csr_cp_from_coo.F90 +++ b/openacc/impl/psb_z_oacc_csr_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_z_csr_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_z_oacc_csr_cp_from_fmt.F90 b/openacc/impl/psb_z_oacc_csr_cp_from_fmt.F90 index 3025fde2..7c3470a2 100644 --- a/openacc/impl/psb_z_oacc_csr_cp_from_fmt.F90 +++ b/openacc/impl/psb_z_oacc_csr_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_z_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_z_csr_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_z_oacc_csr_inner_vect_sv.F90 b/openacc/impl/psb_z_oacc_csr_inner_vect_sv.F90 index 4975b276..25715903 100644 --- a/openacc/impl/psb_z_oacc_csr_inner_vect_sv.F90 +++ b/openacc/impl/psb_z_oacc_csr_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_z_csr_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_z_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_z_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_z_oacc_csr_mv_from_coo.F90 b/openacc/impl/psb_z_oacc_csr_mv_from_coo.F90 index 6dae625a..d2b9ee48 100644 --- a/openacc/impl/psb_z_oacc_csr_mv_from_coo.F90 +++ b/openacc/impl/psb_z_oacc_csr_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_z_csr_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_z_oacc_csr_mv_from_fmt.F90 b/openacc/impl/psb_z_oacc_csr_mv_from_fmt.F90 index 1d7dd723..af7fb1da 100644 --- a/openacc/impl/psb_z_oacc_csr_mv_from_fmt.F90 +++ b/openacc/impl/psb_z_oacc_csr_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_z_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_z_csr_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_z_oacc_csr_reallocate_nz.F90 b/openacc/impl/psb_z_oacc_csr_reallocate_nz.F90 index bdfb88d6..4cfea07c 100644 --- a/openacc/impl/psb_z_oacc_csr_reallocate_nz.F90 +++ b/openacc/impl/psb_z_oacc_csr_reallocate_nz.F90 @@ -14,8 +14,8 @@ contains info = psb_success_ call a%psb_z_csr_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_z_oacc_ell_allocate_mnnz.F90 b/openacc/impl/psb_z_oacc_ell_allocate_mnnz.F90 index 48a5e202..aa8a03cd 100644 --- a/openacc/impl/psb_z_oacc_ell_allocate_mnnz.F90 +++ b/openacc/impl/psb_z_oacc_ell_allocate_mnnz.F90 @@ -21,20 +21,8 @@ contains end if call a%psb_z_ell_sparse_mat%allocate(m, n, nz_) - - if (.not.allocated(a%val)) then - allocate(a%val(m, nz_)) - allocate(a%ja(m, nz_)) - allocate(a%irn(m)) - allocate(a%idiag(m)) - end if - - a%val = zzero - a%ja = -1 - a%irn = 0 - a%idiag = 0 - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_z_oacc_ell_cp_from_coo.F90 b/openacc/impl/psb_z_oacc_ell_cp_from_coo.F90 index 6dd60bd7..a3129ff6 100644 --- a/openacc/impl/psb_z_oacc_ell_cp_from_coo.F90 +++ b/openacc/impl/psb_z_oacc_ell_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_z_ell_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_z_oacc_ell_cp_from_fmt.F90 b/openacc/impl/psb_z_oacc_ell_cp_from_fmt.F90 index 60d94bb2..f9a52d62 100644 --- a/openacc/impl/psb_z_oacc_ell_cp_from_fmt.F90 +++ b/openacc/impl/psb_z_oacc_ell_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_z_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_z_ell_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_z_oacc_ell_inner_vect_sv.F90 b/openacc/impl/psb_z_oacc_ell_inner_vect_sv.F90 index f445a6b4..1cbe249c 100644 --- a/openacc/impl/psb_z_oacc_ell_inner_vect_sv.F90 +++ b/openacc/impl/psb_z_oacc_ell_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_z_ell_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_z_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_z_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_z_oacc_ell_mv_from_coo.F90 b/openacc/impl/psb_z_oacc_ell_mv_from_coo.F90 index db70b944..9abb1a74 100644 --- a/openacc/impl/psb_z_oacc_ell_mv_from_coo.F90 +++ b/openacc/impl/psb_z_oacc_ell_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_z_ell_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_z_oacc_ell_mv_from_fmt.F90 b/openacc/impl/psb_z_oacc_ell_mv_from_fmt.F90 index f99b3817..eb49b21a 100644 --- a/openacc/impl/psb_z_oacc_ell_mv_from_fmt.F90 +++ b/openacc/impl/psb_z_oacc_ell_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_z_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_z_ell_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_z_oacc_ell_reallocate_nz.F90 b/openacc/impl/psb_z_oacc_ell_reallocate_nz.F90 index 8fd3ad77..c7c88c65 100644 --- a/openacc/impl/psb_z_oacc_ell_reallocate_nz.F90 +++ b/openacc/impl/psb_z_oacc_ell_reallocate_nz.F90 @@ -14,8 +14,8 @@ contains info = psb_success_ call a%psb_z_ell_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_z_oacc_hll_allocate_mnnz.F90 b/openacc/impl/psb_z_oacc_hll_allocate_mnnz.F90 index c398d259..fb84dfb7 100644 --- a/openacc/impl/psb_z_oacc_hll_allocate_mnnz.F90 +++ b/openacc/impl/psb_z_oacc_hll_allocate_mnnz.F90 @@ -22,25 +22,8 @@ contains end if call a%psb_z_hll_sparse_mat%allocate(m, n, nz_) - - hksz = a%hksz - nhacks = (m + hksz - 1) / hksz - - if (.not.allocated(a%val)) then - allocate(a%val(nz_ * m)) - allocate(a%ja(nz_ * m)) - allocate(a%irn(m)) - allocate(a%idiag(m)) - allocate(a%hkoffs(nhacks)) - end if - - a%val = zzero - a%ja = -1 - a%irn = 0 - a%idiag = 0 - a%hkoffs = 0 - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_z_oacc_hll_cp_from_coo.F90 b/openacc/impl/psb_z_oacc_hll_cp_from_coo.F90 index e018e762..9fb903ca 100644 --- a/openacc/impl/psb_z_oacc_hll_cp_from_coo.F90 +++ b/openacc/impl/psb_z_oacc_hll_cp_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_z_hll_sparse_mat%cp_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_z_oacc_hll_cp_from_fmt.F90 b/openacc/impl/psb_z_oacc_hll_cp_from_fmt.F90 index 7b18b255..3a77865d 100644 --- a/openacc/impl/psb_z_oacc_hll_cp_from_fmt.F90 +++ b/openacc/impl/psb_z_oacc_hll_cp_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_z_coo_sparse_mat) call a%cp_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_z_hll_sparse_mat%cp_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_z_oacc_hll_inner_vect_sv.F90 b/openacc/impl/psb_z_oacc_hll_inner_vect_sv.F90 index 1d068542..a5bd54ad 100644 --- a/openacc/impl/psb_z_oacc_hll_inner_vect_sv.F90 +++ b/openacc/impl/psb_z_oacc_hll_inner_vect_sv.F90 @@ -40,9 +40,9 @@ contains call a%psb_z_hll_sparse_mat%inner_spsm(alpha, x, beta, y, info, trans) call y%set_host() else - select type (xx => x) + select type (xx => x) type is (psb_z_vect_oacc) - select type(yy => y) + select type(yy => y) type is (psb_z_vect_oacc) if (xx%is_host()) call xx%sync() if (beta /= dzero) then diff --git a/openacc/impl/psb_z_oacc_hll_mv_from_coo.F90 b/openacc/impl/psb_z_oacc_hll_mv_from_coo.F90 index 267f13f3..46d4d6bd 100644 --- a/openacc/impl/psb_z_oacc_hll_mv_from_coo.F90 +++ b/openacc/impl/psb_z_oacc_hll_mv_from_coo.F90 @@ -10,10 +10,10 @@ contains info = psb_success_ - call a%free_space() + call a%free_dev_space() call a%psb_z_hll_sparse_mat%mv_from_coo(b, info) if (info /= 0) goto 9999 - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() diff --git a/openacc/impl/psb_z_oacc_hll_mv_from_fmt.F90 b/openacc/impl/psb_z_oacc_hll_mv_from_fmt.F90 index 151dc6ce..45e9846a 100644 --- a/openacc/impl/psb_z_oacc_hll_mv_from_fmt.F90 +++ b/openacc/impl/psb_z_oacc_hll_mv_from_fmt.F90 @@ -14,10 +14,10 @@ contains type is (psb_z_coo_sparse_mat) call a%mv_from_coo(b, info) class default - call a%free_space() + call a%free_dev_space() call a%psb_z_hll_sparse_mat%mv_from_fmt(b, info) if (info /= 0) return - call a%sync_space() + call a%sync_dev_space() call a%set_host() call a%sync() end select diff --git a/openacc/impl/psb_z_oacc_hll_reallocate_nz.F90 b/openacc/impl/psb_z_oacc_hll_reallocate_nz.F90 index 5b49efe5..7d9589cb 100644 --- a/openacc/impl/psb_z_oacc_hll_reallocate_nz.F90 +++ b/openacc/impl/psb_z_oacc_hll_reallocate_nz.F90 @@ -15,8 +15,8 @@ contains info = psb_success_ call a%psb_z_hll_sparse_mat%reallocate(nz) - - call a%set_dev() + call a%sync_dev_space() + call a%set_host() if (info /= 0) goto 9999 call psb_erractionrestore(err_act) diff --git a/openacc/impl/psb_z_oacc_mlt_v.f90 b/openacc/impl/psb_z_oacc_mlt_v.f90 index 4bc582d2..3e8f6030 100644 --- a/openacc/impl/psb_z_oacc_mlt_v.f90 +++ b/openacc/impl/psb_z_oacc_mlt_v.f90 @@ -1,6 +1,6 @@ subroutine psb_z_oacc_mlt_v(x, y, info) - use psb_z_oacc_vect_mod, psb_protect_name => psb_z_oacc_mlt_v + use psb_z_oacc_vect_mod, psb_protect_name => psb_z_oacc_mlt_v implicit none class(psb_z_base_vect_type), intent(inout) :: x @@ -13,7 +13,7 @@ subroutine psb_z_oacc_mlt_v(x, y, info) n = min(x%get_nrows(), y%get_nrows()) info = 0 n = min(x%get_nrows(), y%get_nrows()) - select type(xx => x) + select type(xx => x) class is (psb_z_vect_oacc) if (y%is_host()) call y%sync() if (xx%is_host()) call xx%sync() diff --git a/openacc/impl/psb_z_oacc_mlt_v_2.f90 b/openacc/impl/psb_z_oacc_mlt_v_2.f90 index 337a0a96..f69d863c 100644 --- a/openacc/impl/psb_z_oacc_mlt_v_2.f90 +++ b/openacc/impl/psb_z_oacc_mlt_v_2.f90 @@ -1,5 +1,5 @@ subroutine psb_z_oacc_mlt_v_2(alpha, x, y, beta, z, info, conjgx, conjgy) - use psb_z_oacc_vect_mod, psb_protect_name => psb_z_oacc_mlt_v_2 + use psb_z_oacc_vect_mod, psb_protect_name => psb_z_oacc_mlt_v_2 use psb_string_mod implicit none complex(psb_dpk_), intent(in) :: alpha, beta @@ -18,9 +18,9 @@ subroutine psb_z_oacc_mlt_v_2(alpha, x, y, beta, z, info, conjgx, conjgy) n = min(x%get_nrows(), y%get_nrows(), z%get_nrows()) info = 0 - select type(xx => x) + select type(xx => x) class is (psb_z_vect_oacc) - select type (yy => y) + select type (yy => y) class is (psb_z_vect_oacc) if (xx%is_host()) call xx%sync() if (yy%is_host()) call yy%sync() diff --git a/openacc/psb_c_oacc_csr_mat_mod.F90 b/openacc/psb_c_oacc_csr_mat_mod.F90 index 07734762..a1f6e2c3 100644 --- a/openacc/psb_c_oacc_csr_mat_mod.F90 +++ b/openacc/psb_c_oacc_csr_mat_mod.F90 @@ -13,32 +13,32 @@ module psb_c_oacc_csr_mat_mod type, extends(psb_c_csr_sparse_mat) :: psb_c_oacc_csr_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => c_oacc_csr_get_fmt - procedure, pass(a) :: sizeof => c_oacc_csr_sizeof - procedure, pass(a) :: vect_mv => psb_c_oacc_csr_vect_mv - procedure, pass(a) :: in_vect_sv => psb_c_oacc_csr_inner_vect_sv - procedure, pass(a) :: csmm => psb_c_oacc_csr_csmm - procedure, pass(a) :: csmv => psb_c_oacc_csr_csmv - procedure, pass(a) :: scals => psb_c_oacc_csr_scals - procedure, pass(a) :: scalv => psb_c_oacc_csr_scal - procedure, pass(a) :: reallocate_nz => psb_c_oacc_csr_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_c_oacc_csr_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_c_oacc_csr_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_c_oacc_csr_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_c_oacc_csr_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_c_oacc_csr_mv_from_fmt - procedure, pass(a) :: free => c_oacc_csr_free - procedure, pass(a) :: mold => psb_c_oacc_csr_mold - procedure, pass(a) :: all => c_oacc_csr_all - procedure, pass(a) :: is_host => c_oacc_csr_is_host - procedure, pass(a) :: is_sync => c_oacc_csr_is_sync - procedure, pass(a) :: is_dev => c_oacc_csr_is_dev - procedure, pass(a) :: set_host => c_oacc_csr_set_host - procedure, pass(a) :: set_sync => c_oacc_csr_set_sync - procedure, pass(a) :: set_dev => c_oacc_csr_set_dev - procedure, pass(a) :: free_space => c_oacc_csr_free_space - procedure, pass(a) :: sync_space => c_oacc_csr_sync_space - procedure, pass(a) :: sync => c_oacc_csr_sync + procedure, nopass :: get_fmt => c_oacc_csr_get_fmt + procedure, pass(a) :: sizeof => c_oacc_csr_sizeof + procedure, pass(a) :: vect_mv => psb_c_oacc_csr_vect_mv + procedure, pass(a) :: in_vect_sv => psb_c_oacc_csr_inner_vect_sv + procedure, pass(a) :: csmm => psb_c_oacc_csr_csmm + procedure, pass(a) :: csmv => psb_c_oacc_csr_csmv + procedure, pass(a) :: scals => psb_c_oacc_csr_scals + procedure, pass(a) :: scalv => psb_c_oacc_csr_scal + procedure, pass(a) :: reallocate_nz => psb_c_oacc_csr_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_c_oacc_csr_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_c_oacc_csr_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_c_oacc_csr_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_c_oacc_csr_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_c_oacc_csr_mv_from_fmt + procedure, pass(a) :: free => c_oacc_csr_free + procedure, pass(a) :: mold => psb_c_oacc_csr_mold + procedure, pass(a) :: all => c_oacc_csr_all + procedure, pass(a) :: is_host => c_oacc_csr_is_host + procedure, pass(a) :: is_sync => c_oacc_csr_is_sync + procedure, pass(a) :: is_dev => c_oacc_csr_is_dev + procedure, pass(a) :: set_host => c_oacc_csr_set_host + procedure, pass(a) :: set_sync => c_oacc_csr_set_sync + procedure, pass(a) :: set_dev => c_oacc_csr_set_dev + procedure, pass(a) :: free_dev_space => c_oacc_csr_free_dev_space + procedure, pass(a) :: sync_dev_space => c_oacc_csr_sync_dev_space + procedure, pass(a) :: sync => c_oacc_csr_sync end type psb_c_oacc_csr_sparse_mat interface @@ -156,7 +156,7 @@ module psb_c_oacc_csr_mat_mod contains - subroutine c_oacc_csr_free_space(a) + subroutine c_oacc_csr_free_dev_space(a) use psb_base_mod implicit none class(psb_c_oacc_csr_sparse_mat), intent(inout) :: a @@ -167,7 +167,7 @@ contains if (allocated(a%irp)) call acc_delete_finalize(a%irp) return - end subroutine c_oacc_csr_free_space + end subroutine c_oacc_csr_free_dev_space subroutine c_oacc_csr_free(a) use psb_base_mod @@ -175,7 +175,7 @@ contains class(psb_c_oacc_csr_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_c_csr_sparse_mat%free() return @@ -218,7 +218,7 @@ contains allocate(a%ja(nz),stat=info) allocate(a%irp(m+1),stat=info) if (info == 0) call a%set_host() - if (info == 0) call a%sync_space() + if (info == 0) call a%sync_dev_space() end subroutine c_oacc_csr_all function c_oacc_csr_is_host(a) result(res) @@ -266,13 +266,13 @@ contains a%devstate = is_dev end subroutine c_oacc_csr_set_dev - subroutine c_oacc_csr_sync_space(a) + subroutine c_oacc_csr_sync_dev_space(a) implicit none class(psb_c_oacc_csr_sparse_mat), intent(inout) :: a if (allocated(a%val)) call acc_create(a%val) if (allocated(a%ja)) call acc_create(a%ja) if (allocated(a%irp)) call acc_create(a%irp) - end subroutine c_oacc_csr_sync_space + end subroutine c_oacc_csr_sync_dev_space subroutine c_oacc_csr_sync(a) implicit none @@ -280,7 +280,7 @@ contains class(psb_c_oacc_csr_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_c_oacc_ell_mat_mod.F90 b/openacc/psb_c_oacc_ell_mat_mod.F90 index d23d4d0a..996d4628 100644 --- a/openacc/psb_c_oacc_ell_mat_mod.F90 +++ b/openacc/psb_c_oacc_ell_mat_mod.F90 @@ -12,31 +12,31 @@ module psb_c_oacc_ell_mat_mod type, extends(psb_c_ell_sparse_mat) :: psb_c_oacc_ell_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => c_oacc_ell_get_fmt - procedure, pass(a) :: sizeof => c_oacc_ell_sizeof - procedure, pass(a) :: is_host => c_oacc_ell_is_host - procedure, pass(a) :: is_sync => c_oacc_ell_is_sync - procedure, pass(a) :: is_dev => c_oacc_ell_is_dev - procedure, pass(a) :: set_host => c_oacc_ell_set_host - procedure, pass(a) :: set_sync => c_oacc_ell_set_sync - procedure, pass(a) :: set_dev => c_oacc_ell_set_dev - procedure, pass(a) :: sync_space => c_oacc_ell_sync_space - procedure, pass(a) :: sync => c_oacc_ell_sync - procedure, pass(a) :: free_space => c_oacc_ell_free_space - procedure, pass(a) :: free => c_oacc_ell_free - procedure, pass(a) :: vect_mv => psb_c_oacc_ell_vect_mv - procedure, pass(a) :: in_vect_sv => psb_c_oacc_ell_inner_vect_sv - procedure, pass(a) :: csmm => psb_c_oacc_ell_csmm - procedure, pass(a) :: csmv => psb_c_oacc_ell_csmv - procedure, pass(a) :: scals => psb_c_oacc_ell_scals - procedure, pass(a) :: scalv => psb_c_oacc_ell_scal - procedure, pass(a) :: reallocate_nz => psb_c_oacc_ell_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_c_oacc_ell_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_c_oacc_ell_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_c_oacc_ell_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_c_oacc_ell_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_c_oacc_ell_mv_from_fmt - procedure, pass(a) :: mold => psb_c_oacc_ell_mold + procedure, nopass :: get_fmt => c_oacc_ell_get_fmt + procedure, pass(a) :: sizeof => c_oacc_ell_sizeof + procedure, pass(a) :: is_host => c_oacc_ell_is_host + procedure, pass(a) :: is_sync => c_oacc_ell_is_sync + procedure, pass(a) :: is_dev => c_oacc_ell_is_dev + procedure, pass(a) :: set_host => c_oacc_ell_set_host + procedure, pass(a) :: set_sync => c_oacc_ell_set_sync + procedure, pass(a) :: set_dev => c_oacc_ell_set_dev + procedure, pass(a) :: sync_dev_space => c_oacc_ell_sync_dev_space + procedure, pass(a) :: sync => c_oacc_ell_sync + procedure, pass(a) :: free_dev_space => c_oacc_ell_free_dev_space + procedure, pass(a) :: free => c_oacc_ell_free + procedure, pass(a) :: vect_mv => psb_c_oacc_ell_vect_mv + procedure, pass(a) :: in_vect_sv => psb_c_oacc_ell_inner_vect_sv + procedure, pass(a) :: csmm => psb_c_oacc_ell_csmm + procedure, pass(a) :: csmv => psb_c_oacc_ell_csmv + procedure, pass(a) :: scals => psb_c_oacc_ell_scals + procedure, pass(a) :: scalv => psb_c_oacc_ell_scal + procedure, pass(a) :: reallocate_nz => psb_c_oacc_ell_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_c_oacc_ell_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_c_oacc_ell_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_c_oacc_ell_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_c_oacc_ell_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_c_oacc_ell_mv_from_fmt + procedure, pass(a) :: mold => psb_c_oacc_ell_mold end type psb_c_oacc_ell_sparse_mat @@ -154,7 +154,7 @@ module psb_c_oacc_ell_mat_mod contains - subroutine c_oacc_ell_free_space(a) + subroutine c_oacc_ell_free_dev_space(a) use psb_base_mod implicit none class(psb_c_oacc_ell_sparse_mat), intent(inout) :: a @@ -166,7 +166,7 @@ contains if (allocated(a%idiag)) call acc_delete_finalize(a%idiag) return - end subroutine c_oacc_ell_free_space + end subroutine c_oacc_ell_free_dev_space subroutine c_oacc_ell_free(a) use psb_base_mod @@ -174,7 +174,7 @@ contains class(psb_c_oacc_ell_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_c_ell_sparse_mat%free() return @@ -195,7 +195,7 @@ contains end function c_oacc_ell_sizeof - subroutine c_oacc_ell_sync_space(a) + subroutine c_oacc_ell_sync_dev_space(a) implicit none class(psb_c_oacc_ell_sparse_mat), intent(inout) :: a @@ -203,7 +203,7 @@ contains if (allocated(a%ja)) call acc_create(a%ja) if (allocated(a%irn)) call acc_create(a%irn) if (allocated(a%idiag)) call acc_create(a%idiag) - end subroutine c_oacc_ell_sync_space + end subroutine c_oacc_ell_sync_dev_space function c_oacc_ell_is_host(a) result(res) implicit none @@ -262,7 +262,7 @@ contains class(psb_c_oacc_ell_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_c_oacc_hll_mat_mod.F90 b/openacc/psb_c_oacc_hll_mat_mod.F90 index 2d2095bf..ebcbf29e 100644 --- a/openacc/psb_c_oacc_hll_mat_mod.F90 +++ b/openacc/psb_c_oacc_hll_mat_mod.F90 @@ -12,31 +12,31 @@ module psb_c_oacc_hll_mat_mod type, extends(psb_c_hll_sparse_mat) :: psb_c_oacc_hll_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => c_oacc_hll_get_fmt - procedure, pass(a) :: sizeof => c_oacc_hll_sizeof - procedure, pass(a) :: is_host => c_oacc_hll_is_host - procedure, pass(a) :: is_sync => c_oacc_hll_is_sync - procedure, pass(a) :: is_dev => c_oacc_hll_is_dev - procedure, pass(a) :: set_host => c_oacc_hll_set_host - procedure, pass(a) :: set_sync => c_oacc_hll_set_sync - procedure, pass(a) :: set_dev => c_oacc_hll_set_dev - procedure, pass(a) :: sync_space => c_oacc_hll_sync_space - procedure, pass(a) :: sync => c_oacc_hll_sync - procedure, pass(a) :: free_space => c_oacc_hll_free_space - procedure, pass(a) :: free => c_oacc_hll_free - procedure, pass(a) :: vect_mv => psb_c_oacc_hll_vect_mv - procedure, pass(a) :: in_vect_sv => psb_c_oacc_hll_inner_vect_sv - procedure, pass(a) :: csmm => psb_c_oacc_hll_csmm - procedure, pass(a) :: csmv => psb_c_oacc_hll_csmv - procedure, pass(a) :: scals => psb_c_oacc_hll_scals - procedure, pass(a) :: scalv => psb_c_oacc_hll_scal - procedure, pass(a) :: reallocate_nz => psb_c_oacc_hll_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_c_oacc_hll_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_c_oacc_hll_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_c_oacc_hll_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_c_oacc_hll_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_c_oacc_hll_mv_from_fmt - procedure, pass(a) :: mold => psb_c_oacc_hll_mold + procedure, nopass :: get_fmt => c_oacc_hll_get_fmt + procedure, pass(a) :: sizeof => c_oacc_hll_sizeof + procedure, pass(a) :: is_host => c_oacc_hll_is_host + procedure, pass(a) :: is_sync => c_oacc_hll_is_sync + procedure, pass(a) :: is_dev => c_oacc_hll_is_dev + procedure, pass(a) :: set_host => c_oacc_hll_set_host + procedure, pass(a) :: set_sync => c_oacc_hll_set_sync + procedure, pass(a) :: set_dev => c_oacc_hll_set_dev + procedure, pass(a) :: sync_dev_space => c_oacc_hll_sync_dev_space + procedure, pass(a) :: sync => c_oacc_hll_sync + procedure, pass(a) :: free_dev_space => c_oacc_hll_free_dev_space + procedure, pass(a) :: free => c_oacc_hll_free + procedure, pass(a) :: vect_mv => psb_c_oacc_hll_vect_mv + procedure, pass(a) :: in_vect_sv => psb_c_oacc_hll_inner_vect_sv + procedure, pass(a) :: csmm => psb_c_oacc_hll_csmm + procedure, pass(a) :: csmv => psb_c_oacc_hll_csmv + procedure, pass(a) :: scals => psb_c_oacc_hll_scals + procedure, pass(a) :: scalv => psb_c_oacc_hll_scal + procedure, pass(a) :: reallocate_nz => psb_c_oacc_hll_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_c_oacc_hll_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_c_oacc_hll_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_c_oacc_hll_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_c_oacc_hll_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_c_oacc_hll_mv_from_fmt + procedure, pass(a) :: mold => psb_c_oacc_hll_mold end type psb_c_oacc_hll_sparse_mat @@ -154,7 +154,7 @@ module psb_c_oacc_hll_mat_mod contains - subroutine c_oacc_hll_free_space(a) + subroutine c_oacc_hll_free_dev_space(a) use psb_base_mod implicit none class(psb_c_oacc_hll_sparse_mat), intent(inout) :: a @@ -167,7 +167,7 @@ contains if (allocated(a%hkoffs)) call acc_delete_finalize(a%hkoffs) return - end subroutine c_oacc_hll_free_space + end subroutine c_oacc_hll_free_dev_space subroutine c_oacc_hll_free(a) use psb_base_mod @@ -175,7 +175,7 @@ contains class(psb_c_oacc_hll_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_c_hll_sparse_mat%free() return @@ -249,7 +249,7 @@ contains res = 'HLLOA' end function c_oacc_hll_get_fmt - subroutine c_oacc_hll_sync_space(a) + subroutine c_oacc_hll_sync_dev_space(a) implicit none class(psb_c_oacc_hll_sparse_mat), intent(inout) :: a @@ -258,7 +258,7 @@ contains if (allocated(a%irn)) call acc_create(a%irn) if (allocated(a%idiag)) call acc_create(a%idiag) if (allocated(a%hkoffs)) call acc_create(a%hkoffs) - end subroutine c_oacc_hll_sync_space + end subroutine c_oacc_hll_sync_dev_space subroutine c_oacc_hll_sync(a) @@ -267,7 +267,7 @@ contains class(psb_c_oacc_hll_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_c_oacc_vect_mod.F90 b/openacc/psb_c_oacc_vect_mod.F90 index 79ff0ca3..95c45646 100644 --- a/openacc/psb_c_oacc_vect_mod.F90 +++ b/openacc/psb_c_oacc_vect_mod.F90 @@ -15,50 +15,50 @@ module psb_c_oacc_vect_mod integer :: state = is_host contains - procedure, pass(x) :: get_nrows => c_oacc_get_nrows - procedure, nopass :: get_fmt => c_oacc_get_fmt - - procedure, pass(x) :: all => c_oacc_vect_all - procedure, pass(x) :: zero => c_oacc_zero - procedure, pass(x) :: asb_m => c_oacc_asb_m - procedure, pass(x) :: sync => c_oacc_sync - procedure, pass(x) :: sync_space => c_oacc_sync_space - procedure, pass(x) :: bld_x => c_oacc_bld_x - procedure, pass(x) :: bld_mn => c_oacc_bld_mn - procedure, pass(x) :: free => c_oacc_vect_free - procedure, pass(x) :: ins_a => c_oacc_ins_a - procedure, pass(x) :: ins_v => c_oacc_ins_v - procedure, pass(x) :: is_host => c_oacc_is_host - procedure, pass(x) :: is_dev => c_oacc_is_dev - procedure, pass(x) :: is_sync => c_oacc_is_sync - procedure, pass(x) :: set_host => c_oacc_set_host - procedure, pass(x) :: set_dev => c_oacc_set_dev - procedure, pass(x) :: set_sync => c_oacc_set_sync - procedure, pass(x) :: set_scal => c_oacc_set_scal - - procedure, pass(x) :: gthzv_x => c_oacc_gthzv_x - procedure, pass(x) :: gthzbuf_x => c_oacc_gthzbuf - procedure, pass(y) :: sctb => c_oacc_sctb - procedure, pass(y) :: sctb_x => c_oacc_sctb_x - procedure, pass(y) :: sctb_buf => c_oacc_sctb_buf - - procedure, pass(x) :: get_size => c_oacc_get_size - - procedure, pass(x) :: dot_v => c_oacc_vect_dot - procedure, pass(x) :: dot_a => c_oacc_dot_a - procedure, pass(y) :: axpby_v => c_oacc_axpby_v - procedure, pass(y) :: axpby_a => c_oacc_axpby_a - procedure, pass(z) :: upd_xyz => c_oacc_upd_xyz - procedure, pass(y) :: mlt_a => c_oacc_mlt_a - procedure, pass(z) :: mlt_a_2 => c_oacc_mlt_a_2 - procedure, pass(y) :: mlt_v => psb_c_oacc_mlt_v - procedure, pass(z) :: mlt_v_2 => psb_c_oacc_mlt_v_2 - procedure, pass(x) :: scal => c_oacc_scal - procedure, pass(x) :: nrm2 => c_oacc_nrm2 - procedure, pass(x) :: amax => c_oacc_amax - procedure, pass(x) :: asum => c_oacc_asum - procedure, pass(x) :: absval1 => c_oacc_absval1 - procedure, pass(x) :: absval2 => c_oacc_absval2 + procedure, pass(x) :: get_nrows => c_oacc_get_nrows + procedure, nopass :: get_fmt => c_oacc_get_fmt + + procedure, pass(x) :: all => c_oacc_vect_all + procedure, pass(x) :: zero => c_oacc_zero + procedure, pass(x) :: asb_m => c_oacc_asb_m + procedure, pass(x) :: sync => c_oacc_sync + procedure, pass(x) :: sync_dev_space => c_oacc_sync_dev_space + procedure, pass(x) :: bld_x => c_oacc_bld_x + procedure, pass(x) :: bld_mn => c_oacc_bld_mn + procedure, pass(x) :: free => c_oacc_vect_free + procedure, pass(x) :: ins_a => c_oacc_ins_a + procedure, pass(x) :: ins_v => c_oacc_ins_v + procedure, pass(x) :: is_host => c_oacc_is_host + procedure, pass(x) :: is_dev => c_oacc_is_dev + procedure, pass(x) :: is_sync => c_oacc_is_sync + procedure, pass(x) :: set_host => c_oacc_set_host + procedure, pass(x) :: set_dev => c_oacc_set_dev + procedure, pass(x) :: set_sync => c_oacc_set_sync + procedure, pass(x) :: set_scal => c_oacc_set_scal + + procedure, pass(x) :: gthzv_x => c_oacc_gthzv_x + procedure, pass(x) :: gthzbuf_x => c_oacc_gthzbuf + procedure, pass(y) :: sctb => c_oacc_sctb + procedure, pass(y) :: sctb_x => c_oacc_sctb_x + procedure, pass(y) :: sctb_buf => c_oacc_sctb_buf + + procedure, pass(x) :: get_size => c_oacc_get_size + + procedure, pass(x) :: dot_v => c_oacc_vect_dot + procedure, pass(x) :: dot_a => c_oacc_dot_a + procedure, pass(y) :: axpby_v => c_oacc_axpby_v + procedure, pass(y) :: axpby_a => c_oacc_axpby_a + procedure, pass(z) :: upd_xyz => c_oacc_upd_xyz + procedure, pass(y) :: mlt_a => c_oacc_mlt_a + procedure, pass(z) :: mlt_a_2 => c_oacc_mlt_a_2 + procedure, pass(y) :: mlt_v => psb_c_oacc_mlt_v + procedure, pass(z) :: mlt_v_2 => psb_c_oacc_mlt_v_2 + procedure, pass(x) :: scal => c_oacc_scal + procedure, pass(x) :: nrm2 => c_oacc_nrm2 + procedure, pass(x) :: amax => c_oacc_amax + procedure, pass(x) :: asum => c_oacc_asum + procedure, pass(x) :: absval1 => c_oacc_absval1 + procedure, pass(x) :: absval2 => c_oacc_absval2 final :: c_oacc_final_vect_free end type psb_c_vect_oacc @@ -117,7 +117,7 @@ contains integer(psb_ipk_) :: i n = min(size(x%v), size(y%v)) - select type (yy => y) + select type (yy => y) class is (psb_c_vect_oacc) if (x%is_host()) call x%sync() if (yy%is_host()) call yy%sync() @@ -287,7 +287,7 @@ contains info = psb_success_ - select type(xx => x) + select type(xx => x) type is (psb_c_vect_oacc) if ((beta /= czero) .and. y%is_host()) call y%sync() if (xx%is_host()) call xx%sync() @@ -354,11 +354,11 @@ contains info = psb_success_ gpu_done = .false. - select type(xx => x) + select type(xx => x) class is (psb_c_vect_oacc) - select type(yy => y) + select type(yy => y) class is (psb_c_vect_oacc) - select type(zz => z) + select type(zz => z) class is (psb_c_vect_oacc) if ((beta /= czero) .and. yy%is_host()) call yy%sync() if ((delta /= czero) .and. zz%is_host()) call zz%sync() @@ -405,7 +405,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() if (y%is_host()) call y%sync() @@ -432,7 +432,7 @@ contains class(psb_c_vect_oacc) :: y integer(psb_ipk_) :: info, ni - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -485,7 +485,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -512,7 +512,7 @@ contains info = 0 - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -544,9 +544,9 @@ contains if (psb_errstatus_fatal()) return done_oacc = .false. - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) - select type(vval => val) + select type(vval => val) type is (psb_c_vect_oacc) if (vval%is_host()) call vval%sync() if (virl%is_host()) call virl%sync() @@ -561,11 +561,11 @@ contains end select if (.not.done_oacc) then - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) if (virl%is_dev()) call virl%sync() end select - select type(vval => val) + select type(vval => val) type is (psb_c_vect_oacc) if (vval%is_dev()) call vval%sync() end select @@ -611,7 +611,7 @@ contains call psb_errpush(info, 'c_oacc_bld_mn', i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine c_oacc_bld_mn @@ -633,7 +633,7 @@ contains end if x%v(:) = this(:) call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine c_oacc_bld_x @@ -719,7 +719,7 @@ contains res = czero !write(0,*) 'dot_v' - select type(yy => y) + select type(yy => y) type is (psb_c_base_vect_type) if (x%is_dev()) call x%sync() res = ddot(n, x%v, 1, yy%v, 1) @@ -762,11 +762,11 @@ contains end function c_oacc_dot_a - subroutine c_oacc_sync_space(x) + subroutine c_oacc_sync_dev_space(x) implicit none class(psb_c_vect_oacc), intent(inout) :: x if (allocated(x%v)) call acc_create(x%v) - end subroutine c_oacc_sync_space + end subroutine c_oacc_sync_dev_space subroutine c_oacc_sync(x) implicit none @@ -840,7 +840,7 @@ contains i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine c_oacc_vect_all subroutine c_oacc_final_vect_free(x) diff --git a/openacc/psb_d_oacc_csr_mat_mod.F90 b/openacc/psb_d_oacc_csr_mat_mod.F90 index 74031e89..a9d72eae 100644 --- a/openacc/psb_d_oacc_csr_mat_mod.F90 +++ b/openacc/psb_d_oacc_csr_mat_mod.F90 @@ -13,32 +13,32 @@ module psb_d_oacc_csr_mat_mod type, extends(psb_d_csr_sparse_mat) :: psb_d_oacc_csr_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => d_oacc_csr_get_fmt - procedure, pass(a) :: sizeof => d_oacc_csr_sizeof - procedure, pass(a) :: vect_mv => psb_d_oacc_csr_vect_mv - procedure, pass(a) :: in_vect_sv => psb_d_oacc_csr_inner_vect_sv - procedure, pass(a) :: csmm => psb_d_oacc_csr_csmm - procedure, pass(a) :: csmv => psb_d_oacc_csr_csmv - procedure, pass(a) :: scals => psb_d_oacc_csr_scals - procedure, pass(a) :: scalv => psb_d_oacc_csr_scal - procedure, pass(a) :: reallocate_nz => psb_d_oacc_csr_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_d_oacc_csr_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_d_oacc_csr_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_d_oacc_csr_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_d_oacc_csr_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_d_oacc_csr_mv_from_fmt - procedure, pass(a) :: free => d_oacc_csr_free - procedure, pass(a) :: mold => psb_d_oacc_csr_mold - procedure, pass(a) :: all => d_oacc_csr_all - procedure, pass(a) :: is_host => d_oacc_csr_is_host - procedure, pass(a) :: is_sync => d_oacc_csr_is_sync - procedure, pass(a) :: is_dev => d_oacc_csr_is_dev - procedure, pass(a) :: set_host => d_oacc_csr_set_host - procedure, pass(a) :: set_sync => d_oacc_csr_set_sync - procedure, pass(a) :: set_dev => d_oacc_csr_set_dev - procedure, pass(a) :: free_space => d_oacc_csr_free_space - procedure, pass(a) :: sync_space => d_oacc_csr_sync_space - procedure, pass(a) :: sync => d_oacc_csr_sync + procedure, nopass :: get_fmt => d_oacc_csr_get_fmt + procedure, pass(a) :: sizeof => d_oacc_csr_sizeof + procedure, pass(a) :: vect_mv => psb_d_oacc_csr_vect_mv + procedure, pass(a) :: in_vect_sv => psb_d_oacc_csr_inner_vect_sv + procedure, pass(a) :: csmm => psb_d_oacc_csr_csmm + procedure, pass(a) :: csmv => psb_d_oacc_csr_csmv + procedure, pass(a) :: scals => psb_d_oacc_csr_scals + procedure, pass(a) :: scalv => psb_d_oacc_csr_scal + procedure, pass(a) :: reallocate_nz => psb_d_oacc_csr_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_d_oacc_csr_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_d_oacc_csr_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_d_oacc_csr_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_d_oacc_csr_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_d_oacc_csr_mv_from_fmt + procedure, pass(a) :: free => d_oacc_csr_free + procedure, pass(a) :: mold => psb_d_oacc_csr_mold + procedure, pass(a) :: all => d_oacc_csr_all + procedure, pass(a) :: is_host => d_oacc_csr_is_host + procedure, pass(a) :: is_sync => d_oacc_csr_is_sync + procedure, pass(a) :: is_dev => d_oacc_csr_is_dev + procedure, pass(a) :: set_host => d_oacc_csr_set_host + procedure, pass(a) :: set_sync => d_oacc_csr_set_sync + procedure, pass(a) :: set_dev => d_oacc_csr_set_dev + procedure, pass(a) :: free_dev_space => d_oacc_csr_free_dev_space + procedure, pass(a) :: sync_dev_space => d_oacc_csr_sync_dev_space + procedure, pass(a) :: sync => d_oacc_csr_sync end type psb_d_oacc_csr_sparse_mat interface @@ -156,7 +156,7 @@ module psb_d_oacc_csr_mat_mod contains - subroutine d_oacc_csr_free_space(a) + subroutine d_oacc_csr_free_dev_space(a) use psb_base_mod implicit none class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a @@ -167,7 +167,7 @@ contains if (allocated(a%irp)) call acc_delete_finalize(a%irp) return - end subroutine d_oacc_csr_free_space + end subroutine d_oacc_csr_free_dev_space subroutine d_oacc_csr_free(a) use psb_base_mod @@ -175,7 +175,7 @@ contains class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_d_csr_sparse_mat%free() return @@ -218,7 +218,7 @@ contains allocate(a%ja(nz),stat=info) allocate(a%irp(m+1),stat=info) if (info == 0) call a%set_host() - if (info == 0) call a%sync_space() + if (info == 0) call a%sync_dev_space() end subroutine d_oacc_csr_all function d_oacc_csr_is_host(a) result(res) @@ -266,13 +266,13 @@ contains a%devstate = is_dev end subroutine d_oacc_csr_set_dev - subroutine d_oacc_csr_sync_space(a) + subroutine d_oacc_csr_sync_dev_space(a) implicit none class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a if (allocated(a%val)) call acc_create(a%val) if (allocated(a%ja)) call acc_create(a%ja) if (allocated(a%irp)) call acc_create(a%irp) - end subroutine d_oacc_csr_sync_space + end subroutine d_oacc_csr_sync_dev_space subroutine d_oacc_csr_sync(a) implicit none @@ -280,7 +280,7 @@ contains class(psb_d_oacc_csr_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_d_oacc_ell_mat_mod.F90 b/openacc/psb_d_oacc_ell_mat_mod.F90 index 45ffc92d..1409a1d6 100644 --- a/openacc/psb_d_oacc_ell_mat_mod.F90 +++ b/openacc/psb_d_oacc_ell_mat_mod.F90 @@ -12,31 +12,31 @@ module psb_d_oacc_ell_mat_mod type, extends(psb_d_ell_sparse_mat) :: psb_d_oacc_ell_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => d_oacc_ell_get_fmt - procedure, pass(a) :: sizeof => d_oacc_ell_sizeof - procedure, pass(a) :: is_host => d_oacc_ell_is_host - procedure, pass(a) :: is_sync => d_oacc_ell_is_sync - procedure, pass(a) :: is_dev => d_oacc_ell_is_dev - procedure, pass(a) :: set_host => d_oacc_ell_set_host - procedure, pass(a) :: set_sync => d_oacc_ell_set_sync - procedure, pass(a) :: set_dev => d_oacc_ell_set_dev - procedure, pass(a) :: sync_space => d_oacc_ell_sync_space - procedure, pass(a) :: sync => d_oacc_ell_sync - procedure, pass(a) :: free_space => d_oacc_ell_free_space - procedure, pass(a) :: free => d_oacc_ell_free - procedure, pass(a) :: vect_mv => psb_d_oacc_ell_vect_mv - procedure, pass(a) :: in_vect_sv => psb_d_oacc_ell_inner_vect_sv - procedure, pass(a) :: csmm => psb_d_oacc_ell_csmm - procedure, pass(a) :: csmv => psb_d_oacc_ell_csmv - procedure, pass(a) :: scals => psb_d_oacc_ell_scals - procedure, pass(a) :: scalv => psb_d_oacc_ell_scal - procedure, pass(a) :: reallocate_nz => psb_d_oacc_ell_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_d_oacc_ell_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_d_oacc_ell_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_d_oacc_ell_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_d_oacc_ell_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_d_oacc_ell_mv_from_fmt - procedure, pass(a) :: mold => psb_d_oacc_ell_mold + procedure, nopass :: get_fmt => d_oacc_ell_get_fmt + procedure, pass(a) :: sizeof => d_oacc_ell_sizeof + procedure, pass(a) :: is_host => d_oacc_ell_is_host + procedure, pass(a) :: is_sync => d_oacc_ell_is_sync + procedure, pass(a) :: is_dev => d_oacc_ell_is_dev + procedure, pass(a) :: set_host => d_oacc_ell_set_host + procedure, pass(a) :: set_sync => d_oacc_ell_set_sync + procedure, pass(a) :: set_dev => d_oacc_ell_set_dev + procedure, pass(a) :: sync_dev_space => d_oacc_ell_sync_dev_space + procedure, pass(a) :: sync => d_oacc_ell_sync + procedure, pass(a) :: free_dev_space => d_oacc_ell_free_dev_space + procedure, pass(a) :: free => d_oacc_ell_free + procedure, pass(a) :: vect_mv => psb_d_oacc_ell_vect_mv + procedure, pass(a) :: in_vect_sv => psb_d_oacc_ell_inner_vect_sv + procedure, pass(a) :: csmm => psb_d_oacc_ell_csmm + procedure, pass(a) :: csmv => psb_d_oacc_ell_csmv + procedure, pass(a) :: scals => psb_d_oacc_ell_scals + procedure, pass(a) :: scalv => psb_d_oacc_ell_scal + procedure, pass(a) :: reallocate_nz => psb_d_oacc_ell_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_d_oacc_ell_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_d_oacc_ell_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_d_oacc_ell_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_d_oacc_ell_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_d_oacc_ell_mv_from_fmt + procedure, pass(a) :: mold => psb_d_oacc_ell_mold end type psb_d_oacc_ell_sparse_mat @@ -154,7 +154,7 @@ module psb_d_oacc_ell_mat_mod contains - subroutine d_oacc_ell_free_space(a) + subroutine d_oacc_ell_free_dev_space(a) use psb_base_mod implicit none class(psb_d_oacc_ell_sparse_mat), intent(inout) :: a @@ -166,7 +166,7 @@ contains if (allocated(a%idiag)) call acc_delete_finalize(a%idiag) return - end subroutine d_oacc_ell_free_space + end subroutine d_oacc_ell_free_dev_space subroutine d_oacc_ell_free(a) use psb_base_mod @@ -174,7 +174,7 @@ contains class(psb_d_oacc_ell_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_d_ell_sparse_mat%free() return @@ -195,7 +195,7 @@ contains end function d_oacc_ell_sizeof - subroutine d_oacc_ell_sync_space(a) + subroutine d_oacc_ell_sync_dev_space(a) implicit none class(psb_d_oacc_ell_sparse_mat), intent(inout) :: a @@ -203,7 +203,7 @@ contains if (allocated(a%ja)) call acc_create(a%ja) if (allocated(a%irn)) call acc_create(a%irn) if (allocated(a%idiag)) call acc_create(a%idiag) - end subroutine d_oacc_ell_sync_space + end subroutine d_oacc_ell_sync_dev_space function d_oacc_ell_is_host(a) result(res) implicit none @@ -262,7 +262,7 @@ contains class(psb_d_oacc_ell_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_d_oacc_hll_mat_mod.F90 b/openacc/psb_d_oacc_hll_mat_mod.F90 index 8009f085..15ae055e 100644 --- a/openacc/psb_d_oacc_hll_mat_mod.F90 +++ b/openacc/psb_d_oacc_hll_mat_mod.F90 @@ -12,31 +12,31 @@ module psb_d_oacc_hll_mat_mod type, extends(psb_d_hll_sparse_mat) :: psb_d_oacc_hll_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => d_oacc_hll_get_fmt - procedure, pass(a) :: sizeof => d_oacc_hll_sizeof - procedure, pass(a) :: is_host => d_oacc_hll_is_host - procedure, pass(a) :: is_sync => d_oacc_hll_is_sync - procedure, pass(a) :: is_dev => d_oacc_hll_is_dev - procedure, pass(a) :: set_host => d_oacc_hll_set_host - procedure, pass(a) :: set_sync => d_oacc_hll_set_sync - procedure, pass(a) :: set_dev => d_oacc_hll_set_dev - procedure, pass(a) :: sync_space => d_oacc_hll_sync_space - procedure, pass(a) :: sync => d_oacc_hll_sync - procedure, pass(a) :: free_space => d_oacc_hll_free_space - procedure, pass(a) :: free => d_oacc_hll_free - procedure, pass(a) :: vect_mv => psb_d_oacc_hll_vect_mv - procedure, pass(a) :: in_vect_sv => psb_d_oacc_hll_inner_vect_sv - procedure, pass(a) :: csmm => psb_d_oacc_hll_csmm - procedure, pass(a) :: csmv => psb_d_oacc_hll_csmv - procedure, pass(a) :: scals => psb_d_oacc_hll_scals - procedure, pass(a) :: scalv => psb_d_oacc_hll_scal - procedure, pass(a) :: reallocate_nz => psb_d_oacc_hll_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_d_oacc_hll_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_d_oacc_hll_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_d_oacc_hll_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_d_oacc_hll_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_d_oacc_hll_mv_from_fmt - procedure, pass(a) :: mold => psb_d_oacc_hll_mold + procedure, nopass :: get_fmt => d_oacc_hll_get_fmt + procedure, pass(a) :: sizeof => d_oacc_hll_sizeof + procedure, pass(a) :: is_host => d_oacc_hll_is_host + procedure, pass(a) :: is_sync => d_oacc_hll_is_sync + procedure, pass(a) :: is_dev => d_oacc_hll_is_dev + procedure, pass(a) :: set_host => d_oacc_hll_set_host + procedure, pass(a) :: set_sync => d_oacc_hll_set_sync + procedure, pass(a) :: set_dev => d_oacc_hll_set_dev + procedure, pass(a) :: sync_dev_space => d_oacc_hll_sync_dev_space + procedure, pass(a) :: sync => d_oacc_hll_sync + procedure, pass(a) :: free_dev_space => d_oacc_hll_free_dev_space + procedure, pass(a) :: free => d_oacc_hll_free + procedure, pass(a) :: vect_mv => psb_d_oacc_hll_vect_mv + procedure, pass(a) :: in_vect_sv => psb_d_oacc_hll_inner_vect_sv + procedure, pass(a) :: csmm => psb_d_oacc_hll_csmm + procedure, pass(a) :: csmv => psb_d_oacc_hll_csmv + procedure, pass(a) :: scals => psb_d_oacc_hll_scals + procedure, pass(a) :: scalv => psb_d_oacc_hll_scal + procedure, pass(a) :: reallocate_nz => psb_d_oacc_hll_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_d_oacc_hll_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_d_oacc_hll_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_d_oacc_hll_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_d_oacc_hll_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_d_oacc_hll_mv_from_fmt + procedure, pass(a) :: mold => psb_d_oacc_hll_mold end type psb_d_oacc_hll_sparse_mat @@ -154,7 +154,7 @@ module psb_d_oacc_hll_mat_mod contains - subroutine d_oacc_hll_free_space(a) + subroutine d_oacc_hll_free_dev_space(a) use psb_base_mod implicit none class(psb_d_oacc_hll_sparse_mat), intent(inout) :: a @@ -167,7 +167,7 @@ contains if (allocated(a%hkoffs)) call acc_delete_finalize(a%hkoffs) return - end subroutine d_oacc_hll_free_space + end subroutine d_oacc_hll_free_dev_space subroutine d_oacc_hll_free(a) use psb_base_mod @@ -175,7 +175,7 @@ contains class(psb_d_oacc_hll_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_d_hll_sparse_mat%free() return @@ -249,7 +249,7 @@ contains res = 'HLLOA' end function d_oacc_hll_get_fmt - subroutine d_oacc_hll_sync_space(a) + subroutine d_oacc_hll_sync_dev_space(a) implicit none class(psb_d_oacc_hll_sparse_mat), intent(inout) :: a @@ -258,7 +258,7 @@ contains if (allocated(a%irn)) call acc_create(a%irn) if (allocated(a%idiag)) call acc_create(a%idiag) if (allocated(a%hkoffs)) call acc_create(a%hkoffs) - end subroutine d_oacc_hll_sync_space + end subroutine d_oacc_hll_sync_dev_space subroutine d_oacc_hll_sync(a) @@ -267,7 +267,7 @@ contains class(psb_d_oacc_hll_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_d_oacc_vect_mod.F90 b/openacc/psb_d_oacc_vect_mod.F90 index c7804bc1..3d71e54c 100644 --- a/openacc/psb_d_oacc_vect_mod.F90 +++ b/openacc/psb_d_oacc_vect_mod.F90 @@ -15,50 +15,50 @@ module psb_d_oacc_vect_mod integer :: state = is_host contains - procedure, pass(x) :: get_nrows => d_oacc_get_nrows - procedure, nopass :: get_fmt => d_oacc_get_fmt - - procedure, pass(x) :: all => d_oacc_vect_all - procedure, pass(x) :: zero => d_oacc_zero - procedure, pass(x) :: asb_m => d_oacc_asb_m - procedure, pass(x) :: sync => d_oacc_sync - procedure, pass(x) :: sync_space => d_oacc_sync_space - procedure, pass(x) :: bld_x => d_oacc_bld_x - procedure, pass(x) :: bld_mn => d_oacc_bld_mn - procedure, pass(x) :: free => d_oacc_vect_free - procedure, pass(x) :: ins_a => d_oacc_ins_a - procedure, pass(x) :: ins_v => d_oacc_ins_v - procedure, pass(x) :: is_host => d_oacc_is_host - procedure, pass(x) :: is_dev => d_oacc_is_dev - procedure, pass(x) :: is_sync => d_oacc_is_sync - procedure, pass(x) :: set_host => d_oacc_set_host - procedure, pass(x) :: set_dev => d_oacc_set_dev - procedure, pass(x) :: set_sync => d_oacc_set_sync - procedure, pass(x) :: set_scal => d_oacc_set_scal - - procedure, pass(x) :: gthzv_x => d_oacc_gthzv_x - procedure, pass(x) :: gthzbuf_x => d_oacc_gthzbuf - procedure, pass(y) :: sctb => d_oacc_sctb - procedure, pass(y) :: sctb_x => d_oacc_sctb_x - procedure, pass(y) :: sctb_buf => d_oacc_sctb_buf - - procedure, pass(x) :: get_size => d_oacc_get_size - - procedure, pass(x) :: dot_v => d_oacc_vect_dot - procedure, pass(x) :: dot_a => d_oacc_dot_a - procedure, pass(y) :: axpby_v => d_oacc_axpby_v - procedure, pass(y) :: axpby_a => d_oacc_axpby_a - procedure, pass(z) :: upd_xyz => d_oacc_upd_xyz - procedure, pass(y) :: mlt_a => d_oacc_mlt_a - procedure, pass(z) :: mlt_a_2 => d_oacc_mlt_a_2 - procedure, pass(y) :: mlt_v => psb_d_oacc_mlt_v - procedure, pass(z) :: mlt_v_2 => psb_d_oacc_mlt_v_2 - procedure, pass(x) :: scal => d_oacc_scal - procedure, pass(x) :: nrm2 => d_oacc_nrm2 - procedure, pass(x) :: amax => d_oacc_amax - procedure, pass(x) :: asum => d_oacc_asum - procedure, pass(x) :: absval1 => d_oacc_absval1 - procedure, pass(x) :: absval2 => d_oacc_absval2 + procedure, pass(x) :: get_nrows => d_oacc_get_nrows + procedure, nopass :: get_fmt => d_oacc_get_fmt + + procedure, pass(x) :: all => d_oacc_vect_all + procedure, pass(x) :: zero => d_oacc_zero + procedure, pass(x) :: asb_m => d_oacc_asb_m + procedure, pass(x) :: sync => d_oacc_sync + procedure, pass(x) :: sync_dev_space => d_oacc_sync_dev_space + procedure, pass(x) :: bld_x => d_oacc_bld_x + procedure, pass(x) :: bld_mn => d_oacc_bld_mn + procedure, pass(x) :: free => d_oacc_vect_free + procedure, pass(x) :: ins_a => d_oacc_ins_a + procedure, pass(x) :: ins_v => d_oacc_ins_v + procedure, pass(x) :: is_host => d_oacc_is_host + procedure, pass(x) :: is_dev => d_oacc_is_dev + procedure, pass(x) :: is_sync => d_oacc_is_sync + procedure, pass(x) :: set_host => d_oacc_set_host + procedure, pass(x) :: set_dev => d_oacc_set_dev + procedure, pass(x) :: set_sync => d_oacc_set_sync + procedure, pass(x) :: set_scal => d_oacc_set_scal + + procedure, pass(x) :: gthzv_x => d_oacc_gthzv_x + procedure, pass(x) :: gthzbuf_x => d_oacc_gthzbuf + procedure, pass(y) :: sctb => d_oacc_sctb + procedure, pass(y) :: sctb_x => d_oacc_sctb_x + procedure, pass(y) :: sctb_buf => d_oacc_sctb_buf + + procedure, pass(x) :: get_size => d_oacc_get_size + + procedure, pass(x) :: dot_v => d_oacc_vect_dot + procedure, pass(x) :: dot_a => d_oacc_dot_a + procedure, pass(y) :: axpby_v => d_oacc_axpby_v + procedure, pass(y) :: axpby_a => d_oacc_axpby_a + procedure, pass(z) :: upd_xyz => d_oacc_upd_xyz + procedure, pass(y) :: mlt_a => d_oacc_mlt_a + procedure, pass(z) :: mlt_a_2 => d_oacc_mlt_a_2 + procedure, pass(y) :: mlt_v => psb_d_oacc_mlt_v + procedure, pass(z) :: mlt_v_2 => psb_d_oacc_mlt_v_2 + procedure, pass(x) :: scal => d_oacc_scal + procedure, pass(x) :: nrm2 => d_oacc_nrm2 + procedure, pass(x) :: amax => d_oacc_amax + procedure, pass(x) :: asum => d_oacc_asum + procedure, pass(x) :: absval1 => d_oacc_absval1 + procedure, pass(x) :: absval2 => d_oacc_absval2 final :: d_oacc_final_vect_free end type psb_d_vect_oacc @@ -117,7 +117,7 @@ contains integer(psb_ipk_) :: i n = min(size(x%v), size(y%v)) - select type (yy => y) + select type (yy => y) class is (psb_d_vect_oacc) if (x%is_host()) call x%sync() if (yy%is_host()) call yy%sync() @@ -287,7 +287,7 @@ contains info = psb_success_ - select type(xx => x) + select type(xx => x) type is (psb_d_vect_oacc) if ((beta /= dzero) .and. y%is_host()) call y%sync() if (xx%is_host()) call xx%sync() @@ -354,11 +354,11 @@ contains info = psb_success_ gpu_done = .false. - select type(xx => x) + select type(xx => x) class is (psb_d_vect_oacc) - select type(yy => y) + select type(yy => y) class is (psb_d_vect_oacc) - select type(zz => z) + select type(zz => z) class is (psb_d_vect_oacc) if ((beta /= dzero) .and. yy%is_host()) call yy%sync() if ((delta /= dzero) .and. zz%is_host()) call zz%sync() @@ -405,7 +405,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() if (y%is_host()) call y%sync() @@ -432,7 +432,7 @@ contains class(psb_d_vect_oacc) :: y integer(psb_ipk_) :: info, ni - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -485,7 +485,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -512,7 +512,7 @@ contains info = 0 - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -544,9 +544,9 @@ contains if (psb_errstatus_fatal()) return done_oacc = .false. - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) - select type(vval => val) + select type(vval => val) type is (psb_d_vect_oacc) if (vval%is_host()) call vval%sync() if (virl%is_host()) call virl%sync() @@ -561,11 +561,11 @@ contains end select if (.not.done_oacc) then - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) if (virl%is_dev()) call virl%sync() end select - select type(vval => val) + select type(vval => val) type is (psb_d_vect_oacc) if (vval%is_dev()) call vval%sync() end select @@ -611,7 +611,7 @@ contains call psb_errpush(info, 'd_oacc_bld_mn', i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine d_oacc_bld_mn @@ -633,7 +633,7 @@ contains end if x%v(:) = this(:) call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine d_oacc_bld_x @@ -719,7 +719,7 @@ contains res = dzero !write(0,*) 'dot_v' - select type(yy => y) + select type(yy => y) type is (psb_d_base_vect_type) if (x%is_dev()) call x%sync() res = ddot(n, x%v, 1, yy%v, 1) @@ -762,11 +762,11 @@ contains end function d_oacc_dot_a - subroutine d_oacc_sync_space(x) + subroutine d_oacc_sync_dev_space(x) implicit none class(psb_d_vect_oacc), intent(inout) :: x if (allocated(x%v)) call acc_create(x%v) - end subroutine d_oacc_sync_space + end subroutine d_oacc_sync_dev_space subroutine d_oacc_sync(x) implicit none @@ -840,7 +840,7 @@ contains i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine d_oacc_vect_all subroutine d_oacc_final_vect_free(x) diff --git a/openacc/psb_i_oacc_vect_mod.F90 b/openacc/psb_i_oacc_vect_mod.F90 index 8c813134..42226f0c 100644 --- a/openacc/psb_i_oacc_vect_mod.F90 +++ b/openacc/psb_i_oacc_vect_mod.F90 @@ -13,34 +13,34 @@ module psb_i_oacc_vect_mod integer :: state = is_host contains - procedure, pass(x) :: get_nrows => i_oacc_get_nrows - procedure, nopass :: get_fmt => i_oacc_get_fmt - - procedure, pass(x) :: all => i_oacc_vect_all - procedure, pass(x) :: zero => i_oacc_zero - procedure, pass(x) :: asb_m => i_oacc_asb_m - procedure, pass(x) :: sync => i_oacc_sync - procedure, pass(x) :: sync_space => i_oacc_sync_space - procedure, pass(x) :: bld_x => i_oacc_bld_x - procedure, pass(x) :: bld_mn => i_oacc_bld_mn - procedure, pass(x) :: free => i_oacc_vect_free - procedure, pass(x) :: ins_a => i_oacc_ins_a - procedure, pass(x) :: ins_v => i_oacc_ins_v - procedure, pass(x) :: is_host => i_oacc_is_host - procedure, pass(x) :: is_dev => i_oacc_is_dev - procedure, pass(x) :: is_sync => i_oacc_is_sync - procedure, pass(x) :: set_host => i_oacc_set_host - procedure, pass(x) :: set_dev => i_oacc_set_dev - procedure, pass(x) :: set_sync => i_oacc_set_sync - procedure, pass(x) :: set_scal => i_oacc_set_scal - - procedure, pass(x) :: gthzv_x => i_oacc_gthzv_x - procedure, pass(x) :: gthzbuf_x => i_oacc_gthzbuf - procedure, pass(y) :: sctb => i_oacc_sctb - procedure, pass(y) :: sctb_x => i_oacc_sctb_x - procedure, pass(y) :: sctb_buf => i_oacc_sctb_buf - - procedure, pass(x) :: get_size => i_oacc_get_size + procedure, pass(x) :: get_nrows => i_oacc_get_nrows + procedure, nopass :: get_fmt => i_oacc_get_fmt + + procedure, pass(x) :: all => i_oacc_vect_all + procedure, pass(x) :: zero => i_oacc_zero + procedure, pass(x) :: asb_m => i_oacc_asb_m + procedure, pass(x) :: sync => i_oacc_sync + procedure, pass(x) :: sync_dev_space => i_oacc_sync_dev_space + procedure, pass(x) :: bld_x => i_oacc_bld_x + procedure, pass(x) :: bld_mn => i_oacc_bld_mn + procedure, pass(x) :: free => i_oacc_vect_free + procedure, pass(x) :: ins_a => i_oacc_ins_a + procedure, pass(x) :: ins_v => i_oacc_ins_v + procedure, pass(x) :: is_host => i_oacc_is_host + procedure, pass(x) :: is_dev => i_oacc_is_dev + procedure, pass(x) :: is_sync => i_oacc_is_sync + procedure, pass(x) :: set_host => i_oacc_set_host + procedure, pass(x) :: set_dev => i_oacc_set_dev + procedure, pass(x) :: set_sync => i_oacc_set_sync + procedure, pass(x) :: set_scal => i_oacc_set_scal + + procedure, pass(x) :: gthzv_x => i_oacc_gthzv_x + procedure, pass(x) :: gthzbuf_x => i_oacc_gthzbuf + procedure, pass(y) :: sctb => i_oacc_sctb + procedure, pass(y) :: sctb_x => i_oacc_sctb_x + procedure, pass(y) :: sctb_buf => i_oacc_sctb_buf + + procedure, pass(x) :: get_size => i_oacc_get_size final :: i_oacc_final_vect_free end type psb_i_vect_oacc @@ -63,7 +63,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() if (y%is_host()) call y%sync() @@ -90,7 +90,7 @@ contains class(psb_i_vect_oacc) :: y integer(psb_ipk_) :: info, ni - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -143,7 +143,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -170,7 +170,7 @@ contains info = 0 - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -202,9 +202,9 @@ contains if (psb_errstatus_fatal()) return done_oacc = .false. - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) - select type(vval => val) + select type(vval => val) type is (psb_i_vect_oacc) if (vval%is_host()) call vval%sync() if (virl%is_host()) call virl%sync() @@ -219,11 +219,11 @@ contains end select if (.not.done_oacc) then - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) if (virl%is_dev()) call virl%sync() end select - select type(vval => val) + select type(vval => val) type is (psb_i_vect_oacc) if (vval%is_dev()) call vval%sync() end select @@ -269,7 +269,7 @@ contains call psb_errpush(info, 'i_oacc_bld_mn', i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine i_oacc_bld_mn @@ -291,7 +291,7 @@ contains end if x%v(:) = this(:) call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine i_oacc_bld_x @@ -366,11 +366,11 @@ contains end function i_oacc_get_fmt - subroutine i_oacc_sync_space(x) + subroutine i_oacc_sync_dev_space(x) implicit none class(psb_i_vect_oacc), intent(inout) :: x if (allocated(x%v)) call acc_create(x%v) - end subroutine i_oacc_sync_space + end subroutine i_oacc_sync_dev_space subroutine i_oacc_sync(x) implicit none @@ -444,7 +444,7 @@ contains i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine i_oacc_vect_all subroutine i_oacc_final_vect_free(x) diff --git a/openacc/psb_l_oacc_vect_mod.F90 b/openacc/psb_l_oacc_vect_mod.F90 index 9ff100bc..eb9b2b9a 100644 --- a/openacc/psb_l_oacc_vect_mod.F90 +++ b/openacc/psb_l_oacc_vect_mod.F90 @@ -15,34 +15,34 @@ module psb_l_oacc_vect_mod integer :: state = is_host contains - procedure, pass(x) :: get_nrows => l_oacc_get_nrows - procedure, nopass :: get_fmt => l_oacc_get_fmt - - procedure, pass(x) :: all => l_oacc_vect_all - procedure, pass(x) :: zero => l_oacc_zero - procedure, pass(x) :: asb_m => l_oacc_asb_m - procedure, pass(x) :: sync => l_oacc_sync - procedure, pass(x) :: sync_space => l_oacc_sync_space - procedure, pass(x) :: bld_x => l_oacc_bld_x - procedure, pass(x) :: bld_mn => l_oacc_bld_mn - procedure, pass(x) :: free => l_oacc_vect_free - procedure, pass(x) :: ins_a => l_oacc_ins_a - procedure, pass(x) :: ins_v => l_oacc_ins_v - procedure, pass(x) :: is_host => l_oacc_is_host - procedure, pass(x) :: is_dev => l_oacc_is_dev - procedure, pass(x) :: is_sync => l_oacc_is_sync - procedure, pass(x) :: set_host => l_oacc_set_host - procedure, pass(x) :: set_dev => l_oacc_set_dev - procedure, pass(x) :: set_sync => l_oacc_set_sync - procedure, pass(x) :: set_scal => l_oacc_set_scal - - procedure, pass(x) :: gthzv_x => l_oacc_gthzv_x - procedure, pass(x) :: gthzbuf_x => l_oacc_gthzbuf - procedure, pass(y) :: sctb => l_oacc_sctb - procedure, pass(y) :: sctb_x => l_oacc_sctb_x - procedure, pass(y) :: sctb_buf => l_oacc_sctb_buf - - procedure, pass(x) :: get_size => l_oacc_get_size + procedure, pass(x) :: get_nrows => l_oacc_get_nrows + procedure, nopass :: get_fmt => l_oacc_get_fmt + + procedure, pass(x) :: all => l_oacc_vect_all + procedure, pass(x) :: zero => l_oacc_zero + procedure, pass(x) :: asb_m => l_oacc_asb_m + procedure, pass(x) :: sync => l_oacc_sync + procedure, pass(x) :: sync_dev_space => l_oacc_sync_dev_space + procedure, pass(x) :: bld_x => l_oacc_bld_x + procedure, pass(x) :: bld_mn => l_oacc_bld_mn + procedure, pass(x) :: free => l_oacc_vect_free + procedure, pass(x) :: ins_a => l_oacc_ins_a + procedure, pass(x) :: ins_v => l_oacc_ins_v + procedure, pass(x) :: is_host => l_oacc_is_host + procedure, pass(x) :: is_dev => l_oacc_is_dev + procedure, pass(x) :: is_sync => l_oacc_is_sync + procedure, pass(x) :: set_host => l_oacc_set_host + procedure, pass(x) :: set_dev => l_oacc_set_dev + procedure, pass(x) :: set_sync => l_oacc_set_sync + procedure, pass(x) :: set_scal => l_oacc_set_scal + + procedure, pass(x) :: gthzv_x => l_oacc_gthzv_x + procedure, pass(x) :: gthzbuf_x => l_oacc_gthzbuf + procedure, pass(y) :: sctb => l_oacc_sctb + procedure, pass(y) :: sctb_x => l_oacc_sctb_x + procedure, pass(y) :: sctb_buf => l_oacc_sctb_buf + + procedure, pass(x) :: get_size => l_oacc_get_size final :: l_oacc_final_vect_free end type psb_l_vect_oacc @@ -65,7 +65,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() if (y%is_host()) call y%sync() @@ -92,7 +92,7 @@ contains class(psb_l_vect_oacc) :: y integer(psb_ipk_) :: info, ni - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -145,7 +145,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -172,7 +172,7 @@ contains info = 0 - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -204,9 +204,9 @@ contains if (psb_errstatus_fatal()) return done_oacc = .false. - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) - select type(vval => val) + select type(vval => val) type is (psb_l_vect_oacc) if (vval%is_host()) call vval%sync() if (virl%is_host()) call virl%sync() @@ -221,11 +221,11 @@ contains end select if (.not.done_oacc) then - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) if (virl%is_dev()) call virl%sync() end select - select type(vval => val) + select type(vval => val) type is (psb_l_vect_oacc) if (vval%is_dev()) call vval%sync() end select @@ -271,7 +271,7 @@ contains call psb_errpush(info, 'l_oacc_bld_mn', i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine l_oacc_bld_mn @@ -293,7 +293,7 @@ contains end if x%v(:) = this(:) call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine l_oacc_bld_x @@ -368,11 +368,11 @@ contains end function l_oacc_get_fmt - subroutine l_oacc_sync_space(x) + subroutine l_oacc_sync_dev_space(x) implicit none class(psb_l_vect_oacc), intent(inout) :: x if (allocated(x%v)) call acc_create(x%v) - end subroutine l_oacc_sync_space + end subroutine l_oacc_sync_dev_space subroutine l_oacc_sync(x) implicit none @@ -446,7 +446,7 @@ contains i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine l_oacc_vect_all subroutine l_oacc_final_vect_free(x) diff --git a/openacc/psb_s_oacc_csr_mat_mod.F90 b/openacc/psb_s_oacc_csr_mat_mod.F90 index b577daac..64a5f9a1 100644 --- a/openacc/psb_s_oacc_csr_mat_mod.F90 +++ b/openacc/psb_s_oacc_csr_mat_mod.F90 @@ -13,32 +13,32 @@ module psb_s_oacc_csr_mat_mod type, extends(psb_s_csr_sparse_mat) :: psb_s_oacc_csr_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => s_oacc_csr_get_fmt - procedure, pass(a) :: sizeof => s_oacc_csr_sizeof - procedure, pass(a) :: vect_mv => psb_s_oacc_csr_vect_mv - procedure, pass(a) :: in_vect_sv => psb_s_oacc_csr_inner_vect_sv - procedure, pass(a) :: csmm => psb_s_oacc_csr_csmm - procedure, pass(a) :: csmv => psb_s_oacc_csr_csmv - procedure, pass(a) :: scals => psb_s_oacc_csr_scals - procedure, pass(a) :: scalv => psb_s_oacc_csr_scal - procedure, pass(a) :: reallocate_nz => psb_s_oacc_csr_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_s_oacc_csr_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_s_oacc_csr_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_s_oacc_csr_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_s_oacc_csr_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_s_oacc_csr_mv_from_fmt - procedure, pass(a) :: free => s_oacc_csr_free - procedure, pass(a) :: mold => psb_s_oacc_csr_mold - procedure, pass(a) :: all => s_oacc_csr_all - procedure, pass(a) :: is_host => s_oacc_csr_is_host - procedure, pass(a) :: is_sync => s_oacc_csr_is_sync - procedure, pass(a) :: is_dev => s_oacc_csr_is_dev - procedure, pass(a) :: set_host => s_oacc_csr_set_host - procedure, pass(a) :: set_sync => s_oacc_csr_set_sync - procedure, pass(a) :: set_dev => s_oacc_csr_set_dev - procedure, pass(a) :: free_space => s_oacc_csr_free_space - procedure, pass(a) :: sync_space => s_oacc_csr_sync_space - procedure, pass(a) :: sync => s_oacc_csr_sync + procedure, nopass :: get_fmt => s_oacc_csr_get_fmt + procedure, pass(a) :: sizeof => s_oacc_csr_sizeof + procedure, pass(a) :: vect_mv => psb_s_oacc_csr_vect_mv + procedure, pass(a) :: in_vect_sv => psb_s_oacc_csr_inner_vect_sv + procedure, pass(a) :: csmm => psb_s_oacc_csr_csmm + procedure, pass(a) :: csmv => psb_s_oacc_csr_csmv + procedure, pass(a) :: scals => psb_s_oacc_csr_scals + procedure, pass(a) :: scalv => psb_s_oacc_csr_scal + procedure, pass(a) :: reallocate_nz => psb_s_oacc_csr_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_s_oacc_csr_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_s_oacc_csr_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_s_oacc_csr_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_s_oacc_csr_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_s_oacc_csr_mv_from_fmt + procedure, pass(a) :: free => s_oacc_csr_free + procedure, pass(a) :: mold => psb_s_oacc_csr_mold + procedure, pass(a) :: all => s_oacc_csr_all + procedure, pass(a) :: is_host => s_oacc_csr_is_host + procedure, pass(a) :: is_sync => s_oacc_csr_is_sync + procedure, pass(a) :: is_dev => s_oacc_csr_is_dev + procedure, pass(a) :: set_host => s_oacc_csr_set_host + procedure, pass(a) :: set_sync => s_oacc_csr_set_sync + procedure, pass(a) :: set_dev => s_oacc_csr_set_dev + procedure, pass(a) :: free_dev_space => s_oacc_csr_free_dev_space + procedure, pass(a) :: sync_dev_space => s_oacc_csr_sync_dev_space + procedure, pass(a) :: sync => s_oacc_csr_sync end type psb_s_oacc_csr_sparse_mat interface @@ -156,7 +156,7 @@ module psb_s_oacc_csr_mat_mod contains - subroutine s_oacc_csr_free_space(a) + subroutine s_oacc_csr_free_dev_space(a) use psb_base_mod implicit none class(psb_s_oacc_csr_sparse_mat), intent(inout) :: a @@ -167,7 +167,7 @@ contains if (allocated(a%irp)) call acc_delete_finalize(a%irp) return - end subroutine s_oacc_csr_free_space + end subroutine s_oacc_csr_free_dev_space subroutine s_oacc_csr_free(a) use psb_base_mod @@ -175,7 +175,7 @@ contains class(psb_s_oacc_csr_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_s_csr_sparse_mat%free() return @@ -218,7 +218,7 @@ contains allocate(a%ja(nz),stat=info) allocate(a%irp(m+1),stat=info) if (info == 0) call a%set_host() - if (info == 0) call a%sync_space() + if (info == 0) call a%sync_dev_space() end subroutine s_oacc_csr_all function s_oacc_csr_is_host(a) result(res) @@ -266,13 +266,13 @@ contains a%devstate = is_dev end subroutine s_oacc_csr_set_dev - subroutine s_oacc_csr_sync_space(a) + subroutine s_oacc_csr_sync_dev_space(a) implicit none class(psb_s_oacc_csr_sparse_mat), intent(inout) :: a if (allocated(a%val)) call acc_create(a%val) if (allocated(a%ja)) call acc_create(a%ja) if (allocated(a%irp)) call acc_create(a%irp) - end subroutine s_oacc_csr_sync_space + end subroutine s_oacc_csr_sync_dev_space subroutine s_oacc_csr_sync(a) implicit none @@ -280,7 +280,7 @@ contains class(psb_s_oacc_csr_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_s_oacc_ell_mat_mod.F90 b/openacc/psb_s_oacc_ell_mat_mod.F90 index 793bf353..2893c3e5 100644 --- a/openacc/psb_s_oacc_ell_mat_mod.F90 +++ b/openacc/psb_s_oacc_ell_mat_mod.F90 @@ -12,31 +12,31 @@ module psb_s_oacc_ell_mat_mod type, extends(psb_s_ell_sparse_mat) :: psb_s_oacc_ell_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => s_oacc_ell_get_fmt - procedure, pass(a) :: sizeof => s_oacc_ell_sizeof - procedure, pass(a) :: is_host => s_oacc_ell_is_host - procedure, pass(a) :: is_sync => s_oacc_ell_is_sync - procedure, pass(a) :: is_dev => s_oacc_ell_is_dev - procedure, pass(a) :: set_host => s_oacc_ell_set_host - procedure, pass(a) :: set_sync => s_oacc_ell_set_sync - procedure, pass(a) :: set_dev => s_oacc_ell_set_dev - procedure, pass(a) :: sync_space => s_oacc_ell_sync_space - procedure, pass(a) :: sync => s_oacc_ell_sync - procedure, pass(a) :: free_space => s_oacc_ell_free_space - procedure, pass(a) :: free => s_oacc_ell_free - procedure, pass(a) :: vect_mv => psb_s_oacc_ell_vect_mv - procedure, pass(a) :: in_vect_sv => psb_s_oacc_ell_inner_vect_sv - procedure, pass(a) :: csmm => psb_s_oacc_ell_csmm - procedure, pass(a) :: csmv => psb_s_oacc_ell_csmv - procedure, pass(a) :: scals => psb_s_oacc_ell_scals - procedure, pass(a) :: scalv => psb_s_oacc_ell_scal - procedure, pass(a) :: reallocate_nz => psb_s_oacc_ell_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_s_oacc_ell_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_s_oacc_ell_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_s_oacc_ell_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_s_oacc_ell_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_s_oacc_ell_mv_from_fmt - procedure, pass(a) :: mold => psb_s_oacc_ell_mold + procedure, nopass :: get_fmt => s_oacc_ell_get_fmt + procedure, pass(a) :: sizeof => s_oacc_ell_sizeof + procedure, pass(a) :: is_host => s_oacc_ell_is_host + procedure, pass(a) :: is_sync => s_oacc_ell_is_sync + procedure, pass(a) :: is_dev => s_oacc_ell_is_dev + procedure, pass(a) :: set_host => s_oacc_ell_set_host + procedure, pass(a) :: set_sync => s_oacc_ell_set_sync + procedure, pass(a) :: set_dev => s_oacc_ell_set_dev + procedure, pass(a) :: sync_dev_space => s_oacc_ell_sync_dev_space + procedure, pass(a) :: sync => s_oacc_ell_sync + procedure, pass(a) :: free_dev_space => s_oacc_ell_free_dev_space + procedure, pass(a) :: free => s_oacc_ell_free + procedure, pass(a) :: vect_mv => psb_s_oacc_ell_vect_mv + procedure, pass(a) :: in_vect_sv => psb_s_oacc_ell_inner_vect_sv + procedure, pass(a) :: csmm => psb_s_oacc_ell_csmm + procedure, pass(a) :: csmv => psb_s_oacc_ell_csmv + procedure, pass(a) :: scals => psb_s_oacc_ell_scals + procedure, pass(a) :: scalv => psb_s_oacc_ell_scal + procedure, pass(a) :: reallocate_nz => psb_s_oacc_ell_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_s_oacc_ell_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_s_oacc_ell_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_s_oacc_ell_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_s_oacc_ell_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_s_oacc_ell_mv_from_fmt + procedure, pass(a) :: mold => psb_s_oacc_ell_mold end type psb_s_oacc_ell_sparse_mat @@ -154,7 +154,7 @@ module psb_s_oacc_ell_mat_mod contains - subroutine s_oacc_ell_free_space(a) + subroutine s_oacc_ell_free_dev_space(a) use psb_base_mod implicit none class(psb_s_oacc_ell_sparse_mat), intent(inout) :: a @@ -166,7 +166,7 @@ contains if (allocated(a%idiag)) call acc_delete_finalize(a%idiag) return - end subroutine s_oacc_ell_free_space + end subroutine s_oacc_ell_free_dev_space subroutine s_oacc_ell_free(a) use psb_base_mod @@ -174,7 +174,7 @@ contains class(psb_s_oacc_ell_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_s_ell_sparse_mat%free() return @@ -195,7 +195,7 @@ contains end function s_oacc_ell_sizeof - subroutine s_oacc_ell_sync_space(a) + subroutine s_oacc_ell_sync_dev_space(a) implicit none class(psb_s_oacc_ell_sparse_mat), intent(inout) :: a @@ -203,7 +203,7 @@ contains if (allocated(a%ja)) call acc_create(a%ja) if (allocated(a%irn)) call acc_create(a%irn) if (allocated(a%idiag)) call acc_create(a%idiag) - end subroutine s_oacc_ell_sync_space + end subroutine s_oacc_ell_sync_dev_space function s_oacc_ell_is_host(a) result(res) implicit none @@ -262,7 +262,7 @@ contains class(psb_s_oacc_ell_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_s_oacc_hll_mat_mod.F90 b/openacc/psb_s_oacc_hll_mat_mod.F90 index 508591e4..583a281e 100644 --- a/openacc/psb_s_oacc_hll_mat_mod.F90 +++ b/openacc/psb_s_oacc_hll_mat_mod.F90 @@ -12,31 +12,31 @@ module psb_s_oacc_hll_mat_mod type, extends(psb_s_hll_sparse_mat) :: psb_s_oacc_hll_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => s_oacc_hll_get_fmt - procedure, pass(a) :: sizeof => s_oacc_hll_sizeof - procedure, pass(a) :: is_host => s_oacc_hll_is_host - procedure, pass(a) :: is_sync => s_oacc_hll_is_sync - procedure, pass(a) :: is_dev => s_oacc_hll_is_dev - procedure, pass(a) :: set_host => s_oacc_hll_set_host - procedure, pass(a) :: set_sync => s_oacc_hll_set_sync - procedure, pass(a) :: set_dev => s_oacc_hll_set_dev - procedure, pass(a) :: sync_space => s_oacc_hll_sync_space - procedure, pass(a) :: sync => s_oacc_hll_sync - procedure, pass(a) :: free_space => s_oacc_hll_free_space - procedure, pass(a) :: free => s_oacc_hll_free - procedure, pass(a) :: vect_mv => psb_s_oacc_hll_vect_mv - procedure, pass(a) :: in_vect_sv => psb_s_oacc_hll_inner_vect_sv - procedure, pass(a) :: csmm => psb_s_oacc_hll_csmm - procedure, pass(a) :: csmv => psb_s_oacc_hll_csmv - procedure, pass(a) :: scals => psb_s_oacc_hll_scals - procedure, pass(a) :: scalv => psb_s_oacc_hll_scal - procedure, pass(a) :: reallocate_nz => psb_s_oacc_hll_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_s_oacc_hll_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_s_oacc_hll_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_s_oacc_hll_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_s_oacc_hll_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_s_oacc_hll_mv_from_fmt - procedure, pass(a) :: mold => psb_s_oacc_hll_mold + procedure, nopass :: get_fmt => s_oacc_hll_get_fmt + procedure, pass(a) :: sizeof => s_oacc_hll_sizeof + procedure, pass(a) :: is_host => s_oacc_hll_is_host + procedure, pass(a) :: is_sync => s_oacc_hll_is_sync + procedure, pass(a) :: is_dev => s_oacc_hll_is_dev + procedure, pass(a) :: set_host => s_oacc_hll_set_host + procedure, pass(a) :: set_sync => s_oacc_hll_set_sync + procedure, pass(a) :: set_dev => s_oacc_hll_set_dev + procedure, pass(a) :: sync_dev_space => s_oacc_hll_sync_dev_space + procedure, pass(a) :: sync => s_oacc_hll_sync + procedure, pass(a) :: free_dev_space => s_oacc_hll_free_dev_space + procedure, pass(a) :: free => s_oacc_hll_free + procedure, pass(a) :: vect_mv => psb_s_oacc_hll_vect_mv + procedure, pass(a) :: in_vect_sv => psb_s_oacc_hll_inner_vect_sv + procedure, pass(a) :: csmm => psb_s_oacc_hll_csmm + procedure, pass(a) :: csmv => psb_s_oacc_hll_csmv + procedure, pass(a) :: scals => psb_s_oacc_hll_scals + procedure, pass(a) :: scalv => psb_s_oacc_hll_scal + procedure, pass(a) :: reallocate_nz => psb_s_oacc_hll_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_s_oacc_hll_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_s_oacc_hll_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_s_oacc_hll_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_s_oacc_hll_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_s_oacc_hll_mv_from_fmt + procedure, pass(a) :: mold => psb_s_oacc_hll_mold end type psb_s_oacc_hll_sparse_mat @@ -154,7 +154,7 @@ module psb_s_oacc_hll_mat_mod contains - subroutine s_oacc_hll_free_space(a) + subroutine s_oacc_hll_free_dev_space(a) use psb_base_mod implicit none class(psb_s_oacc_hll_sparse_mat), intent(inout) :: a @@ -167,7 +167,7 @@ contains if (allocated(a%hkoffs)) call acc_delete_finalize(a%hkoffs) return - end subroutine s_oacc_hll_free_space + end subroutine s_oacc_hll_free_dev_space subroutine s_oacc_hll_free(a) use psb_base_mod @@ -175,7 +175,7 @@ contains class(psb_s_oacc_hll_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_s_hll_sparse_mat%free() return @@ -249,7 +249,7 @@ contains res = 'HLLOA' end function s_oacc_hll_get_fmt - subroutine s_oacc_hll_sync_space(a) + subroutine s_oacc_hll_sync_dev_space(a) implicit none class(psb_s_oacc_hll_sparse_mat), intent(inout) :: a @@ -258,7 +258,7 @@ contains if (allocated(a%irn)) call acc_create(a%irn) if (allocated(a%idiag)) call acc_create(a%idiag) if (allocated(a%hkoffs)) call acc_create(a%hkoffs) - end subroutine s_oacc_hll_sync_space + end subroutine s_oacc_hll_sync_dev_space subroutine s_oacc_hll_sync(a) @@ -267,7 +267,7 @@ contains class(psb_s_oacc_hll_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_s_oacc_vect_mod.F90 b/openacc/psb_s_oacc_vect_mod.F90 index 7ce4292f..16b45461 100644 --- a/openacc/psb_s_oacc_vect_mod.F90 +++ b/openacc/psb_s_oacc_vect_mod.F90 @@ -15,50 +15,50 @@ module psb_s_oacc_vect_mod integer :: state = is_host contains - procedure, pass(x) :: get_nrows => s_oacc_get_nrows - procedure, nopass :: get_fmt => s_oacc_get_fmt - - procedure, pass(x) :: all => s_oacc_vect_all - procedure, pass(x) :: zero => s_oacc_zero - procedure, pass(x) :: asb_m => s_oacc_asb_m - procedure, pass(x) :: sync => s_oacc_sync - procedure, pass(x) :: sync_space => s_oacc_sync_space - procedure, pass(x) :: bld_x => s_oacc_bld_x - procedure, pass(x) :: bld_mn => s_oacc_bld_mn - procedure, pass(x) :: free => s_oacc_vect_free - procedure, pass(x) :: ins_a => s_oacc_ins_a - procedure, pass(x) :: ins_v => s_oacc_ins_v - procedure, pass(x) :: is_host => s_oacc_is_host - procedure, pass(x) :: is_dev => s_oacc_is_dev - procedure, pass(x) :: is_sync => s_oacc_is_sync - procedure, pass(x) :: set_host => s_oacc_set_host - procedure, pass(x) :: set_dev => s_oacc_set_dev - procedure, pass(x) :: set_sync => s_oacc_set_sync - procedure, pass(x) :: set_scal => s_oacc_set_scal - - procedure, pass(x) :: gthzv_x => s_oacc_gthzv_x - procedure, pass(x) :: gthzbuf_x => s_oacc_gthzbuf - procedure, pass(y) :: sctb => s_oacc_sctb - procedure, pass(y) :: sctb_x => s_oacc_sctb_x - procedure, pass(y) :: sctb_buf => s_oacc_sctb_buf - - procedure, pass(x) :: get_size => s_oacc_get_size - - procedure, pass(x) :: dot_v => s_oacc_vect_dot - procedure, pass(x) :: dot_a => s_oacc_dot_a - procedure, pass(y) :: axpby_v => s_oacc_axpby_v - procedure, pass(y) :: axpby_a => s_oacc_axpby_a - procedure, pass(z) :: upd_xyz => s_oacc_upd_xyz - procedure, pass(y) :: mlt_a => s_oacc_mlt_a - procedure, pass(z) :: mlt_a_2 => s_oacc_mlt_a_2 - procedure, pass(y) :: mlt_v => psb_s_oacc_mlt_v - procedure, pass(z) :: mlt_v_2 => psb_s_oacc_mlt_v_2 - procedure, pass(x) :: scal => s_oacc_scal - procedure, pass(x) :: nrm2 => s_oacc_nrm2 - procedure, pass(x) :: amax => s_oacc_amax - procedure, pass(x) :: asum => s_oacc_asum - procedure, pass(x) :: absval1 => s_oacc_absval1 - procedure, pass(x) :: absval2 => s_oacc_absval2 + procedure, pass(x) :: get_nrows => s_oacc_get_nrows + procedure, nopass :: get_fmt => s_oacc_get_fmt + + procedure, pass(x) :: all => s_oacc_vect_all + procedure, pass(x) :: zero => s_oacc_zero + procedure, pass(x) :: asb_m => s_oacc_asb_m + procedure, pass(x) :: sync => s_oacc_sync + procedure, pass(x) :: sync_dev_space => s_oacc_sync_dev_space + procedure, pass(x) :: bld_x => s_oacc_bld_x + procedure, pass(x) :: bld_mn => s_oacc_bld_mn + procedure, pass(x) :: free => s_oacc_vect_free + procedure, pass(x) :: ins_a => s_oacc_ins_a + procedure, pass(x) :: ins_v => s_oacc_ins_v + procedure, pass(x) :: is_host => s_oacc_is_host + procedure, pass(x) :: is_dev => s_oacc_is_dev + procedure, pass(x) :: is_sync => s_oacc_is_sync + procedure, pass(x) :: set_host => s_oacc_set_host + procedure, pass(x) :: set_dev => s_oacc_set_dev + procedure, pass(x) :: set_sync => s_oacc_set_sync + procedure, pass(x) :: set_scal => s_oacc_set_scal + + procedure, pass(x) :: gthzv_x => s_oacc_gthzv_x + procedure, pass(x) :: gthzbuf_x => s_oacc_gthzbuf + procedure, pass(y) :: sctb => s_oacc_sctb + procedure, pass(y) :: sctb_x => s_oacc_sctb_x + procedure, pass(y) :: sctb_buf => s_oacc_sctb_buf + + procedure, pass(x) :: get_size => s_oacc_get_size + + procedure, pass(x) :: dot_v => s_oacc_vect_dot + procedure, pass(x) :: dot_a => s_oacc_dot_a + procedure, pass(y) :: axpby_v => s_oacc_axpby_v + procedure, pass(y) :: axpby_a => s_oacc_axpby_a + procedure, pass(z) :: upd_xyz => s_oacc_upd_xyz + procedure, pass(y) :: mlt_a => s_oacc_mlt_a + procedure, pass(z) :: mlt_a_2 => s_oacc_mlt_a_2 + procedure, pass(y) :: mlt_v => psb_s_oacc_mlt_v + procedure, pass(z) :: mlt_v_2 => psb_s_oacc_mlt_v_2 + procedure, pass(x) :: scal => s_oacc_scal + procedure, pass(x) :: nrm2 => s_oacc_nrm2 + procedure, pass(x) :: amax => s_oacc_amax + procedure, pass(x) :: asum => s_oacc_asum + procedure, pass(x) :: absval1 => s_oacc_absval1 + procedure, pass(x) :: absval2 => s_oacc_absval2 final :: s_oacc_final_vect_free end type psb_s_vect_oacc @@ -117,7 +117,7 @@ contains integer(psb_ipk_) :: i n = min(size(x%v), size(y%v)) - select type (yy => y) + select type (yy => y) class is (psb_s_vect_oacc) if (x%is_host()) call x%sync() if (yy%is_host()) call yy%sync() @@ -287,7 +287,7 @@ contains info = psb_success_ - select type(xx => x) + select type(xx => x) type is (psb_s_vect_oacc) if ((beta /= szero) .and. y%is_host()) call y%sync() if (xx%is_host()) call xx%sync() @@ -354,11 +354,11 @@ contains info = psb_success_ gpu_done = .false. - select type(xx => x) + select type(xx => x) class is (psb_s_vect_oacc) - select type(yy => y) + select type(yy => y) class is (psb_s_vect_oacc) - select type(zz => z) + select type(zz => z) class is (psb_s_vect_oacc) if ((beta /= szero) .and. yy%is_host()) call yy%sync() if ((delta /= szero) .and. zz%is_host()) call zz%sync() @@ -405,7 +405,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() if (y%is_host()) call y%sync() @@ -432,7 +432,7 @@ contains class(psb_s_vect_oacc) :: y integer(psb_ipk_) :: info, ni - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -485,7 +485,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -512,7 +512,7 @@ contains info = 0 - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -544,9 +544,9 @@ contains if (psb_errstatus_fatal()) return done_oacc = .false. - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) - select type(vval => val) + select type(vval => val) type is (psb_s_vect_oacc) if (vval%is_host()) call vval%sync() if (virl%is_host()) call virl%sync() @@ -561,11 +561,11 @@ contains end select if (.not.done_oacc) then - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) if (virl%is_dev()) call virl%sync() end select - select type(vval => val) + select type(vval => val) type is (psb_s_vect_oacc) if (vval%is_dev()) call vval%sync() end select @@ -611,7 +611,7 @@ contains call psb_errpush(info, 's_oacc_bld_mn', i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine s_oacc_bld_mn @@ -633,7 +633,7 @@ contains end if x%v(:) = this(:) call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine s_oacc_bld_x @@ -719,7 +719,7 @@ contains res = szero !write(0,*) 'dot_v' - select type(yy => y) + select type(yy => y) type is (psb_s_base_vect_type) if (x%is_dev()) call x%sync() res = ddot(n, x%v, 1, yy%v, 1) @@ -762,11 +762,11 @@ contains end function s_oacc_dot_a - subroutine s_oacc_sync_space(x) + subroutine s_oacc_sync_dev_space(x) implicit none class(psb_s_vect_oacc), intent(inout) :: x if (allocated(x%v)) call acc_create(x%v) - end subroutine s_oacc_sync_space + end subroutine s_oacc_sync_dev_space subroutine s_oacc_sync(x) implicit none @@ -840,7 +840,7 @@ contains i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine s_oacc_vect_all subroutine s_oacc_final_vect_free(x) diff --git a/openacc/psb_z_oacc_csr_mat_mod.F90 b/openacc/psb_z_oacc_csr_mat_mod.F90 index dbafb391..47973825 100644 --- a/openacc/psb_z_oacc_csr_mat_mod.F90 +++ b/openacc/psb_z_oacc_csr_mat_mod.F90 @@ -13,32 +13,32 @@ module psb_z_oacc_csr_mat_mod type, extends(psb_z_csr_sparse_mat) :: psb_z_oacc_csr_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => z_oacc_csr_get_fmt - procedure, pass(a) :: sizeof => z_oacc_csr_sizeof - procedure, pass(a) :: vect_mv => psb_z_oacc_csr_vect_mv - procedure, pass(a) :: in_vect_sv => psb_z_oacc_csr_inner_vect_sv - procedure, pass(a) :: csmm => psb_z_oacc_csr_csmm - procedure, pass(a) :: csmv => psb_z_oacc_csr_csmv - procedure, pass(a) :: scals => psb_z_oacc_csr_scals - procedure, pass(a) :: scalv => psb_z_oacc_csr_scal - procedure, pass(a) :: reallocate_nz => psb_z_oacc_csr_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_z_oacc_csr_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_z_oacc_csr_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_z_oacc_csr_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_z_oacc_csr_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_z_oacc_csr_mv_from_fmt - procedure, pass(a) :: free => z_oacc_csr_free - procedure, pass(a) :: mold => psb_z_oacc_csr_mold - procedure, pass(a) :: all => z_oacc_csr_all - procedure, pass(a) :: is_host => z_oacc_csr_is_host - procedure, pass(a) :: is_sync => z_oacc_csr_is_sync - procedure, pass(a) :: is_dev => z_oacc_csr_is_dev - procedure, pass(a) :: set_host => z_oacc_csr_set_host - procedure, pass(a) :: set_sync => z_oacc_csr_set_sync - procedure, pass(a) :: set_dev => z_oacc_csr_set_dev - procedure, pass(a) :: free_space => z_oacc_csr_free_space - procedure, pass(a) :: sync_space => z_oacc_csr_sync_space - procedure, pass(a) :: sync => z_oacc_csr_sync + procedure, nopass :: get_fmt => z_oacc_csr_get_fmt + procedure, pass(a) :: sizeof => z_oacc_csr_sizeof + procedure, pass(a) :: vect_mv => psb_z_oacc_csr_vect_mv + procedure, pass(a) :: in_vect_sv => psb_z_oacc_csr_inner_vect_sv + procedure, pass(a) :: csmm => psb_z_oacc_csr_csmm + procedure, pass(a) :: csmv => psb_z_oacc_csr_csmv + procedure, pass(a) :: scals => psb_z_oacc_csr_scals + procedure, pass(a) :: scalv => psb_z_oacc_csr_scal + procedure, pass(a) :: reallocate_nz => psb_z_oacc_csr_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_z_oacc_csr_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_z_oacc_csr_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_z_oacc_csr_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_z_oacc_csr_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_z_oacc_csr_mv_from_fmt + procedure, pass(a) :: free => z_oacc_csr_free + procedure, pass(a) :: mold => psb_z_oacc_csr_mold + procedure, pass(a) :: all => z_oacc_csr_all + procedure, pass(a) :: is_host => z_oacc_csr_is_host + procedure, pass(a) :: is_sync => z_oacc_csr_is_sync + procedure, pass(a) :: is_dev => z_oacc_csr_is_dev + procedure, pass(a) :: set_host => z_oacc_csr_set_host + procedure, pass(a) :: set_sync => z_oacc_csr_set_sync + procedure, pass(a) :: set_dev => z_oacc_csr_set_dev + procedure, pass(a) :: free_dev_space => z_oacc_csr_free_dev_space + procedure, pass(a) :: sync_dev_space => z_oacc_csr_sync_dev_space + procedure, pass(a) :: sync => z_oacc_csr_sync end type psb_z_oacc_csr_sparse_mat interface @@ -156,7 +156,7 @@ module psb_z_oacc_csr_mat_mod contains - subroutine z_oacc_csr_free_space(a) + subroutine z_oacc_csr_free_dev_space(a) use psb_base_mod implicit none class(psb_z_oacc_csr_sparse_mat), intent(inout) :: a @@ -167,7 +167,7 @@ contains if (allocated(a%irp)) call acc_delete_finalize(a%irp) return - end subroutine z_oacc_csr_free_space + end subroutine z_oacc_csr_free_dev_space subroutine z_oacc_csr_free(a) use psb_base_mod @@ -175,7 +175,7 @@ contains class(psb_z_oacc_csr_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_z_csr_sparse_mat%free() return @@ -218,7 +218,7 @@ contains allocate(a%ja(nz),stat=info) allocate(a%irp(m+1),stat=info) if (info == 0) call a%set_host() - if (info == 0) call a%sync_space() + if (info == 0) call a%sync_dev_space() end subroutine z_oacc_csr_all function z_oacc_csr_is_host(a) result(res) @@ -266,13 +266,13 @@ contains a%devstate = is_dev end subroutine z_oacc_csr_set_dev - subroutine z_oacc_csr_sync_space(a) + subroutine z_oacc_csr_sync_dev_space(a) implicit none class(psb_z_oacc_csr_sparse_mat), intent(inout) :: a if (allocated(a%val)) call acc_create(a%val) if (allocated(a%ja)) call acc_create(a%ja) if (allocated(a%irp)) call acc_create(a%irp) - end subroutine z_oacc_csr_sync_space + end subroutine z_oacc_csr_sync_dev_space subroutine z_oacc_csr_sync(a) implicit none @@ -280,7 +280,7 @@ contains class(psb_z_oacc_csr_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_z_oacc_ell_mat_mod.F90 b/openacc/psb_z_oacc_ell_mat_mod.F90 index 76b0182d..4013ee9d 100644 --- a/openacc/psb_z_oacc_ell_mat_mod.F90 +++ b/openacc/psb_z_oacc_ell_mat_mod.F90 @@ -12,31 +12,31 @@ module psb_z_oacc_ell_mat_mod type, extends(psb_z_ell_sparse_mat) :: psb_z_oacc_ell_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => z_oacc_ell_get_fmt - procedure, pass(a) :: sizeof => z_oacc_ell_sizeof - procedure, pass(a) :: is_host => z_oacc_ell_is_host - procedure, pass(a) :: is_sync => z_oacc_ell_is_sync - procedure, pass(a) :: is_dev => z_oacc_ell_is_dev - procedure, pass(a) :: set_host => z_oacc_ell_set_host - procedure, pass(a) :: set_sync => z_oacc_ell_set_sync - procedure, pass(a) :: set_dev => z_oacc_ell_set_dev - procedure, pass(a) :: sync_space => z_oacc_ell_sync_space - procedure, pass(a) :: sync => z_oacc_ell_sync - procedure, pass(a) :: free_space => z_oacc_ell_free_space - procedure, pass(a) :: free => z_oacc_ell_free - procedure, pass(a) :: vect_mv => psb_z_oacc_ell_vect_mv - procedure, pass(a) :: in_vect_sv => psb_z_oacc_ell_inner_vect_sv - procedure, pass(a) :: csmm => psb_z_oacc_ell_csmm - procedure, pass(a) :: csmv => psb_z_oacc_ell_csmv - procedure, pass(a) :: scals => psb_z_oacc_ell_scals - procedure, pass(a) :: scalv => psb_z_oacc_ell_scal - procedure, pass(a) :: reallocate_nz => psb_z_oacc_ell_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_z_oacc_ell_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_z_oacc_ell_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_z_oacc_ell_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_z_oacc_ell_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_z_oacc_ell_mv_from_fmt - procedure, pass(a) :: mold => psb_z_oacc_ell_mold + procedure, nopass :: get_fmt => z_oacc_ell_get_fmt + procedure, pass(a) :: sizeof => z_oacc_ell_sizeof + procedure, pass(a) :: is_host => z_oacc_ell_is_host + procedure, pass(a) :: is_sync => z_oacc_ell_is_sync + procedure, pass(a) :: is_dev => z_oacc_ell_is_dev + procedure, pass(a) :: set_host => z_oacc_ell_set_host + procedure, pass(a) :: set_sync => z_oacc_ell_set_sync + procedure, pass(a) :: set_dev => z_oacc_ell_set_dev + procedure, pass(a) :: sync_dev_space => z_oacc_ell_sync_dev_space + procedure, pass(a) :: sync => z_oacc_ell_sync + procedure, pass(a) :: free_dev_space => z_oacc_ell_free_dev_space + procedure, pass(a) :: free => z_oacc_ell_free + procedure, pass(a) :: vect_mv => psb_z_oacc_ell_vect_mv + procedure, pass(a) :: in_vect_sv => psb_z_oacc_ell_inner_vect_sv + procedure, pass(a) :: csmm => psb_z_oacc_ell_csmm + procedure, pass(a) :: csmv => psb_z_oacc_ell_csmv + procedure, pass(a) :: scals => psb_z_oacc_ell_scals + procedure, pass(a) :: scalv => psb_z_oacc_ell_scal + procedure, pass(a) :: reallocate_nz => psb_z_oacc_ell_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_z_oacc_ell_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_z_oacc_ell_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_z_oacc_ell_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_z_oacc_ell_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_z_oacc_ell_mv_from_fmt + procedure, pass(a) :: mold => psb_z_oacc_ell_mold end type psb_z_oacc_ell_sparse_mat @@ -154,7 +154,7 @@ module psb_z_oacc_ell_mat_mod contains - subroutine z_oacc_ell_free_space(a) + subroutine z_oacc_ell_free_dev_space(a) use psb_base_mod implicit none class(psb_z_oacc_ell_sparse_mat), intent(inout) :: a @@ -166,7 +166,7 @@ contains if (allocated(a%idiag)) call acc_delete_finalize(a%idiag) return - end subroutine z_oacc_ell_free_space + end subroutine z_oacc_ell_free_dev_space subroutine z_oacc_ell_free(a) use psb_base_mod @@ -174,7 +174,7 @@ contains class(psb_z_oacc_ell_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_z_ell_sparse_mat%free() return @@ -195,7 +195,7 @@ contains end function z_oacc_ell_sizeof - subroutine z_oacc_ell_sync_space(a) + subroutine z_oacc_ell_sync_dev_space(a) implicit none class(psb_z_oacc_ell_sparse_mat), intent(inout) :: a @@ -203,7 +203,7 @@ contains if (allocated(a%ja)) call acc_create(a%ja) if (allocated(a%irn)) call acc_create(a%irn) if (allocated(a%idiag)) call acc_create(a%idiag) - end subroutine z_oacc_ell_sync_space + end subroutine z_oacc_ell_sync_dev_space function z_oacc_ell_is_host(a) result(res) implicit none @@ -262,7 +262,7 @@ contains class(psb_z_oacc_ell_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_z_oacc_hll_mat_mod.F90 b/openacc/psb_z_oacc_hll_mat_mod.F90 index 4a657fd1..289b78ac 100644 --- a/openacc/psb_z_oacc_hll_mat_mod.F90 +++ b/openacc/psb_z_oacc_hll_mat_mod.F90 @@ -12,31 +12,31 @@ module psb_z_oacc_hll_mat_mod type, extends(psb_z_hll_sparse_mat) :: psb_z_oacc_hll_sparse_mat integer(psb_ipk_) :: devstate = is_host contains - procedure, nopass :: get_fmt => z_oacc_hll_get_fmt - procedure, pass(a) :: sizeof => z_oacc_hll_sizeof - procedure, pass(a) :: is_host => z_oacc_hll_is_host - procedure, pass(a) :: is_sync => z_oacc_hll_is_sync - procedure, pass(a) :: is_dev => z_oacc_hll_is_dev - procedure, pass(a) :: set_host => z_oacc_hll_set_host - procedure, pass(a) :: set_sync => z_oacc_hll_set_sync - procedure, pass(a) :: set_dev => z_oacc_hll_set_dev - procedure, pass(a) :: sync_space => z_oacc_hll_sync_space - procedure, pass(a) :: sync => z_oacc_hll_sync - procedure, pass(a) :: free_space => z_oacc_hll_free_space - procedure, pass(a) :: free => z_oacc_hll_free - procedure, pass(a) :: vect_mv => psb_z_oacc_hll_vect_mv - procedure, pass(a) :: in_vect_sv => psb_z_oacc_hll_inner_vect_sv - procedure, pass(a) :: csmm => psb_z_oacc_hll_csmm - procedure, pass(a) :: csmv => psb_z_oacc_hll_csmv - procedure, pass(a) :: scals => psb_z_oacc_hll_scals - procedure, pass(a) :: scalv => psb_z_oacc_hll_scal - procedure, pass(a) :: reallocate_nz => psb_z_oacc_hll_reallocate_nz - procedure, pass(a) :: allocate_mnnz => psb_z_oacc_hll_allocate_mnnz - procedure, pass(a) :: cp_from_coo => psb_z_oacc_hll_cp_from_coo - procedure, pass(a) :: cp_from_fmt => psb_z_oacc_hll_cp_from_fmt - procedure, pass(a) :: mv_from_coo => psb_z_oacc_hll_mv_from_coo - procedure, pass(a) :: mv_from_fmt => psb_z_oacc_hll_mv_from_fmt - procedure, pass(a) :: mold => psb_z_oacc_hll_mold + procedure, nopass :: get_fmt => z_oacc_hll_get_fmt + procedure, pass(a) :: sizeof => z_oacc_hll_sizeof + procedure, pass(a) :: is_host => z_oacc_hll_is_host + procedure, pass(a) :: is_sync => z_oacc_hll_is_sync + procedure, pass(a) :: is_dev => z_oacc_hll_is_dev + procedure, pass(a) :: set_host => z_oacc_hll_set_host + procedure, pass(a) :: set_sync => z_oacc_hll_set_sync + procedure, pass(a) :: set_dev => z_oacc_hll_set_dev + procedure, pass(a) :: sync_dev_space => z_oacc_hll_sync_dev_space + procedure, pass(a) :: sync => z_oacc_hll_sync + procedure, pass(a) :: free_dev_space => z_oacc_hll_free_dev_space + procedure, pass(a) :: free => z_oacc_hll_free + procedure, pass(a) :: vect_mv => psb_z_oacc_hll_vect_mv + procedure, pass(a) :: in_vect_sv => psb_z_oacc_hll_inner_vect_sv + procedure, pass(a) :: csmm => psb_z_oacc_hll_csmm + procedure, pass(a) :: csmv => psb_z_oacc_hll_csmv + procedure, pass(a) :: scals => psb_z_oacc_hll_scals + procedure, pass(a) :: scalv => psb_z_oacc_hll_scal + procedure, pass(a) :: reallocate_nz => psb_z_oacc_hll_reallocate_nz + procedure, pass(a) :: allocate_mnnz => psb_z_oacc_hll_allocate_mnnz + procedure, pass(a) :: cp_from_coo => psb_z_oacc_hll_cp_from_coo + procedure, pass(a) :: cp_from_fmt => psb_z_oacc_hll_cp_from_fmt + procedure, pass(a) :: mv_from_coo => psb_z_oacc_hll_mv_from_coo + procedure, pass(a) :: mv_from_fmt => psb_z_oacc_hll_mv_from_fmt + procedure, pass(a) :: mold => psb_z_oacc_hll_mold end type psb_z_oacc_hll_sparse_mat @@ -154,7 +154,7 @@ module psb_z_oacc_hll_mat_mod contains - subroutine z_oacc_hll_free_space(a) + subroutine z_oacc_hll_free_dev_space(a) use psb_base_mod implicit none class(psb_z_oacc_hll_sparse_mat), intent(inout) :: a @@ -167,7 +167,7 @@ contains if (allocated(a%hkoffs)) call acc_delete_finalize(a%hkoffs) return - end subroutine z_oacc_hll_free_space + end subroutine z_oacc_hll_free_dev_space subroutine z_oacc_hll_free(a) use psb_base_mod @@ -175,7 +175,7 @@ contains class(psb_z_oacc_hll_sparse_mat), intent(inout) :: a integer(psb_ipk_) :: info - call a%free_space() + call a%free_dev_space() call a%psb_z_hll_sparse_mat%free() return @@ -249,7 +249,7 @@ contains res = 'HLLOA' end function z_oacc_hll_get_fmt - subroutine z_oacc_hll_sync_space(a) + subroutine z_oacc_hll_sync_dev_space(a) implicit none class(psb_z_oacc_hll_sparse_mat), intent(inout) :: a @@ -258,7 +258,7 @@ contains if (allocated(a%irn)) call acc_create(a%irn) if (allocated(a%idiag)) call acc_create(a%idiag) if (allocated(a%hkoffs)) call acc_create(a%hkoffs) - end subroutine z_oacc_hll_sync_space + end subroutine z_oacc_hll_sync_dev_space subroutine z_oacc_hll_sync(a) @@ -267,7 +267,7 @@ contains class(psb_z_oacc_hll_sparse_mat), pointer :: tmpa integer(psb_ipk_) :: info - tmpa => a + tmpa => a if (a%is_dev()) then call acc_update_self(a%val) call acc_update_self(a%ja) diff --git a/openacc/psb_z_oacc_vect_mod.F90 b/openacc/psb_z_oacc_vect_mod.F90 index 5d6f07be..9e6bbb2d 100644 --- a/openacc/psb_z_oacc_vect_mod.F90 +++ b/openacc/psb_z_oacc_vect_mod.F90 @@ -15,50 +15,50 @@ module psb_z_oacc_vect_mod integer :: state = is_host contains - procedure, pass(x) :: get_nrows => z_oacc_get_nrows - procedure, nopass :: get_fmt => z_oacc_get_fmt - - procedure, pass(x) :: all => z_oacc_vect_all - procedure, pass(x) :: zero => z_oacc_zero - procedure, pass(x) :: asb_m => z_oacc_asb_m - procedure, pass(x) :: sync => z_oacc_sync - procedure, pass(x) :: sync_space => z_oacc_sync_space - procedure, pass(x) :: bld_x => z_oacc_bld_x - procedure, pass(x) :: bld_mn => z_oacc_bld_mn - procedure, pass(x) :: free => z_oacc_vect_free - procedure, pass(x) :: ins_a => z_oacc_ins_a - procedure, pass(x) :: ins_v => z_oacc_ins_v - procedure, pass(x) :: is_host => z_oacc_is_host - procedure, pass(x) :: is_dev => z_oacc_is_dev - procedure, pass(x) :: is_sync => z_oacc_is_sync - procedure, pass(x) :: set_host => z_oacc_set_host - procedure, pass(x) :: set_dev => z_oacc_set_dev - procedure, pass(x) :: set_sync => z_oacc_set_sync - procedure, pass(x) :: set_scal => z_oacc_set_scal - - procedure, pass(x) :: gthzv_x => z_oacc_gthzv_x - procedure, pass(x) :: gthzbuf_x => z_oacc_gthzbuf - procedure, pass(y) :: sctb => z_oacc_sctb - procedure, pass(y) :: sctb_x => z_oacc_sctb_x - procedure, pass(y) :: sctb_buf => z_oacc_sctb_buf - - procedure, pass(x) :: get_size => z_oacc_get_size - - procedure, pass(x) :: dot_v => z_oacc_vect_dot - procedure, pass(x) :: dot_a => z_oacc_dot_a - procedure, pass(y) :: axpby_v => z_oacc_axpby_v - procedure, pass(y) :: axpby_a => z_oacc_axpby_a - procedure, pass(z) :: upd_xyz => z_oacc_upd_xyz - procedure, pass(y) :: mlt_a => z_oacc_mlt_a - procedure, pass(z) :: mlt_a_2 => z_oacc_mlt_a_2 - procedure, pass(y) :: mlt_v => psb_z_oacc_mlt_v - procedure, pass(z) :: mlt_v_2 => psb_z_oacc_mlt_v_2 - procedure, pass(x) :: scal => z_oacc_scal - procedure, pass(x) :: nrm2 => z_oacc_nrm2 - procedure, pass(x) :: amax => z_oacc_amax - procedure, pass(x) :: asum => z_oacc_asum - procedure, pass(x) :: absval1 => z_oacc_absval1 - procedure, pass(x) :: absval2 => z_oacc_absval2 + procedure, pass(x) :: get_nrows => z_oacc_get_nrows + procedure, nopass :: get_fmt => z_oacc_get_fmt + + procedure, pass(x) :: all => z_oacc_vect_all + procedure, pass(x) :: zero => z_oacc_zero + procedure, pass(x) :: asb_m => z_oacc_asb_m + procedure, pass(x) :: sync => z_oacc_sync + procedure, pass(x) :: sync_dev_space => z_oacc_sync_dev_space + procedure, pass(x) :: bld_x => z_oacc_bld_x + procedure, pass(x) :: bld_mn => z_oacc_bld_mn + procedure, pass(x) :: free => z_oacc_vect_free + procedure, pass(x) :: ins_a => z_oacc_ins_a + procedure, pass(x) :: ins_v => z_oacc_ins_v + procedure, pass(x) :: is_host => z_oacc_is_host + procedure, pass(x) :: is_dev => z_oacc_is_dev + procedure, pass(x) :: is_sync => z_oacc_is_sync + procedure, pass(x) :: set_host => z_oacc_set_host + procedure, pass(x) :: set_dev => z_oacc_set_dev + procedure, pass(x) :: set_sync => z_oacc_set_sync + procedure, pass(x) :: set_scal => z_oacc_set_scal + + procedure, pass(x) :: gthzv_x => z_oacc_gthzv_x + procedure, pass(x) :: gthzbuf_x => z_oacc_gthzbuf + procedure, pass(y) :: sctb => z_oacc_sctb + procedure, pass(y) :: sctb_x => z_oacc_sctb_x + procedure, pass(y) :: sctb_buf => z_oacc_sctb_buf + + procedure, pass(x) :: get_size => z_oacc_get_size + + procedure, pass(x) :: dot_v => z_oacc_vect_dot + procedure, pass(x) :: dot_a => z_oacc_dot_a + procedure, pass(y) :: axpby_v => z_oacc_axpby_v + procedure, pass(y) :: axpby_a => z_oacc_axpby_a + procedure, pass(z) :: upd_xyz => z_oacc_upd_xyz + procedure, pass(y) :: mlt_a => z_oacc_mlt_a + procedure, pass(z) :: mlt_a_2 => z_oacc_mlt_a_2 + procedure, pass(y) :: mlt_v => psb_z_oacc_mlt_v + procedure, pass(z) :: mlt_v_2 => psb_z_oacc_mlt_v_2 + procedure, pass(x) :: scal => z_oacc_scal + procedure, pass(x) :: nrm2 => z_oacc_nrm2 + procedure, pass(x) :: amax => z_oacc_amax + procedure, pass(x) :: asum => z_oacc_asum + procedure, pass(x) :: absval1 => z_oacc_absval1 + procedure, pass(x) :: absval2 => z_oacc_absval2 final :: z_oacc_final_vect_free end type psb_z_vect_oacc @@ -117,7 +117,7 @@ contains integer(psb_ipk_) :: i n = min(size(x%v), size(y%v)) - select type (yy => y) + select type (yy => y) class is (psb_z_vect_oacc) if (x%is_host()) call x%sync() if (yy%is_host()) call yy%sync() @@ -287,7 +287,7 @@ contains info = psb_success_ - select type(xx => x) + select type(xx => x) type is (psb_z_vect_oacc) if ((beta /= zzero) .and. y%is_host()) call y%sync() if (xx%is_host()) call xx%sync() @@ -354,11 +354,11 @@ contains info = psb_success_ gpu_done = .false. - select type(xx => x) + select type(xx => x) class is (psb_z_vect_oacc) - select type(yy => y) + select type(yy => y) class is (psb_z_vect_oacc) - select type(zz => z) + select type(zz => z) class is (psb_z_vect_oacc) if ((beta /= zzero) .and. yy%is_host()) call yy%sync() if ((delta /= zzero) .and. zz%is_host()) call zz%sync() @@ -405,7 +405,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() if (y%is_host()) call y%sync() @@ -432,7 +432,7 @@ contains class(psb_z_vect_oacc) :: y integer(psb_ipk_) :: info, ni - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -485,7 +485,7 @@ contains return end if - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -512,7 +512,7 @@ contains info = 0 - select type(ii => idx) + select type(ii => idx) class is (psb_i_vect_oacc) if (ii%is_host()) call ii%sync() class default @@ -544,9 +544,9 @@ contains if (psb_errstatus_fatal()) return done_oacc = .false. - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) - select type(vval => val) + select type(vval => val) type is (psb_z_vect_oacc) if (vval%is_host()) call vval%sync() if (virl%is_host()) call virl%sync() @@ -561,11 +561,11 @@ contains end select if (.not.done_oacc) then - select type(virl => irl) + select type(virl => irl) type is (psb_i_vect_oacc) if (virl%is_dev()) call virl%sync() end select - select type(vval => val) + select type(vval => val) type is (psb_z_vect_oacc) if (vval%is_dev()) call vval%sync() end select @@ -611,7 +611,7 @@ contains call psb_errpush(info, 'z_oacc_bld_mn', i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine z_oacc_bld_mn @@ -633,7 +633,7 @@ contains end if x%v(:) = this(:) call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine z_oacc_bld_x @@ -719,7 +719,7 @@ contains res = zzero !write(0,*) 'dot_v' - select type(yy => y) + select type(yy => y) type is (psb_z_base_vect_type) if (x%is_dev()) call x%sync() res = ddot(n, x%v, 1, yy%v, 1) @@ -762,11 +762,11 @@ contains end function z_oacc_dot_a - subroutine z_oacc_sync_space(x) + subroutine z_oacc_sync_dev_space(x) implicit none class(psb_z_vect_oacc), intent(inout) :: x if (allocated(x%v)) call acc_create(x%v) - end subroutine z_oacc_sync_space + end subroutine z_oacc_sync_dev_space subroutine z_oacc_sync(x) implicit none @@ -840,7 +840,7 @@ contains i_err=(/n, n, n, n, n/)) end if call x%set_host() - call x%sync_space() + call x%sync_dev_space() end subroutine z_oacc_vect_all subroutine z_oacc_final_vect_free(x)