Skip to content
Snippets Groups Projects
Commit 27a9ca5c authored by Harshada Balasubramanian's avatar Harshada Balasubramanian
Browse files

scenario 5 + fix for prints

parent 2c8dd6e5
No related branches found
No related tags found
No related merge requests found
......@@ -45,7 +45,7 @@ void scenario_1(double* array, int nblocks, int nlev, int nproma, bool print=tru
void scenario_2(double* array, int nblocks, int nlev, int nproma, bool print=true) {
if(print)
std::cout << "Right layout; view(array, nblocks, nlev, nproma); d_view(jb, jk, jc) ----- " << std::endl;
std::cout << "Right layout; view(array, nproma, nlev, nblocks); d_view(jc, jk, jb) ----- " << std::endl;
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> view(array, nproma, nlev, nblocks);
......@@ -100,7 +100,7 @@ void scenario_2b(double* array, int nblocks, int nlev, int nproma, bool print=tr
void scenario_3(double* array, int nblocks, int nlev, int nproma, bool print=true) {
if(print)
std::cout << "Left layout; view(array, nblocks, nlev, nproma); d_view(jb, jk, jc) ----- " << std::endl;
std::cout << "Left layout; view(array, nproma, nlev, nblocks); d_view(jc, jk, jb) ----- " << std::endl;
Kokkos::View<double***, Kokkos::LayoutLeft, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> view(array, nproma, nlev, nblocks);
......@@ -127,7 +127,7 @@ void scenario_3(double* array, int nblocks, int nlev, int nproma, bool print=tru
void scenario_4(double* array, int nblocks, int nlev, int nproma, bool print=true) {
if(print)
std::cout << "Default layout; view(array, nblocks, nlev, nproma); d_view(jb, jk, jc) ----- " << std::endl;
std::cout << "Default layout; view(array, nproma, nlev, nblocks); d_view(jc, jk, jb) ----- " << std::endl;
Kokkos::View<double***, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> view(array, nproma, nlev, nblocks);
......@@ -152,6 +152,34 @@ void scenario_4(double* array, int nblocks, int nlev, int nproma, bool print=tru
}
void scenario_5(double* array, int nblocks, int nlev, int nproma, bool print=true) {
if(print)
std::cout << "Default layout; view(array, nproma, nblocks, nlev); d_view(jc, jb, jk) ----- KOMISCH" << std::endl;
Kokkos::View<double***, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> view(array, nproma, nblocks, nlev);
using space_t = Kokkos::DefaultExecutionSpace::memory_space;
auto d_view = Kokkos::create_mirror_view_and_copy(space_t(), view);
timer.reset();
for (int jb = 0 ; jb < nblocks; ++jb)
Kokkos::parallel_for("", Kokkos::RangePolicy<>(0, nproma), KOKKOS_LAMBDA (const int jc) {
for (int jk = 0; jk < nlev; ++jk) {
int p = jc * nlev * nblocks + jb * nlev + jk;
d_view(jc, jb, jk) = p;
// printf("%f ", d_view(jb, jk, jc));
}});
if(print)
printf("Time = %f ms\n\n", timer.seconds() * 1000);
Kokkos::deep_copy(view, d_view);
validate(array, nblocks, nlev, nproma);
}
int main() {
......@@ -195,6 +223,7 @@ int main() {
scenario_2b(array, nblocks, nlev, nproma);
scenario_3(array, nblocks, nlev, nproma);
scenario_4(array, nblocks, nlev, nproma);
scenario_5(array, nblocks, nlev, nproma);
}
Kokkos::finalize();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment