Handle::~Handle()
{
- dealii::GrowingVectorMemory<
- LinearAlgebra::CUDAWrappers::Vector<float>>::release_unused_memory();
- dealii::GrowingVectorMemory<
- LinearAlgebra::CUDAWrappers::Vector<double>>::release_unused_memory();
-
- dealii::GrowingVectorMemory<
- LinearAlgebra::distributed::Vector<float, dealii::MemorySpace::CUDA>>::
- release_unused_memory();
- dealii::GrowingVectorMemory<
- LinearAlgebra::distributed::Vector<double, dealii::MemorySpace::CUDA>>::
- release_unused_memory();
-
cusolverStatus_t cusolver_error_code =
cusolverDnDestroy(cusolver_dn_handle);
AssertCusolver(cusolver_error_code);
// cards for different processes even if only one node is used. The choice below
// is based on the MPI proccess id.
// MPI needs to be initialized before using this function.
-//
-// Also initialize a dummy handle that makes sure that unused memory is released
-// before the device shuts down.
void
init_cuda(const bool use_mpi = false)
{
- static Utilities::CUDA::Handle cuda_handle;
-
# ifndef DEAL_II_WITH_MPI
Assert(use_mpi == false, ExcInternalError());
# endif