Tpetra parallel linear algebra Version of the Day
Loading...
Searching...
No Matches
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
19namespace Tpetra {
20namespace Details {
21
91class Behavior {
92public:
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
227
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
Description of Tpetra's behavior.
static bool timing()
Whether Tpetra is in timing mode.
static void enable_verbose_behavior()
Enable verbose mode, programatically.
static void disable_timing()
Disable timing, programatically.
static bool cudaLaunchBlocking()
Whether the CUDA_LAUNCH_BLOCKING environment variable has been set.
static bool timeKokkosDeepCopyVerbose2()
Adds verbose output to Kokkos deep_copy timers by appending source, destination, and size....
static void reject_unrecognized_env_vars()
Search the environment for TPETRA_ variables and reject unrecognized ones.
static bool timeKokkosFence()
Add Teuchos timers for all host calls to Kokkos::fence().
static bool timeKokkosDeepCopy()
Add Teuchos timers for all host calls to Kokkos::deep_copy(). This is especially useful for identifyi...
static bool fusedResidual()
Fusing SpMV and update in residual instead of using 2 kernel launches. Fusing kernels implies that no...
static bool hierarchicalUnpack()
Unpack rows of a matrix using hierarchical unpacking.
static size_t spacesIdWarnLimit()
Warn if more than this many Kokkos spaces are accessed.
static bool assumeMpiIsGPUAware()
Whether to assume that MPI is CUDA aware.
static bool debug()
Whether Tpetra is in debug mode.
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 void enable_timing()
Enable timing, programatically.
static bool profilingRegionUseTeuchosTimers()
Use Teuchos::Timer in Tpetra::ProfilingRegion.
static bool profilingRegionUseKokkosProfiling()
Use Kokkos::Profiling in Tpetra::ProfilingRegion.
static bool verbose()
Whether Tpetra is in verbose mode.
static bool timeKokkosFunctions()
Add Teuchos timers for all host calls to Kokkos::parallel_for(), Kokkos::parallel_reduce() and Kokkos...
static bool useMergePathMultiVector()
Whether to use the cuSPARSE merge path algorithm to perform sparse matrix-multivector products,...
static size_t multivectorKernelLocationThreshold()
the threshold for transitioning from device to host
static size_t verbosePrintCountThreshold()
Number of entries below which arrays, lists, etc. will be printed in debug mode.
static bool timeKokkosDeepCopyVerbose1()
Adds verbose output to Kokkos deep_copy timers by appending source and destination....
static size_t hierarchicalUnpackBatchSize()
Size of batch for hierarchical unpacking.
static void disable_verbose_behavior()
Disable verbose mode, programatically.
static size_t rowImbalanceThreshold()
Threshold for deciding if a local matrix is "imbalanced" in the number of entries per row....
static bool skipCopyAndPermuteIfPossible()
Skip copyAndPermute if possible.
static size_t hierarchicalUnpackTeamSize()
Size of team for hierarchical unpacking.
Nonmember function that computes a residual Computes R = B - A * X.
Namespace Tpetra contains the class and methods constituting the Tpetra library.