Tpetra parallel linear algebra Version of the Day
|
#include <iostream>
#include <sstream>
#include <vector>
#include <Kokkos_Core.hpp>
#include <Teuchos_RCP.hpp>
#include "Tpetra_Details_Behavior.hpp"
#include "Tpetra_Details_Profiling.hpp"
Go to the source code of this file.
Classes | |
class | Tpetra::Details::Spaces::InstanceLifetimeManager< ExecSpace > |
Provides reusable Kokkos execution space instances. More... | |
Namespaces | |
namespace | Tpetra |
Namespace Tpetra contains the class and methods constituting the Tpetra library. | |
namespace | Tpetra::Details |
Nonmember function that computes a residual Computes R = B - A * X. | |
Enumerations | |
enum class | Tpetra::Details::Spaces::Priority |
Priority interface for Tpetra's managed execution spaces. More... | |
Functions | |
void | Tpetra::Details::Spaces::lazy_init () |
Should be called by all functions in the Tpetra::Details::Spaces namespace. | |
template<typename ExecSpace , Priority priority = Priority::medium> | |
ExecSpace | Tpetra::Details::Spaces::make_instance () |
Construct a Kokkos execution space instance with the following priority. | |
template<typename ExecSpace > | |
ExecSpace | Tpetra::Details::Spaces::make_instance (const Priority &prio) |
Construct a Kokkos::Cuda execution space instance with the requested priority. | |
template<typename ExecSpace > | |
Teuchos::RCP< const ExecSpace > | Tpetra::Details::Spaces::space_instance (const Priority &priority, int i=0) |
get a strong Teuchos::RCP to Tpetra-managed Kokkos execution space instance i | |
template<typename S1 , typename S2 > | |
void | Tpetra::Details::Spaces::exec_space_wait (const char *msg, const S1 &waitee, const S2 &) |
cause future work submitted to waiter to wait for the current work in waitee to finish | |
Interface for Tpetra's managed Kokkos execution spaces This facility strives to provide:
For each Kokkos backend, there is a singleton instance manager. This singleton manages the lifetime of all instances for that Kokkos backend. These singletons are not meant to be accessed directly, but through top-level functions in this file.
Definition in file Tpetra_Details_ExecutionSpaces.hpp.
|
strong |
Priority interface for Tpetra's managed execution spaces.
Priority is best-effort. low <= medium <= high, but it may be the case that priority levels are equivalent.
Definition at line 56 of file Tpetra_Details_ExecutionSpaces.hpp.
void Tpetra::Details::Spaces::lazy_init | ( | ) |
Should be called by all functions in the Tpetra::Details::Spaces namespace.
Prepares resources for Kokkos::CUDA exec space instance sync Maps Tpetra::Priority to CUDA stream priorities
Definition at line 26 of file Tpetra_Details_ExecutionSpaces.cpp.
ExecSpace Tpetra::Details::Spaces::make_instance | ( | ) |
Construct a Kokkos execution space instance with the following priority.
If priority is not supported, returns the default space instance
Definition at line 151 of file Tpetra_Details_ExecutionSpaces.hpp.
ExecSpace Tpetra::Details::Spaces::make_instance | ( | const Priority & | prio | ) |
Construct a Kokkos::Cuda execution space instance with the requested priority.
This creates a stream with the requested priority, and attaches it to a new space
Construct a Kokkos execution space instance with the requested priority
ExecSpace | the type of Kokkos execution space to produce |
prio | The Tpetra::Details::Spaces::Priority of the execution space to produce |
Definition at line 193 of file Tpetra_Details_ExecutionSpaces.hpp.
Teuchos::RCP< const ExecSpace > Tpetra::Details::Spaces::space_instance | ( | const Priority & | priority, |
int | i = 0 |
||
) |
get a strong Teuchos::RCP to Tpetra-managed Kokkos execution space instance i
priority | the priority of the execution space instance |
ExecSpace | the type of Execution |
Definition at line 380 of file Tpetra_Details_ExecutionSpaces.hpp.
void Tpetra::Details::Spaces::exec_space_wait | ( | const char * | msg, |
const S1 & | waitee, | ||
const S2 & | |||
) |
cause future work submitted to waiter to wait for the current work in waitee to finish
S1 | the type of waitee |
S2 | the type of waiter |
msg | |
waitee | Future work submitted to this stream will wait for work in waiter to finish |
waiter | Future work submitted to waitee will wait for work in this stream to finish |
For Kokkos::Cuda execution spaces, this function may return immediately (i.e., without synchronizing the host).
Definition at line 414 of file Tpetra_Details_ExecutionSpaces.hpp.