Skip to content

Commit

Permalink
separate compilation units for different domain wall
Browse files Browse the repository at this point in the history
  • Loading branch information
pittlerf committed Nov 7, 2024
1 parent cb84d79 commit a1fb649
Show file tree
Hide file tree
Showing 12 changed files with 161 additions and 51 deletions.
84 changes: 42 additions & 42 deletions lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -194,16 +194,43 @@ function(check_bit number bit)
set(BIT_CHECK "${result}" PARENT_SCOPE)
endfunction()

set(QUDA_DSLASH_FILENAME_LIST "")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_wilson")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_wilson_clover")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_wilson_clover_preconditioned")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_twisted_mass")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_twisted_clover")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_twisted_clover_preconditioned")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_ndeg_twisted_mass")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_ndeg_twisted_mass_preconditioned")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_ndeg_twisted_clover")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_ndeg_twisted_clover_preconditioned")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_staggered")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_improved_staggered")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_domain_wall_4d")
list(APPEND QUDA_DSLASH_FILENAME_LIST "dslash_domain_wall_5d")

set(QUDA_DSLASH_PREC_LIST "")
set(QUDA_DSLASH_NCOLOR_LIST "3")
set(QUDA_DSLASH_DDARG_LIST "DDNo")
set(QUDA_DSLASH_RECONI_LIST "")
set(QUDA_DSLASH_DISTANCE_LIST "false")
set(QUDA_DSLASH_DWTYPE_LIST "")

if(QUDA_DIRAC_DISTANCE_PRECONDITIONING)
list(APPEND QUDA_DSLASH_DISTANCE_LIST "true")
endif()

if(QUDA_DIRAC_DOMAIN_WALL)
list(APPEND QUDA_DSLASH_DWTYPE_LIST "DSLASH5_MOBIUS_PRE")
list(APPEND QUDA_DSLASH_DWTYPE_LIST "DSLASH5_MOBIUS")
list(APPEND QUDA_DSLASH_DWTYPE_LIST "M5_INV_MOBIUS")
list(APPEND QUDA_DSLASH_DWTYPE_LIST "M5_INV_MOBIUS_M5_PRE")
list(APPEND QUDA_DSLASH_DWTYPE_LIST "M5_PRE_MOBIUS_M5_INV")
list(APPEND QUDA_DSLASH_DWTYPE_LIST "M5_INV_MOBIUS_M5_INV_DAG")
list(APPEND QUDA_DSLASH_DWTYPE_LIST "DSLASH5_MOBIUS_PRE_M5_MOB")
endif()

check_bit(${QUDA_PRECISION} 0)
if(BIT_CHECK)
list(APPEND QUDA_DSLASH_PREC_LIST "QUARTER")
Expand Down Expand Up @@ -244,60 +271,32 @@ if(BIT_CHECK)
list(APPEND QUDA_DSLASH_DDARG_LIST "DDRedBlack")
endif()

message(STATUS "QUDA_DSLASH_FILENAME_LIST=${QUDA_DSLASH_FILENAME_LIST}")
message(STATUS "QUDA_DSLASH_PREC_LIST=${QUDA_DSLASH_PREC_LIST}")
message(STATUS "QUDA_DSLASH_NCOLOR_LIST=${QUDA_DSLASH_NCOLOR_LIST}")
message(STATUS "QUDA_DSLASH_DDARG_LIST=${QUDA_DSLASH_DDARG_LIST}")
message(STATUS "QUDA_DSLASH_RECONI_LIST=${QUDA_DSLASH_RECONI_LIST}")
message(STATUS "QUDA_DSLASH_DISTANCE_LIST=${QUDA_DSLASH_DISTANCE_LIST}")
message(STATUS "QUDA_DSLASH_DWTYPE_LIST=${QUDA_DSLASH_DWTYPE_LIST}")

foreach(QUDA_DSLASH_PREC ${QUDA_DSLASH_PREC_LIST})
string(TOLOWER "${QUDA_DSLASH_PREC}" QUDA_DSLASH_PREC_LOWER)
foreach(QUDA_DSLASH_NCOLOR ${QUDA_DSLASH_NCOLOR_LIST})
foreach(QUDA_DSLASH_DDARG ${QUDA_DSLASH_DDARG_LIST})
foreach(QUDA_DSLASH_RECONI ${QUDA_DSLASH_RECONI_LIST})
foreach(QUDA_DSLASH_DISTANCE ${QUDA_DSLASH_DISTANCE_LIST})
set(TMP_FILENAME "dslash_domain_wall_5d_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_domain_wall_5d.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_domain_wall_4d_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_domain_wall_4d.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_staggered_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_staggered.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_improved_staggered_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_improved_staggered.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_wilson_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_wilson.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_twisted_clover_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_twisted_clover.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_wilson_clover_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_wilson_clover.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_wilson_clover_preconditioned_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_wilson_clover_preconditioned.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_twisted_mass_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_twisted_mass.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_ndeg_twisted_clover_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_ndeg_twisted_clover.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_ndeg_twisted_clover_preconditioned.${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_ndeg_twisted_clover_preconditioned.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_ndeg_twisted_mass_preconditioned.${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_ndeg_twisted_mass_preconditioned.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_ndeg_twisted_mass_${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_ndeg_twisted_mass.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(TMP_FILENAME "dslash_twisted_clover_preconditioned.${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}.cu")
configure_file(dslash_twisted_clover_preconditioned.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
set(DSLASH_SPECS "${QUDA_DSLASH_PREC_LOWER}_nc_${QUDA_DSLASH_NCOLOR}_${QUDA_DSLASH_DDARG}_recon${QUDA_DSLASH_RECONI}_dist-${QUDA_DSLASH_DISTANCE}")
foreach(QUDA_DSLASH_FILENAME ${QUDA_DSLASH_FILENAME_LIST})
set(TMP_FILENAME "${QUDA_DSLASH_FILENAME}_${DSLASH_SPECS}.cu")
configure_file(${QUDA_DSLASH_FILENAME}.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
endforeach()
foreach(QUDA_DSLASH_DWTYPE ${QUDA_DSLASH_DWTYPE_LIST})
string(TOLOWER "${QUDA_DSLASH_DWTYPE}" QUDA_DSLASH_DWTYPE_LOWER)
set(TMP_FILENAME "dslash_domain_wall_4d_${QUDA_DSLASH_DWTYPE_LOWER}_${DSLASH_SPECS}.cu")
configure_file(dslash_domain_wall_4d_fused_m5.in.cu ${TMP_FILENAME} @ONLY)
list(PREPEND QUDA_CU_OBJS ${TMP_FILENAME})
endforeach()
endforeach()
endforeach()
endforeach()
Expand Down Expand Up @@ -605,6 +604,7 @@ endif()
# set which precisions to enable
target_compile_definitions(quda PUBLIC QUDA_PRECISION=${QUDA_PRECISION})
target_compile_definitions(quda PUBLIC QUDA_RECONSTRUCT=${QUDA_RECONSTRUCT})
target_compile_definitions(quda PUBLIC QUDA_DSLASH5TYPE=${QUDA_DSLASH5TYPE})

if(QUDA_ENABLE_MMA)
target_compile_definitions(quda PUBLIC QUDA_ENABLE_MMA)
Expand Down
11 changes: 9 additions & 2 deletions lib/dslash_domain_wall_4d_fused_m5.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,20 @@ namespace quda
template <Dslash5Type...> struct Dslash5TypeList {
};

template <bool distance_pc> struct DistanceType {
};

template <typename Float, int nColor, typename DDArg, QudaReconstructType recon> struct DomainWall4DApplyFusedM5 {

template <Dslash5Type dslash5_type_impl, Dslash5Type... N>
template <bool distance_pc, Dslash5Type dslash5_type_impl, Dslash5Type... N>
DomainWall4DApplyFusedM5(cvector_ref<ColorSpinorField> &out, cvector_ref<const ColorSpinorField> &in,
cvector_ref<const ColorSpinorField> &x, const GaugeField &U,
cvector_ref<ColorSpinorField> &y, const Complex *b_5, const Complex *c_5, double a,
double m_5, int parity, bool dagger, const int *comm_override, double m_f,
Dslash5TypeList<dslash5_type_impl, N...>, TimeProfile &profile)
DistanceType<distance_pc>, Dslash5TypeList<dslash5_type_impl, N...>, TimeProfile &profile)
#ifdef SIGNATURE_ONLY
;
#else
{
#ifdef NVSHMEM_COMMS
errorQuda("Fused Mobius/DWF-4D kernels do not currently work with NVSHMEM.");
Expand All @@ -140,6 +146,7 @@ namespace quda
dslash::DslashPolicyTune<decltype(dwf)> policy(dwf, in, halo, profile);
#endif
}
#endif
};

// use custom instantiate to deal with field splitting if needed
Expand Down
28 changes: 28 additions & 0 deletions lib/dslash_domain_wall_4d_fused_m5.in.cu
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#include <dslash_wilson_clover_preconditioned.hpp>

/**
This is the Wilson-clover linear operator
*/

namespace quda
{

constexpr QudaPrecision precision = QUDA_ @QUDA_DSLASH_PREC @_PRECISION;
constexpr int nColor = @QUDA_DSLASH_NCOLOR @;
constexpr int reconI = @QUDA_DSLASH_RECONI @;
constexpr bool distance_pc = @QUDA_DSLASH_DISTANCE @;

constexpr Dslash5Type dslash5_type = Dslash5Type::@QUDA_DSLASH_DWTYPE @;

typedef @QUDA_DSLASH_DDARG @DDArg;
typedef precision_type_mapper<precision>::type Float;

template struct DomainWall4DApplyFusedM5<Float, nColor, DDArg, ReconstructWilson::recon[reconI]>;

template DomainWall4DApplyFusedM5<Float, nColor, DDArg, ReconstructWilson::recon[reconI]>::DomainWall4DFusedM5Apply(
cvector_ref<ColorSpinorField> &out, cvector_ref<const ColorSpinorField> &in, cvector_ref<const ColorSpinorField> &x,
const GaugeField &U, cvector_ref<ColorSpinorField> &y, const Complex *b_5, const Complex *c_5, double a, double m_5,
int parity, bool dagger, const int *comm_override, double m_f, Dslash5TypeList<dslash5_type>,
DistanceType<distance_pc>, TimeProfile &profile);

} // namespace quda
5 changes: 4 additions & 1 deletion lib/dslash_domain_wall_4d_m5inv.cu
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#define SIGNATURE_ONLY
#include <dslash_domain_wall_4d_fused_m5.hpp>
#undef SIGNATURE_ONLY

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
Expand All @@ -16,9 +18,10 @@ namespace quda
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy = DistanceType<false>();
auto dummy_list = Dslash5TypeList<Dslash5Type::M5_INV_MOBIUS>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
dummy, dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
Expand Down
27 changes: 27 additions & 0 deletions lib/dslash_domain_wall_4d_m5inv.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#include <dslash_domain_wall_4d_fused_m5.hpp>

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
*/

namespace quda
{

// Apply the 4-d preconditioned domain-wall Dslash operator
// i.e. out(x) = M*in = in(x) + a*\sum_mu U_{-\mu}(x)in(x+mu) + U^\dagger_mu(x-mu)in(x-mu)
// ... and then m5inv
void ApplyDomainWall4DM5inv(cvector_ref<ColorSpinorField> &out, cvector_ref<const ColorSpinorField> &in,
const GaugeField &U, double a, double m_5, const Complex *b_5, const Complex *c_5,
cvector_ref<const ColorSpinorField> &x, cvector_ref<ColorSpinorField> &y, int parity,
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy_list = Dslash5TypeList<Dslash5Type::M5_INV_MOBIUS>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
}

} // namespace quda
27 changes: 27 additions & 0 deletions lib/dslash_domain_wall_4d_m5inv.in.cu
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#include <dslash_domain_wall_4d_fused_m5.hpp>

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
*/

namespace quda
{

// Apply the 4-d preconditioned domain-wall Dslash operator
// i.e. out(x) = M*in = in(x) + a*\sum_mu U_{-\mu}(x)in(x+mu) + U^\dagger_mu(x-mu)in(x-mu)
// ... and then m5inv
void ApplyDomainWall4DM5inv(cvector_ref<ColorSpinorField> &out, cvector_ref<const ColorSpinorField> &in,
const GaugeField &U, double a, double m_5, const Complex *b_5, const Complex *c_5,
cvector_ref<const ColorSpinorField> &x, cvector_ref<ColorSpinorField> &y, int parity,
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy_list = Dslash5TypeList<Dslash5Type::M5_INV_MOBIUS>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
}

} // namespace quda
5 changes: 4 additions & 1 deletion lib/dslash_domain_wall_4d_m5inv_m5inv.cu
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#define SIGNATURE_ONLY
#include <dslash_domain_wall_4d_fused_m5.hpp>
#undef SIGNATURE_ONLY

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
Expand All @@ -16,9 +18,10 @@ namespace quda
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy = DistanceType<false>();
auto dummy_list = Dslash5TypeList<Dslash5Type::M5_INV_MOBIUS_M5_INV_DAG>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
dummy, dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
Expand Down
5 changes: 4 additions & 1 deletion lib/dslash_domain_wall_4d_m5inv_m5pre.cu
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#define SIGNATURE_ONLY
#include <dslash_domain_wall_4d_fused_m5.hpp>
#undef SIGNATURE_ONLY

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
Expand All @@ -16,9 +18,10 @@ namespace quda
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy = DistanceType<false>();
auto dummy_list = Dslash5TypeList<Dslash5Type::M5_INV_MOBIUS_M5_PRE>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
dummy, dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
Expand Down
5 changes: 4 additions & 1 deletion lib/dslash_domain_wall_4d_m5mob.cu
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#define SIGNATURE_ONLY
#include <dslash_domain_wall_4d_fused_m5.hpp>
#undef SIGNATURE_ONLY

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
Expand All @@ -16,9 +18,10 @@ namespace quda
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy = DistanceType<false>();
auto dummy_list = Dslash5TypeList<Dslash5Type::DSLASH5_MOBIUS>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
dummy, dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
Expand Down
5 changes: 4 additions & 1 deletion lib/dslash_domain_wall_4d_m5pre.cu
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#define SIGNATURE_ONLY
#include <dslash_domain_wall_4d_fused_m5.hpp>
#undef SIGNATURE_ONLY

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
Expand All @@ -16,9 +18,10 @@ namespace quda
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy = DistanceType<false>();
auto dummy_list = Dslash5TypeList<Dslash5Type::DSLASH5_MOBIUS_PRE>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
dummy, dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
Expand Down
5 changes: 4 additions & 1 deletion lib/dslash_domain_wall_4d_m5pre_m5inv.cu
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#define SIGNATURE_ONLY
#include <dslash_domain_wall_4d_fused_m5.hpp>
#undef SIGNATURE_ONLY

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
Expand All @@ -16,9 +18,10 @@ namespace quda
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy = DistanceType<false>();
auto dummy_list = Dslash5TypeList<Dslash5Type::M5_PRE_MOBIUS_M5_INV>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
dummy, dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
Expand Down
5 changes: 4 additions & 1 deletion lib/dslash_domain_wall_4d_m5pre_m5mob.cu
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#define SIGNATURE_ONLY
#include <dslash_domain_wall_4d_fused_m5.hpp>
#undef SIGNATURE_ONLY

/**
This is the gauged domain-wall 4-d preconditioned operator, fused with immediately followed fifth dimension operators.
Expand All @@ -16,9 +18,10 @@ namespace quda
bool dagger, const int *comm_override, double m_f, TimeProfile &profile)
{
if constexpr (is_enabled<QUDA_DOMAIN_WALL_4D_DSLASH>()) {
auto dummy = DistanceType<false>();
auto dummy_list = Dslash5TypeList<Dslash5Type::DSLASH5_MOBIUS_PRE_M5_MOB>();
instantiate<DomainWall4DApplyFusedM5>(out, in, x, y, U, b_5, c_5, a, m_5, parity, dagger, comm_override, m_f,
dummy_list, profile);
dummy, dummy_list, profile);
} else {
errorQuda("Domain-wall operator has not been built");
}
Expand Down

0 comments on commit a1fb649

Please sign in to comment.