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