Sacado Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
Fad_KokkosAtomicTests_Cuda_Hierarchical_DFad.cpp
Go to the documentation of this file.
1// @HEADER
2// ***********************************************************************
3//
4// Sacado Package
5// Copyright (2006) Sandia Corporation
6//
7// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8// the U.S. Government retains certain rights in this software.
9//
10// This library is free software; you can redistribute it and/or modify
11// it under the terms of the GNU Lesser General Public License as
12// published by the Free Software Foundation; either version 2.1 of the
13// License, or (at your option) any later version.
14//
15// This library is distributed in the hope that it will be useful, but
16// WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18// Lesser General Public License for more details.
19//
20// You should have received a copy of the GNU Lesser General Public
21// License along with this library; if not, write to the Free Software
22// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23// USA
24// Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps
25// (etphipp@sandia.gov).
26//
27// ***********************************************************************
28// @HEADER
29#include "Teuchos_UnitTestHarness.hpp"
30#include "Teuchos_UnitTestRepository.hpp"
31#include "Teuchos_GlobalMPISession.hpp"
32
33// Re-test cuda with hierarchical cuda parallelism turned on (experimental)
34#define SACADO_VIEW_CUDA_HIERARCHICAL_DFAD 1
35#define SACADO_KOKKOS_USE_MEMORY_POOL 1
36
38
41#undef VIEW_FAD_TESTS_FD
42#define VIEW_FAD_TESTS_FD( F, D ) \
43 VIEW_FAD_TESTS_FLD( F, LeftContiguous32, D ) \
44 VIEW_FAD_TESTS_FLD( F, RightContiguous32, D )
45
46// Instantiate tests for Cuda device
47#if defined(KOKKOS_ENABLE_CUDA_UVM) && SACADO_ENABLE_NEW_DESIGN
48using Kokkos::Cuda;
50#endif
51
52int main( int argc, char* argv[] ) {
53 Teuchos::GlobalMPISession mpiSession(&argc, &argv);
54
55 // Initialize Cuda
56 Kokkos::InitializationSettings init_args;
57 init_args.set_device_id(0);
58 Kokkos::initialize( init_args );
59 Kokkos::print_configuration(std::cout);
60
61#if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
63 Kokkos::Cuda(),
65 global_fad_size*sizeof(double),
66 4*global_fad_size*sizeof(double),
67 128*global_fad_size*sizeof(double));
68#endif
69
70 int res = Teuchos::UnitTestRepository::runUnitTestsFromMain(argc, argv);
71
72#if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
73 Sacado::destroyGlobalMemoryPool(Kokkos::Cuda());
74#endif
75
76 // Finalize Cuda
77 Kokkos::finalize();
78
79 return res;
80}
const int global_fad_size
const int global_num_rows
const int global_num_cols
Kokkos::LayoutContiguous< Kokkos::LayoutRight, 32 > RightContiguous32
Kokkos::LayoutContiguous< Kokkos::LayoutLeft, 32 > LeftContiguous32
int main()
void createGlobalMemoryPool(const ExecSpace &space, const size_t min_total_alloc_size, const uint32_t min_block_alloc_size, const uint32_t max_block_alloc_size, const uint32_t min_superblock_size)
void destroyGlobalMemoryPool(const ExecSpace &space)