From b4aef4db9e7acaf44691f9564a5148e6557f90a4 Mon Sep 17 00:00:00 2001 From: Gallo Alejandro Date: Fri, 12 Aug 2022 18:29:21 +0200 Subject: [PATCH] Fix compilation issues and add KernelSizes --- include/atrip/Atrip.hpp | 7 +++++++ include/atrip/SliceUnion.hpp | 33 +++++++++++++-------------------- include/atrip/Utils.hpp | 28 +++++++++++++++++++++------- 3 files changed, 41 insertions(+), 27 deletions(-) diff --git a/include/atrip/Atrip.hpp b/include/atrip/Atrip.hpp index 338b686..9567529 100644 --- a/include/atrip/Atrip.hpp +++ b/include/atrip/Atrip.hpp @@ -51,6 +51,9 @@ namespace atrip { cublasHandle_t handle; }; static CudaContext cuda; + static struct KernelDimensions { + struct {size_t blocks, threads;} ooo; + } kernelDimensions; #endif static void init(MPI_Comm); @@ -92,6 +95,10 @@ namespace atrip { ADD_ATTRIBUTE(bool, writeCheckpoint, true) ADD_ATTRIBUTE(float, checkpointAtPercentage, 10) ADD_ATTRIBUTE(size_t, checkpointAtEveryIteration, 0) +#if defined(HAVE_CUDA) + ADD_ATTRIBUTE(size_t, oooThreads, 0) + ADD_ATTRIBUTE(size_t, oooBlocks, 0) +#endif }; diff --git a/include/atrip/SliceUnion.hpp b/include/atrip/SliceUnion.hpp index 0403a33..be9067f 100644 --- a/include/atrip/SliceUnion.hpp +++ b/include/atrip/SliceUnion.hpp @@ -378,12 +378,16 @@ template LOG(0,"Atrip") << "INIT SliceUnion: " << name << "\n"; - for (auto& ptr: sliceBuffers) + for (auto& ptr: sliceBuffers) { #if defined(HAVE_CUDA) cuMemAlloc(&ptr, sizeof(F) * sources[0].size()); + if (ptr == 0UL) { + throw "UNSUFICCIENT MEMORY ON THE GRAPHIC CARD FOR FREE POINTERS"; + } #else ptr = (DataPtr)malloc(sizeof(F) * sources[0].size()); #endif + } slices = std::vector>(2 * sliceTypes.size(), { sources[0].size() }); @@ -396,24 +400,12 @@ template - LOG(1,"Atrip") << "rankMap.nSources " - << rankMap.nSources() << "\n"; - LOG(1,"Atrip") << "#slices " - << slices.size() << "\n"; - LOG(1,"Atrip") << "#slices[0] " - << slices[0].size << "\n"; - LOG(1,"Atrip") << "#sources " - << sources.size() << "\n"; - LOG(1,"Atrip") << "#sources[0] " - << sources[0].size() << "\n"; - LOG(1,"Atrip") << "#freePointers " - << freePointers.size() << "\n"; - LOG(1,"Atrip") << "#sliceBuffers " - << sliceBuffers.size() << "\n"; - LOG(1,"Atrip") << "#sliceLength " - << sliceLength.size() << "\n"; - LOG(1,"Atrip") << "#paramLength " - << paramLength.size() << "\n"; + LOG(1,"Atrip") << "#slices " << slices.size() << "\n"; + WITH_RANK << "#slices[0] " << slices[0].size << "\n"; + LOG(1,"Atrip") << "#sources " << sources.size() << "\n"; + WITH_RANK << "#sources[0] " << sources[0].size() << "\n"; + WITH_RANK << "#freePointers " << freePointers.size() << "\n"; + LOG(1,"Atrip") << "#sliceBuffers " << sliceBuffers.size() << "\n"; LOG(1,"Atrip") << "GB*" << np << " " << double(sources.size() + sliceBuffers.size()) * sources[0].size() @@ -434,7 +426,8 @@ template __sliceLength.data(), syms.data(), w); - LOG(1,"Atrip") << "slicing... \n"; + + WITH_OCD WITH_RANK << "slicing... \n"; // setUp sources for (size_t it(0); it < rankMap.nSources(); ++it) { diff --git a/include/atrip/Utils.hpp b/include/atrip/Utils.hpp index 184cf13..4d1fb6b 100644 --- a/include/atrip/Utils.hpp +++ b/include/atrip/Utils.hpp @@ -19,13 +19,27 @@ #include #include -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wvla" -#pragma GCC diagnostic ignored "-Wint-in-bool-context" -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wdeprecated-copy" -#include -#pragma GCC diagnostic pop +#if defined(__NVCC__) +# pragma nv_diagnostic_push +# if defined __NVCC_DIAG_PRAGMA_SUPPORT__ +// http://www.ssl.berkeley.edu/~jimm/grizzly_docs/SSL/opt/intel/cc/9.0/lib/locale/en_US/mcpcom.msg +# pragma nv_diag_suppress partial_override +# else +# pragma diag_suppress partial_override +# endif +# include +# pragma nv_diagnostic_pop +#else +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wvla" +# pragma GCC diagnostic ignored "-Wnonnull" +# pragma GCC diagnostic ignored "-Wall" +# pragma GCC diagnostic ignored "-Wint-in-bool-context" +# pragma GCC diagnostic ignored "-Wunused-parameter" +# pragma GCC diagnostic ignored "-Wdeprecated-copy" +# include +# pragma GCC diagnostic pop +#endif #include