File: PerfTest_ViewFirstTouch_DeepCopy.cpp

package info (click to toggle)
kokkos 5.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 15,140 kB
  • sloc: cpp: 225,293; sh: 1,250; python: 78; makefile: 16; fortran: 4; ansic: 2
file content (28 lines) | stat: -rw-r--r-- 858 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// SPDX-FileCopyrightText: Copyright Contributors to the Kokkos project

#include "Benchmark_Context.hpp"

namespace Benchmark {

template <typename DataType>
void ViewFirstTouch_DeepCopy(benchmark::State& state) {
  const int N               = state.range(0);
  const DataType init_value = static_cast<DataType>(state.range(1));
  using ViewType            = Kokkos::View<DataType*>;
  ViewType v_a("A", N);

  for (auto _ : state) {
    Kokkos::Timer timer;
    Kokkos::deep_copy(v_a, init_value);
    KokkosBenchmark::report_results(state, v_a, 2, timer.seconds());
  }
}

BENCHMARK_TEMPLATE(ViewFirstTouch_DeepCopy, double)
    ->ArgNames({"N", "init_value"})
    ->RangeMultiplier(8)
    ->Ranges({{int64_t(1) << 6, int64_t(1) << 24}, {0, 1}})
    ->UseManualTime();

}  // namespace Benchmark