Commit b44c006e authored by gbalduzz's avatar gbalduzz
Browse files

fixed sp tests in single precision.

parent cc5f8e44
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
#include "dca/phys/dca_step/cluster_solver/shared_tools/accumulation/sp/sp_accumulator_gpu.hpp"
#endif  // DCA_HAVE_CUDA

#include "dca/config/mc_options.hpp"
#include "dca/io/json/json_reader.hpp"
#include "dca/math/random/std_random_wrapper.hpp"
#include "dca/linalg/util/cuda_event.hpp"
@@ -71,7 +72,7 @@ using Parameters = dca::phys::params::Parameters<Concurrency, dca::parallel::NoT
                                                 Model, void, dca::phys::solver::CT_AUX>;
using Data = dca::phys::DcaData<Parameters>;

using Real = double;
using Real = typename dca::config::McOptions::MCScalar;
template <dca::linalg::DeviceType device>
using MatrixPair = std::array<dca::linalg::Matrix<Real, device>, 2>;

@@ -101,7 +102,8 @@ int main(int argc, char** argv) {
  Configuration config;
  prepareRandomConfig(config, M, n);

  dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::CPU> accumulator(parameters);
  dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::CPU, Real> accumulator(
      parameters);
  accumulator.resetAccumulation();

  // Allows memory to be assigned.
@@ -122,7 +124,7 @@ int main(int argc, char** argv) {
  const double time = duration(end_time, start_time);

  std::string precision("double");
  if (std::is_same<float, dca::phys::solver::accumulator::SpAccumulator<Parameters>::Scalar>::value)
  if (std::is_same<float, Real>::value)
    precision = "single";

  std::cout << "\nExpansion order:\t" << n;
@@ -136,7 +138,7 @@ int main(int argc, char** argv) {
  dca::linalg::util::CudaEvent start_event;
  dca::linalg::util::CudaEvent stop_event;

  dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::GPU> gpu_accumulator(
  dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::GPU, Real> gpu_accumulator(
      parameters);
  MatrixPair<GPU> M_dev{M[0], M[1]};

+6 −6
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ public:
  using BDmn = dca::func::dmn_0<dca::phys::domains::electron_band_domain>;

  using Configuration = std::vector<Vertex>;
  using Matrix = dca::linalg::Matrix<double, dca::linalg::CPU>;
  using Matrix = dca::linalg::Matrix<Real, dca::linalg::CPU>;

  using F_w_w =
      dca::func::function<Complex, dca::func::dmn_variadic<BDmn, BDmn, RDmn, RDmn, FreqDmn, FreqDmn>>;
@@ -200,18 +200,18 @@ template <typename Real, int n_bands, int n_sites, int n_frqs>
auto SingleSectorAccumulationTest<Real, n_bands, n_sites, n_frqs>::compute2DFTBaseline() const
    -> F_w_w {
  F_w_w f_w("2D frequency transform baseline.");
  const std::complex<double> imag(0, 1);
  const std::complex<Real> imag(0, 1);

  for (int w_ind2 = 0; w_ind2 < FreqDmn::dmn_size(); ++w_ind2) {
    const double w_val2 = FreqDmn::get_elements()[w_ind2];
    const Real w_val2 = FreqDmn::get_elements()[w_ind2];
    for (int w_ind1 = 0; w_ind1 < FreqDmn::dmn_size(); ++w_ind1) {
      const double w_val1 = FreqDmn::get_elements()[w_ind1];
      const Real w_val1 = FreqDmn::get_elements()[w_ind1];
      for (int j = 0; j < configuration_.size(); ++j) {
        const auto t_val2 = configuration_[j].get_tau();
        const Real t_val2 = configuration_[j].get_tau();
        const int b2 = configuration_[j].b_;
        const int r2 = configuration_[j].r_;
        for (int i = 0; i < configuration_.size(); ++i) {
          const auto t_val1 = configuration_[i].get_tau();
          const Real t_val1 = configuration_[i].get_tau();
          const int b1 = configuration_[i].b_;
          const int r1 = configuration_[i].r_;

+4 −3
Original line number Diff line number Diff line
@@ -33,9 +33,9 @@ TEST_F(SpAccumulatorGpuTest, Accumulate) {
  Configuration config;
  prepareConfiguration(config, M, n);

  dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::CPU> accumulatorHost(
  dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::CPU, Scalar> accumulatorHost(
      parameters_);
  dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::GPU> accumulatorDevice(
  dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::GPU, Scalar> accumulatorDevice(
      parameters_);

  const int sign = 1;
@@ -54,7 +54,8 @@ TEST_F(SpAccumulatorGpuTest, Accumulate) {
}

TEST_F(SpAccumulatorGpuTest, SumTo) {
  using Accumulator = dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::GPU>;
  using Accumulator =
      dca::phys::solver::accumulator::SpAccumulator<Parameters, dca::linalg::GPU, Scalar>;
  Accumulator accumulator1(parameters_);
  Accumulator accumulator2(parameters_);
  Accumulator accumulator_sum(parameters_);
+1 −1
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ double computeWithFastNDFT(const typename CachedNdftGpuTest<Real>::Configuration
  NftType nft_obj(queue);
  EXPECT_EQ(magma_queue_get_cuda_stream(queue), nft_obj.get_stream());

  dca::linalg::Matrix<double, dca::linalg::GPU> M_dev(M);
  dca::linalg::Matrix<Real, dca::linalg::GPU> M_dev(M);
  typename NftType::RMatrix result_device(64);

  dca::profiling::WallTime start_time;