Modified psb_config and machinery for better C interfacing

gpucinterfaces
sfilippone 4 months ago
parent fd58bb581e
commit 3965c3a526

@ -10,11 +10,7 @@ dirs:
(if test ! -d modules ; then mkdir modules; fi;)
mods: basemods utilmods precmods linslvmods cbindmods extmods $(CUDAMODS) $(OACCMODS)
precmods utilmods extmods: basemods
linslvmods: precmods
cbindmods: basemods precmods linslvmods utilmods extmods $(CUDAMODS)
oaccmods: extmods
cudamods: extmods
basemods:
$(MAKE) -C base mods
precmods: basemods
@ -23,7 +19,7 @@ linslvmods: precmods
$(MAKE) -C linsolve mods
utilmods: basemods
$(MAKE) -C util mods
cbindmods: basemods precmods linslvmods utilmods $(CUDAMODS)
cbindmods: basemods precmods linslvmods utilmods extmods $(CUDAMODS)
$(MAKE) -C cbind objs
extmods: basemods
$(MAKE) -C ext mods

@ -39,22 +39,30 @@ module psb_desc_const_mod
!
! Communication, prolongation & restriction
!
integer(psb_ipk_), parameter :: psb_nohalo_=0, psb_halo_=1
integer(psb_ipk_), parameter :: psb_nohalo_ = 0
integer(psb_ipk_), parameter :: psb_halo_ = 1
! For overlap update.
integer(psb_ipk_), parameter :: psb_none_=0, psb_sum_=1
integer(psb_ipk_), parameter :: psb_avg_=2, psb_square_root_=3
integer(psb_ipk_), parameter :: psb_setzero_=4
integer(psb_ipk_), parameter :: psb_none_ = 0
integer(psb_ipk_), parameter :: psb_sum_ = 1
integer(psb_ipk_), parameter :: psb_avg_ = 2
integer(psb_ipk_), parameter :: psb_square_root_ = 3
integer(psb_ipk_), parameter :: psb_setzero_ = 4
! The following are bit fields.
integer(psb_ipk_), parameter :: psb_swap_send_=1, psb_swap_recv_=2
integer(psb_ipk_), parameter :: psb_swap_sync_=4, psb_swap_mpi_=8
integer(psb_ipk_), parameter :: psb_collective_start_=1, psb_collective_end_=2
integer(psb_ipk_), parameter :: psb_collective_sync_=4
integer(psb_ipk_), parameter :: psb_swap_send_ = 1
integer(psb_ipk_), parameter :: psb_swap_recv_ = 2
integer(psb_ipk_), parameter :: psb_swap_sync_ = 4
integer(psb_ipk_), parameter :: psb_swap_mpi_ = 8
integer(psb_ipk_), parameter :: psb_collective_start_ = 1
integer(psb_ipk_), parameter :: psb_collective_end_ = 2
integer(psb_ipk_), parameter :: psb_collective_sync_ = 4
! Choice among lists on which to base data exchange
integer(psb_ipk_), parameter :: psb_no_comm_=-1
integer(psb_ipk_), parameter :: psb_comm_halo_=1, psb_comm_ovr_=2
integer(psb_ipk_), parameter :: psb_comm_ext_=3, psb_comm_mov_=4
integer(psb_ipk_), parameter :: psb_no_comm_ = -1
integer(psb_ipk_), parameter :: psb_comm_halo_ = 1
integer(psb_ipk_), parameter :: psb_comm_ovr_ = 2
integer(psb_ipk_), parameter :: psb_comm_ext_ = 3
integer(psb_ipk_), parameter :: psb_comm_mov_ = 4
! Types of mapping between descriptors.
integer(psb_ipk_), parameter :: psb_map_xhal_ = 123
integer(psb_ipk_), parameter :: psb_map_asov_ = psb_map_xhal_+1

@ -14,6 +14,27 @@
#define PSB_DUPL_OVWRT @PSBLASDUPOVW@
#define PSB_DUPL_ERR @PSBLASDUPERR@
#define PSB_DUPL_DEF @PSBLASDUPDEF@
#define PSB_UPD_SRCH @PSBLASUPDSRC@
#define PSB_UPD_PERM @PSBLASUPDPRM@
#define PSB_UPD_DFLT @PSBLASUPDDEF@
#define PSB_SWAP_SEND @PSBSWPSND@
#define PSB_SWAP_RECV @PSBSWPRCV@
#define PSB_SWAP_SYNC @PSBSWPSYN@
#define PSB_SWAP_MPI @PSBSWPMPI@
#define PSB_COLLECTIVE_START @PSBCLCSTR@
#define PSB_COLLECTIVE_END @PSBCLCEND@
#define PSB_COLLECTIVE_SYNC @PSBCLCSYN@
#define PSB_NONE @PSBNONE@
#define PSB_SUM @PSBSUM@
#define PSB_AVG @PSBAVG@
#define PSB_SQUARE_ROOT @PSBSQRT@
#define PSB_SETZERO @PSBSETZ@
#define PSB_MATBLD_NOREMOTE @PSBLASBLDNOR@
#define PSB_MATBLD_REMOTE @PSBLASBLDRMT@

@ -102,16 +102,7 @@ extern "C" {
psb_i_t psb_c_g2l(psb_c_descriptor *cdh,psb_l_t gindex,bool cowned);
/* legal values for upd argument */
#define psb_upd_srch_ 98764
#define psb_upd_perm_ 98765
#define psb_upd_def_ psb_upd_srch_
/* legal values for dupl argument */
#define psb_dupl_ovwrt_ 0
#define psb_dupl_add_ 1
#define psb_dupl_err_ 2
#define psb_dupl_def_ psb_dupl_ovwrt_
/* legal values for afmt */
#define PSB_AFMT_CSR "CSR"
#define PSB_AFMT_CSC "CSC"
@ -123,6 +114,17 @@ extern "C" {
#define psb_Trans_ "T"
#define psb_ConjTrans_ "C"
#if 0
/* legal values for upd argument */
#define psb_upd_srch_ 98764
#define psb_upd_perm_ 98765
#define psb_upd_def_ psb_upd_srch_
/* legal values for dupl argument */
#define psb_dupl_ovwrt_ 0
#define psb_dupl_add_ 1
#define psb_dupl_err_ 2
#define psb_dupl_def_ psb_dupl_ovwrt_
/* legal values for halo swap modes argument */
#define psb_swap_send_ 1
#define psb_swap_recv_ 2
@ -135,7 +137,7 @@ extern "C" {
#define psb_avg_ 2
#define psb_square_root_ 3
#define psb_setzero_ 4
#endif
#ifdef __cplusplus
}

@ -102,16 +102,7 @@ extern "C" {
psb_i_t psb_c_g2l(psb_c_descriptor *cdh,psb_l_t gindex,bool cowned);
/* legal values for upd argument */
#define psb_upd_srch_ 98764
#define psb_upd_perm_ 98765
#define psb_upd_def_ psb_upd_srch_
/* legal values for dupl argument */
#define psb_dupl_ovwrt_ 0
#define psb_dupl_add_ 1
#define psb_dupl_err_ 2
#define psb_dupl_def_ psb_dupl_ovwrt_
/* legal values for afmt */
#define PSB_AFMT_CSR "CSR"
#define PSB_AFMT_CSC "CSC"
@ -123,6 +114,17 @@ extern "C" {
#define psb_Trans_ "T"
#define psb_ConjTrans_ "C"
#if 0
/* legal values for upd argument */
#define psb_upd_srch_ 98764
#define psb_upd_perm_ 98765
#define psb_upd_def_ psb_upd_srch_
/* legal values for dupl argument */
#define psb_dupl_ovwrt_ 0
#define psb_dupl_add_ 1
#define psb_dupl_err_ 2
#define psb_dupl_def_ psb_dupl_ovwrt_
/* legal values for halo swap modes argument */
#define psb_swap_send_ 1
#define psb_swap_recv_ 2
@ -135,7 +137,7 @@ extern "C" {
#define psb_avg_ 2
#define psb_square_root_ 3
#define psb_setzero_ 4
#endif
#ifdef __cplusplus
}

52
configure vendored

@ -691,8 +691,23 @@ CINTMETIS
CHAVEMETIS
CHAVE_OPENMP
CSERIALMPI
PSBCLCSYN
PSBCLCEND
PSBCLCSTR
PSBSETZ
PSBSQRT
PSBAVG
PSBSUM
PSBNONE
PSBSWPMPI
PSBSWPSYN
PSBSWPRCV
PSBSWPSND
PSBLASBLDRMT
PSBLASBLDNOR
PSBLASUPDDEF
PSBLASUPDPRM
PSBLASUPDSRC
PSBLASDUPDEF
PSBLASDUPERR
PSBLASDUPOVW
@ -8825,10 +8840,27 @@ PSBLASDUPNUL=`cat $CFILE| grep dupl_null | $AWK '{print $6;}'`;
PSBLASDUPADD=`cat $CFILE| grep "psb_dupl_add_ =" | $AWK '{print $6;}'`;
PSBLASDUPOVW=`cat $CFILE| grep dupl_ovwrt| $AWK '{print $6;}'`;
PSBLASDUPERR=`cat $CFILE| grep dupl_err| $AWK '{print $6;}'`;
PSBLASDUPDEF=`cat $CFILE| grep dupl_def| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$//`;
PSBLASDUPDEF=`cat $CFILE| grep dupl_def| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$// `;
PSBLASUPDSRC=`cat $CFILE| grep "psb_upd_srch_ ="| $AWK '{print $6;}' `;
PSBLASUPDPRM=`cat $CFILE| grep "psb_upd_perm_ ="| $AWK '{print $6;}' `;
PSBLASUPDDEF=`cat $CFILE| grep "psb_upd_dflt_ ="| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$//`;
PSBLASBLDNOR=`cat $CFILE| grep matbld_noremote| $AWK '{print $6;}'`;
PSBLASBLDRMT=`cat $CFILE| grep matbld_remote| $AWK '{print $6;}'`;
CFILE="base/modules/desc/psb_desc_const_mod.f90";
PSBSWPSND=`cat $CFILE| grep swap_send| $AWK '{print $6;}'`;
PSBSWPRCV=`cat $CFILE| grep swap_recv| $AWK '{print $6;}'`;
PSBSWPSYN=`cat $CFILE| grep swap_sync| $AWK '{print $6;}'`;
PSBSWPMPI=`cat $CFILE| grep swap_mpi| $AWK '{print $6;}'`;
PSBNONE=`cat $CFILE| grep psb_none| $AWK '{print $6;}'`;
PSBSUM=`cat $CFILE| grep psb_sum| $AWK '{print $6;}'`;
PSBAVG=`cat $CFILE| grep psb_avg| $AWK '{print $6;}'`;
PSBSQRT=`cat $CFILE| grep square_root| $AWK '{print $6;}'`;
PSBSETZ=`cat $CFILE| grep psb_setzero| $AWK '{print $6;}'`;
PSBCLCSTR=`cat $CFILE| grep collective_start| $AWK '{print $6;}'`;
PSBCLCEND=`cat $CFILE| grep collective_end| $AWK '{print $6;}'`;
PSBCLCSYN=`cat $CFILE| grep collective_sync| $AWK '{print $6;}'`;
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: version $PSBLASSTRING" >&5
printf "%s\n" " version $PSBLASSTRING" >&6; }
@ -11778,6 +11810,24 @@ FDEFINES=$(PSBFDEFINES)

@ -699,10 +699,27 @@ PSBLASDUPNUL=`cat $CFILE| grep dupl_null | $AWK '{print $6;}'`;
PSBLASDUPADD=`cat $CFILE| grep "psb_dupl_add_ =" | $AWK '{print $6;}'`;
PSBLASDUPOVW=`cat $CFILE| grep dupl_ovwrt| $AWK '{print $6;}'`;
PSBLASDUPERR=`cat $CFILE| grep dupl_err| $AWK '{print $6;}'`;
PSBLASDUPDEF=`cat $CFILE| grep dupl_def| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$//`;
PSBLASDUPDEF=`cat $CFILE| grep dupl_def| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$// `;
PSBLASUPDSRC=`cat $CFILE| grep "psb_upd_srch_ ="| $AWK '{print $6;}' `;
PSBLASUPDPRM=`cat $CFILE| grep "psb_upd_perm_ ="| $AWK '{print $6;}' `;
PSBLASUPDDEF=`cat $CFILE| grep "psb_upd_dflt_ ="| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$//`;
PSBLASBLDNOR=`cat $CFILE| grep matbld_noremote| $AWK '{print $6;}'`;
PSBLASBLDRMT=`cat $CFILE| grep matbld_remote| $AWK '{print $6;}'`;
CFILE="base/modules/desc/psb_desc_const_mod.f90";
PSBSWPSND=`cat $CFILE| grep swap_send| $AWK '{print $6;}'`;
PSBSWPRCV=`cat $CFILE| grep swap_recv| $AWK '{print $6;}'`;
PSBSWPSYN=`cat $CFILE| grep swap_sync| $AWK '{print $6;}'`;
PSBSWPMPI=`cat $CFILE| grep swap_mpi| $AWK '{print $6;}'`;
PSBNONE=`cat $CFILE| grep psb_none| $AWK '{print $6;}'`;
PSBSUM=`cat $CFILE| grep psb_sum| $AWK '{print $6;}'`;
PSBAVG=`cat $CFILE| grep psb_avg| $AWK '{print $6;}'`;
PSBSQRT=`cat $CFILE| grep square_root| $AWK '{print $6;}'`;
PSBSETZ=`cat $CFILE| grep psb_setzero| $AWK '{print $6;}'`;
PSBCLCSTR=`cat $CFILE| grep collective_start| $AWK '{print $6;}'`;
PSBCLCEND=`cat $CFILE| grep collective_end| $AWK '{print $6;}'`;
PSBCLCSYN=`cat $CFILE| grep collective_sync| $AWK '{print $6;}'`;
AC_MSG_RESULT([ version $PSBLASSTRING])
###############################################################################
@ -1084,9 +1101,27 @@ AC_SUBST(PSBLASDUPADD)
AC_SUBST(PSBLASDUPOVW)
AC_SUBST(PSBLASDUPERR)
AC_SUBST(PSBLASDUPDEF)
AC_SUBST(PSBLASDUPDEF)
AC_SUBST(PSBLASUPDSRC)
AC_SUBST(PSBLASUPDPRM)
AC_SUBST(PSBLASUPDDEF)
AC_SUBST(PSBLASBLDNOR)
AC_SUBST(PSBLASBLDRMT)
AC_SUBST(PSBSWPSND)
AC_SUBST(PSBSWPRCV)
AC_SUBST(PSBSWPSYN)
AC_SUBST(PSBSWPMPI)
AC_SUBST(PSBNONE)
AC_SUBST(PSBSUM)
AC_SUBST(PSBAVG)
AC_SUBST(PSBSQRT)
AC_SUBST(PSBSETZ)
AC_SUBST(PSBCLCSTR)
AC_SUBST(PSBCLCEND)
AC_SUBST(PSBCLCSYN)
AC_SUBST(CSERIALMPI)
AC_SUBST(CHAVE_OPENMP)
AC_SUBST(CHAVEMETIS)

Loading…
Cancel
Save