From 17a5ae5825a5f4699dc0ecb53f517f14ec0d2272 Mon Sep 17 00:00:00 2001 From: Martin Bauer <martin.bauer@fau.de> Date: Thu, 3 Aug 2017 07:13:05 +0200 Subject: [PATCH] Fix float-double issues --- .gitlab-ci.yml | 130 ++++++++++----------- apps/tutorials/cuda/01_GameOfLife_cuda.cpp | 6 +- src/gui/BlockView3D/BlockView3D.cpp | 2 +- tests/cuda/CudaMPI.cpp | 4 +- tests/cuda/SimpleKernelTest.cpp | 18 +-- 5 files changed, 80 insertions(+), 80 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4b41bb80e..a7ef1913d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -119,8 +119,8 @@ intel_15_serial: <<: *build_serial_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:15 tags: - - intel - docker + - intel only: - triggers @@ -128,8 +128,8 @@ intel_15_mpionly: <<: *build_mpionly_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:15 tags: - - intel - docker + - intel only: - triggers @@ -137,8 +137,8 @@ intel_15_hybrid: <<: *build_hybrid_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:15 tags: - - intel - docker + - intel only: - triggers @@ -146,8 +146,8 @@ intel_15_serial_dbg: <<: *build_serial_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:15 tags: - - intel - docker + - intel only: - triggers @@ -155,8 +155,8 @@ intel_15_mpionly_dbg: <<: *build_mpionly_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:15 tags: - - intel - docker + - intel only: - triggers @@ -164,15 +164,15 @@ intel_15_hybrid_dbg: <<: *build_hybrid_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:15 tags: - - intel - docker + - intel intel_15_hybrid_dbg_sp: <<: *build_hybrid_dbg_sp_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:15 tags: - - intel - docker + - intel only: - triggers @@ -180,9 +180,9 @@ intel_16_serial: <<: *build_serial_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:16 tags: - - cuda - - intel - docker + - intel + - cuda only: - triggers @@ -190,9 +190,9 @@ intel_16_mpionly: <<: *build_mpionly_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:16 tags: - - cuda - - intel - docker + - intel + - cuda only: - triggers @@ -200,9 +200,9 @@ intel_16_hybrid: <<: *build_hybrid_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:16 tags: - - cuda - - intel - docker + - intel + - cuda only: - triggers @@ -210,9 +210,9 @@ intel_16_serial_dbg: <<: *build_serial_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:16 tags: - - cuda - - intel - docker + - intel + - cuda only: - triggers @@ -220,9 +220,9 @@ intel_16_mpionly_dbg: <<: *build_mpionly_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:16 tags: - - cuda - - intel - docker + - intel + - cuda only: - triggers @@ -230,9 +230,9 @@ intel_16_hybrid_dbg: <<: *build_hybrid_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:16 tags: - - cuda - - intel - docker + - intel + - cuda only: - triggers @@ -240,9 +240,9 @@ intel_16_hybrid_dbg_sp: <<: *build_hybrid_dbg_sp_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:16 tags: - - cuda - - intel - docker + - intel + - cuda only: - triggers @@ -250,8 +250,8 @@ intel_17_serial: <<: *build_serial_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17 tags: - - intel - docker + - intel only: - triggers @@ -259,8 +259,8 @@ intel_17_mpionly: <<: *build_mpionly_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17 tags: - - intel - docker + - intel only: - triggers @@ -268,36 +268,36 @@ intel_17_hybrid: <<: *build_hybrid_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17 tags: - - intel - docker + - intel intel_17_serial_dbg: <<: *build_serial_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17 tags: - - intel - docker + - intel intel_17_mpionly_dbg: <<: *build_mpionly_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17 tags: - - intel - docker + - intel intel_17_hybrid_dbg: <<: *build_hybrid_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17 tags: - - intel - docker + - intel intel_17_hybrid_dbg_sp: <<: *build_hybrid_dbg_sp_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17 tags: - - intel - docker + - intel gcc_4.7_serial: <<: *build_serial_definition @@ -469,8 +469,8 @@ gcc_5_serial: <<: *build_serial_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5 tags: - - cuda - docker + - cuda only: - triggers @@ -478,8 +478,8 @@ gcc_5_mpionly: <<: *build_mpionly_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5 tags: - - cuda - docker + - cuda only: - triggers @@ -487,22 +487,24 @@ gcc_5_hybrid: <<: *build_hybrid_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5 tags: - - cuda - docker + - cuda + only: + - triggers gcc_5_serial_dbg: <<: *build_serial_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5 tags: - - cuda - docker + - cuda gcc_5_mpionly_dbg: <<: *build_mpionly_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5 tags: - - cuda - docker + - cuda only: - triggers @@ -510,8 +512,8 @@ gcc_5_hybrid_dbg: <<: *build_hybrid_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5 tags: - - cuda - docker + - cuda only: - triggers @@ -519,10 +521,8 @@ gcc_5_hybrid_dbg_sp: <<: *build_hybrid_dbg_sp_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5 tags: - - cuda - docker - only: - - triggers + - cuda gcc_6_serial: <<: *build_serial_definition @@ -628,8 +628,8 @@ clang_3.5_serial: <<: *build_serial_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.5 tags: - - cuda - docker + - cuda only: - triggers @@ -637,8 +637,8 @@ clang_3.5_mpionly: <<: *build_mpionly_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.5 tags: - - cuda - docker + - cuda only: - triggers @@ -646,8 +646,8 @@ clang_3.5_hybrid: <<: *build_hybrid_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.5 tags: - - cuda - docker + - cuda only: - triggers @@ -655,8 +655,8 @@ clang_3.5_serial_dbg: <<: *build_serial_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.5 tags: - - cuda - docker + - cuda only: - triggers @@ -664,8 +664,8 @@ clang_3.5_mpionly_dbg: <<: *build_mpionly_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.5 tags: - - cuda - docker + - cuda only: - triggers @@ -673,8 +673,8 @@ clang_3.5_hybrid_dbg: <<: *build_hybrid_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.5 tags: - - cuda - docker + - cuda only: - triggers @@ -682,8 +682,8 @@ clang_3.5_hybrid_dbg_sp: <<: *build_hybrid_dbg_sp_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.5 tags: - - cuda - docker + - cuda only: - triggers @@ -691,8 +691,8 @@ clang_3.6_serial: <<: *build_serial_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.6 tags: - - cuda - docker + - cuda only: - triggers @@ -700,8 +700,8 @@ clang_3.6_mpionly: <<: *build_mpionly_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.6 tags: - - cuda - docker + - cuda only: - triggers @@ -709,8 +709,8 @@ clang_3.6_hybrid: <<: *build_hybrid_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.6 tags: - - cuda - docker + - cuda only: - triggers @@ -718,8 +718,8 @@ clang_3.6_serial_dbg: <<: *build_serial_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.6 tags: - - cuda - docker + - cuda only: - triggers @@ -727,8 +727,8 @@ clang_3.6_mpionly_dbg: <<: *build_mpionly_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.6 tags: - - cuda - docker + - cuda only: - triggers @@ -736,8 +736,8 @@ clang_3.6_hybrid_dbg: <<: *build_hybrid_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.6 tags: - - cuda - docker + - cuda only: - triggers @@ -745,8 +745,8 @@ clang_3.6_hybrid_dbg_sp: <<: *build_hybrid_dbg_sp_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.6 tags: - - cuda - docker + - cuda only: - triggers @@ -754,8 +754,8 @@ clang_3.7_serial: <<: *build_serial_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.7 tags: - - cuda - docker + - cuda only: - triggers @@ -763,8 +763,8 @@ clang_3.7_mpionly: <<: *build_mpionly_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.7 tags: - - cuda - docker + - cuda only: - triggers @@ -772,8 +772,8 @@ clang_3.7_hybrid: <<: *build_hybrid_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.7 tags: - - cuda - docker + - cuda only: - triggers @@ -781,8 +781,8 @@ clang_3.7_serial_dbg: <<: *build_serial_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.7 tags: - - cuda - docker + - cuda only: - triggers @@ -790,8 +790,8 @@ clang_3.7_mpionly_dbg: <<: *build_mpionly_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.7 tags: - - cuda - docker + - cuda only: - triggers @@ -799,8 +799,8 @@ clang_3.7_hybrid_dbg: <<: *build_hybrid_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.7 tags: - - cuda - docker + - cuda only: - triggers @@ -808,8 +808,8 @@ clang_3.7_hybrid_dbg_sp: <<: *build_hybrid_dbg_sp_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.7 tags: - - cuda - docker + - cuda only: - triggers @@ -817,8 +817,8 @@ clang_3.8_serial: <<: *build_serial_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.8 tags: - - cuda - docker + - cuda only: - triggers @@ -826,8 +826,8 @@ clang_3.8_mpionly: <<: *build_mpionly_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.8 tags: - - cuda - docker + - cuda only: - triggers @@ -835,8 +835,8 @@ clang_3.8_hybrid: <<: *build_hybrid_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.8 tags: - - cuda - docker + - cuda only: - triggers @@ -844,8 +844,8 @@ clang_3.8_serial_dbg: <<: *build_serial_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.8 tags: - - cuda - docker + - cuda only: - triggers @@ -853,8 +853,8 @@ clang_3.8_mpionly_dbg: <<: *build_mpionly_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.8 tags: - - cuda - docker + - cuda only: - triggers @@ -862,8 +862,8 @@ clang_3.8_hybrid_dbg: <<: *build_hybrid_dbg_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.8 tags: - - cuda - docker + - cuda only: - triggers @@ -871,8 +871,8 @@ clang_3.8_hybrid_dbg_sp: <<: *build_hybrid_dbg_sp_definition image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:3.8 tags: - - cuda - docker + - cuda only: - triggers diff --git a/apps/tutorials/cuda/01_GameOfLife_cuda.cpp b/apps/tutorials/cuda/01_GameOfLife_cuda.cpp index 1f6ef10f8..391f4ab11 100644 --- a/apps/tutorials/cuda/01_GameOfLife_cuda.cpp +++ b/apps/tutorials/cuda/01_GameOfLife_cuda.cpp @@ -60,7 +60,7 @@ ScalarField * createField( IBlock* const block, StructuredBlockStorage* const st storage->getNumberOfYCells( *block ), // number of cells in y direction per block storage->getNumberOfZCells( *block ), // number of cells in z direction per block 1, // one ghost layer - real_t(0), // initial value + double(0), // initial value field::fzyx, // layout make_shared<cuda::HostFieldAllocator<double> >() // allocator for host pinned memory ); @@ -75,8 +75,8 @@ class GameOfLifeSweepCUDA } void operator() ( IBlock * block ) { - auto srcCudaField = block->getData< cuda::GPUField<real_t> > ( gpuFieldSrcID_ ); - auto dstCudaField = block->getData< cuda::GPUField<real_t> > ( gpuFieldDstID_ ); + auto srcCudaField = block->getData< cuda::GPUField<double> > ( gpuFieldSrcID_ ); + auto dstCudaField = block->getData< cuda::GPUField<double> > ( gpuFieldDstID_ ); auto myKernel = cuda::make_kernel( &gameOfLifeKernel ); myKernel.addFieldIndexingParam( cuda::FieldIndexing<double>::xyz( *srcCudaField ) ); diff --git a/src/gui/BlockView3D/BlockView3D.cpp b/src/gui/BlockView3D/BlockView3D.cpp index 0e3c123c7..dc78bdf5e 100644 --- a/src/gui/BlockView3D/BlockView3D.cpp +++ b/src/gui/BlockView3D/BlockView3D.cpp @@ -112,7 +112,7 @@ void BlockView3D::paintGL(QGLPainter * painter) 0.5 * (bb.max(1) + bb.min(1)), 0.5 * (bb.max(2) + bb.min(2))); - real_t maxExtend = std::max( std::max( bbMid.x(), bbMid.y() ), bbMid.z() ); + double maxExtend = std::max( std::max( bbMid.x(), bbMid.y() ), bbMid.z() ); painter->modelViewMatrix().push(); painter->modelViewMatrix().scale( 15.0 / maxExtend ); diff --git a/tests/cuda/CudaMPI.cpp b/tests/cuda/CudaMPI.cpp index ffcb89260..1669a1acd 100644 --- a/tests/cuda/CudaMPI.cpp +++ b/tests/cuda/CudaMPI.cpp @@ -115,8 +115,8 @@ void blockStorageAndGui( int argc, char ** argv ) auto h_f2_datatype = mpi::Datatype ( field::communication::mpiDatatypeSliceBeforeGhostlayer( *h_f2, stencil::W, 1, true ) ); auto d_f_datatype = mpi::Datatype ( field::communication::mpiDatatypeSliceBeforeGhostlayer( *d_f , stencil::W, 1, true ) ); - MPI_Sendrecv( const_cast<double *>( h_f1->data() ), 1, h_f1_datatype, 0, 0, - d_f->data(), 1, d_f_datatype , 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE ); + MPI_Sendrecv( h_f1->data() , 1, h_f1_datatype, 0, 0, + d_f->data(), 1, d_f_datatype , 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE ); MPI_Sendrecv( d_f->data(), 1, d_f_datatype, 0, 0, h_f2->data(), 1, h_f2_datatype, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE ); diff --git a/tests/cuda/SimpleKernelTest.cpp b/tests/cuda/SimpleKernelTest.cpp index 4c2efa9ef..6b79fa8db 100644 --- a/tests/cuda/SimpleKernelTest.cpp +++ b/tests/cuda/SimpleKernelTest.cpp @@ -39,20 +39,20 @@ namespace walberla{ void kernel_double( cuda::FieldAccessor<double> f ); } -GhostLayerField<real_t,1> * createCPUField( IBlock* const block, StructuredBlockStorage* const storage ) +GhostLayerField<double,1> * createCPUField( IBlock* const block, StructuredBlockStorage* const storage ) { - return new GhostLayerField<real_t,1> ( + return new GhostLayerField<double,1> ( storage->getNumberOfXCells( *block ), // number of cells in x direction storage->getNumberOfYCells( *block ), // number of cells in y direction storage->getNumberOfZCells( *block ), // number of cells in z direction 1, // number of ghost layers - real_t(1), // initial value + double(1), // initial value field::fzyx); } -cuda::GPUField<real_t> * createGPUField( IBlock* const block, StructuredBlockStorage* const storage ) +cuda::GPUField<double> * createGPUField( IBlock* const block, StructuredBlockStorage* const storage ) { - return new cuda::GPUField<real_t> ( + return new cuda::GPUField<double> ( storage->getNumberOfXCells( *block ), // number of cells in x direction storage->getNumberOfYCells( *block ), // number of cells in y direction storage->getNumberOfZCells( *block ), // number of cells in z direction @@ -76,18 +76,18 @@ int main( int argc, char ** argv ) - BlockDataID cpuFieldID = blocks->addStructuredBlockData< GhostLayerField<real_t,1> > ( &createCPUField, "CPUField" ); + BlockDataID cpuFieldID = blocks->addStructuredBlockData< GhostLayerField<double,1> > ( &createCPUField, "CPUField" ); - BlockDataID gpuFieldID = blocks->addStructuredBlockData< cuda::GPUField<real_t> > ( &createGPUField, "GPUField" ); + BlockDataID gpuFieldID = blocks->addStructuredBlockData< cuda::GPUField<double> > ( &createGPUField, "GPUField" ); for ( auto blockIterator = blocks->begin(); blockIterator != blocks->end(); ++blockIterator ) { IBlock & currentBlock = *blockIterator; // get the field stored on the current block - auto cpuField = currentBlock.getData< GhostLayerField<real_t,1> > ( cpuFieldID ); - auto gpuField = currentBlock.getData< cuda::GPUField<real_t> > ( gpuFieldID ); + auto cpuField = currentBlock.getData< GhostLayerField<double,1> > ( cpuFieldID ); + auto gpuField = currentBlock.getData< cuda::GPUField<double> > ( gpuFieldID ); cuda::fieldCpy( *gpuField, *cpuField ); -- GitLab