Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Tpetra_Details_Behavior.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Tpetra: Templated Linear Algebra Services Package
4 //
5 // Copyright 2008 NTESS and the Tpetra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef TPETRA_DETAILS_BEHAVIOR_HPP
11 #define TPETRA_DETAILS_BEHAVIOR_HPP
12 
13 #include <stddef.h>
14 
18 
19 namespace Tpetra {
20 namespace Details {
21 
91 class Behavior {
92 public:
99  static bool debug ();
100 
106  static bool debug (const char name[]);
107 
113  static bool verbose ();
114 
120  static bool verbose (const char name[]);
121 
123  static void disable_verbose_behavior ();
124 
126  static void enable_verbose_behavior ();
127 
131  static bool timing ();
132 
138  static bool timing (const char name[]);
139 
141  static void disable_timing();
142 
144  static void enable_timing();
145 
154  static bool assumeMpiIsGPUAware ();
155 
157  static bool cudaLaunchBlocking ();
158 
167  static int TAFC_OptimizationCoreCount ();
168 
175  static size_t verbosePrintCountThreshold ();
176 
189  static size_t rowImbalanceThreshold ();
190 
202  static bool useMergePathMultiVector();
203 
205  static bool hierarchicalUnpack ();
206 
208  static size_t hierarchicalUnpackBatchSize ();
209 
211  static size_t hierarchicalUnpackTeamSize ();
212 
220  static size_t multivectorKernelLocationThreshold ();
221 
226  static bool profilingRegionUseTeuchosTimers();
227 
233  static bool profilingRegionUseKokkosProfiling();
234 
240  static bool fusedResidual();
241 
246  static bool skipCopyAndPermuteIfPossible();
247 
253 
259  static bool timeKokkosDeepCopy();
260 
267  static bool timeKokkosDeepCopyVerbose1();
268 
269 
276  static bool timeKokkosDeepCopyVerbose2();
277 
282  static bool timeKokkosFence();
283 
289  static bool timeKokkosFunctions();
290 
295  static size_t spacesIdWarnLimit();
296 
298  static void reject_unrecognized_env_vars();
299 };
300 
301 
302 
303 } // namespace Details
304 } // namespace Tpetra
305 
306 #endif // TPETRA_DETAILS_BEHAVIOR_HPP
static bool useMergePathMultiVector()
Whether to use the cuSPARSE merge path algorithm to perform sparse matrix-multivector products...
static int TAFC_OptimizationCoreCount()
MPI process count above which Tpetra::CrsMatrix::transferAndFillComplete will attempt to do advanced ...
static bool overlapCommunicationAndComputation()
Overlap communication and computation.
static bool timing()
Whether Tpetra is in timing mode.
static void disable_verbose_behavior()
Disable verbose mode, programatically.
static size_t multivectorKernelLocationThreshold()
the threshold for transitioning from device to host
static bool assumeMpiIsGPUAware()
Whether to assume that MPI is CUDA aware.
static size_t spacesIdWarnLimit()
Warn if more than this many Kokkos spaces are accessed.
static bool debug()
Whether Tpetra is in debug mode.
static size_t hierarchicalUnpackTeamSize()
Size of team for hierarchical unpacking.
static void reject_unrecognized_env_vars()
Search the environment for TPETRA_ variables and reject unrecognized ones.
static bool timeKokkosFunctions()
Add Teuchos timers for all host calls to Kokkos::parallel_for(), Kokkos::parallel_reduce() and Kokkos...
static bool fusedResidual()
Fusing SpMV and update in residual instead of using 2 kernel launches. Fusing kernels implies that no...
static bool profilingRegionUseTeuchosTimers()
Use Teuchos::Timer in Tpetra::ProfilingRegion.
static void disable_timing()
Disable timing, programatically.
static bool hierarchicalUnpack()
Unpack rows of a matrix using hierarchical unpacking.
static void enable_timing()
Enable timing, programatically.
static bool verbose()
Whether Tpetra is in verbose mode.
static size_t rowImbalanceThreshold()
Threshold for deciding if a local matrix is &quot;imbalanced&quot; in the number of entries per row...
static size_t hierarchicalUnpackBatchSize()
Size of batch for hierarchical unpacking.
static bool timeKokkosDeepCopyVerbose2()
Adds verbose output to Kokkos deep_copy timers by appending source, destination, and size...
static bool timeKokkosDeepCopyVerbose1()
Adds verbose output to Kokkos deep_copy timers by appending source and destination. This is especially useful for identifying host/device data transfers.
static bool skipCopyAndPermuteIfPossible()
Skip copyAndPermute if possible.
static void enable_verbose_behavior()
Enable verbose mode, programatically.
static size_t verbosePrintCountThreshold()
Number of entries below which arrays, lists, etc. will be printed in debug mode.
static bool timeKokkosFence()
Add Teuchos timers for all host calls to Kokkos::fence().
static bool cudaLaunchBlocking()
Whether the CUDA_LAUNCH_BLOCKING environment variable has been set.
static bool timeKokkosDeepCopy()
Add Teuchos timers for all host calls to Kokkos::deep_copy(). This is especially useful for identifyi...
static bool profilingRegionUseKokkosProfiling()
Use Kokkos::Profiling in Tpetra::ProfilingRegion.
Description of Tpetra&#39;s behavior.