Sacado Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
Fad_KokkosTests_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
37#include "Fad_KokkosTests.hpp"
38
41#undef VIEW_FAD_TESTS_FDC
42#define VIEW_FAD_TESTS_FDC( F, D ) \
43 VIEW_FAD_TESTS_FLD( F, LeftContiguous32, D ) \
44 VIEW_FAD_TESTS_FLD( F, RightContiguous32, D )
45
46#undef VIEW_FAD_TESTS_SFDC
47#define VIEW_FAD_TESTS_SFDC( F, D ) \
48 VIEW_FAD_TESTS_SFLD( F, LeftContiguous32, D ) \
49 VIEW_FAD_TESTS_SFLD( F, RightContiguous32, D )
50
51// Instantiate tests for Cuda device
52#if defined(KOKKOS_ENABLE_CUDA_UVM)
53using Kokkos::Cuda;
55#endif
56
57int main( int argc, char* argv[] ) {
58 Teuchos::GlobalMPISession mpiSession(&argc, &argv);
59
60 // Initialize Cuda
61 Kokkos::InitializationSettings init_args;
62 init_args.set_device_id(0);
63 Kokkos::initialize( init_args );
64 Kokkos::print_configuration(std::cout);
65
66#if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
68 Kokkos::Cuda(),
70 global_fad_size*sizeof(double),
71 4*global_fad_size*sizeof(double),
72 128*global_fad_size*sizeof(double));
73#endif
74
75 int res = Teuchos::UnitTestRepository::runUnitTestsFromMain(argc, argv);
76
77#if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
78 Sacado::destroyGlobalMemoryPool(Kokkos::Cuda());
79#endif
80
81 // Finalize Cuda
82 Kokkos::finalize();
83
84 return res;
85}
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
#define VIEW_FAD_TESTS_FDC(F, D)
int main()
Definition: ad_example.cpp:191
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)