From 3a2432a345127755675ab17ec6fcb9cc85d7cdfe Mon Sep 17 00:00:00 2001 From: Tomas Oberhuber <tomas.oberhuber@fjfi.cvut.cz> Date: Thu, 20 Dec 2018 15:17:18 +0100 Subject: [PATCH] Implemented write-one grid traverser becnhamrk in 2D and 3D. --- src/Benchmarks/Traversers/WriteOne.h | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Benchmarks/Traversers/WriteOne.h b/src/Benchmarks/Traversers/WriteOne.h index 9fd269f109..4c39926aa8 100644 --- a/src/Benchmarks/Traversers/WriteOne.h +++ b/src/Benchmarks/Traversers/WriteOne.h @@ -44,7 +44,6 @@ class WriteOne< 1, Device, Real, Index > data[ i ] = 1.0; }; - ParallelFor< Device >::exec( ( std::size_t ) 0, size, writeOne, v.getData() ); } }; @@ -61,7 +60,17 @@ class WriteOne< 2, Device, Real, Index > static void run( std::size_t size ) { + Vector v( size * size ); + auto writeOne = [=] __cuda_callable__ ( Index i, Index j, Real* data ) + { + data[ i * size + j ] = 1.0; + }; + ParallelFor2D< Device >::exec( ( std::size_t ) 0, + ( std::size_t ) 0, + size, + size, + writeOne, v.getData() ); } }; @@ -76,7 +85,19 @@ class WriteOne< 3, Device, Real, Index > static void run( std::size_t size ) { + Vector v( size * size * size ); + auto writeOne = [=] __cuda_callable__ ( Index i, Index j, Index k, Real* data ) + { + data[ ( i * size + j ) * size + k ] = 1.0; + }; + ParallelFor3D< Device >::exec( ( std::size_t ) 0, + ( std::size_t ) 0, + ( std::size_t ) 0, + size, + size, + size, + writeOne, v.getData() ); } }; -- GitLab