Sacado Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
Fad_KokkosTests_HIP_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// Temporarily disable DFad testing on HIP. HIP does not support "new"
41// on device so temporary allocations don't work.
42#ifdef KOKKOS_ENABLE_HIP
43#define SACADO_TEST_DFAD 0
44#else
45#define SACADO_TEST_DFAD 1
46#endif
47
48#include "Fad_KokkosTests.hpp"
49
52#undef VIEW_FAD_TESTS_FDC
53#define VIEW_FAD_TESTS_FDC( F, D ) \
54 VIEW_FAD_TESTS_FLD( F, LeftContiguous64, D ) \
55 VIEW_FAD_TESTS_FLD( F, RightContiguous64, D )
56
57#undef VIEW_FAD_TESTS_SFDC
58#define VIEW_FAD_TESTS_SFDC( F, D ) \
59 VIEW_FAD_TESTS_SFLD( F, LeftContiguous64, D ) \
60 VIEW_FAD_TESTS_SFLD( F, RightContiguous64, D )
61
62// Instantiate tests for HIP device
63using Kokkos::Experimental::HIP;
65
66int main( int argc, char* argv[] ) {
67 Teuchos::GlobalMPISession mpiSession(&argc, &argv);
68
69 // Initialize HIP
70 Kokkos::InitializationSettings init_args;
71 init_args.set_device_id(0);
72 Kokkos::initialize( init_args );
73 Kokkos::print_configuration(std::cout);
74
75#if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
77 Kokkos::Experimental::HIP(),
79 global_fad_size*sizeof(double),
80 4*global_fad_size*sizeof(double),
81 128*global_fad_size*sizeof(double)
82 );
83#endif
84
85 int res = Teuchos::UnitTestRepository::runUnitTestsFromMain(argc, argv);
86
87#if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
88 Sacado::destroyGlobalMemoryPool(Kokkos::Experimental::HIP());
89#endif
90
91 // Finalize HIP
92 Kokkos::finalize();
93
94 return res;
95}
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, 64 > RightContiguous64
Kokkos::LayoutContiguous< Kokkos::LayoutLeft, 64 > LeftContiguous64
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)