44int main(
int argc,
char const *argv[])
54 [[maybe_unused]]
int count = 0;
55 [[maybe_unused]]
double time = 0.0;
63 nPts = std::stoi(argv[1]);
66 std::cout <<
"number of points\t" << nPts <<
'\n';
69 constexpr size_t experiments = 1 << 18;
78 for (
size_t i = 0; i < nPts; ++i)
84 for (
size_t j = 0; j < experiments; ++j)
91 constexpr short CPU_CLK_UNHALTED_REF_id = 2;
93 std::vector<double> events(nevents);
97 double cpeGathrArray =
98 events[CPU_CLK_UNHALTED_REF_id] / nPts / experiments;
99 std::cout <<
"GathrArray likwid CPE\t" << cpeGathrArray <<
'\n';
100 std::cout << dataTrace[0] << std::endl;
111 for (
size_t i = 0; i < nPts; ++i)
117 for (
size_t j = 0; j < experiments; ++j)
125 constexpr short CPU_CLK_UNHALTED_REF_id = 2;
127 std::vector<double> events(nevents);
131 double cpeGathrSimd =
132 events[CPU_CLK_UNHALTED_REF_id] / nPts / experiments;
133 std::cout <<
"GathrSimd likwid CPE\t" << cpeGathrSimd <<
'\n';
134 std::cout << dataTrace[0] << std::endl;
145 for (
size_t i = 0; i < nPts; ++i)
151 for (
size_t j = 0; j < experiments; ++j)
159 constexpr short CPU_CLK_UNHALTED_REF_id = 2;
161 std::vector<double> events(nevents);
166 double cpeGathrScalar =
167 events[CPU_CLK_UNHALTED_REF_id] / nPts / experiments;
168 std::cout <<
"GathrScalar likwid CPE\t" << cpeGathrScalar <<
'\n';
169 std::cout << dataTrace[0] << std::endl;
#define LIKWID_MARKER_THREADINIT
#define LIKWID_MARKER_START(regionTag)
#define LIKWID_MARKER_CLOSE
#define LIKWID_MARKER_INIT
#define LIKWID_MARKER_REGISTER(regionTag)
#define LIKWID_MARKER_STOP(regionTag)
#define LIKWID_MARKER_GET(regionTag, nevents, events, time, count)
int main(int argc, char const *argv[])
void Gathr(const I n, const T *x, const I *y, T *z)
Gather vector z[i] = x[y[i]].
void Gathr(I n, const T *x, const I *y, T *z)
Gather vector z[i] = x[y[i]].