Sacado Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Fad_KokkosTests_HIP_Hierarchical_DFad.cpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Sacado Package
4 //
5 // Copyright 2006 NTESS and the Sacado contributors.
6 // SPDX-License-Identifier: LGPL-2.1-or-later
7 // *****************************************************************************
8 // @HEADER
9 
13 
14 // Re-test cuda with hierarchical cuda parallelism turned on (experimental)
15 #define SACADO_VIEW_CUDA_HIERARCHICAL_DFAD 1
16 #define SACADO_KOKKOS_USE_MEMORY_POOL 1
17 
18 #include "Fad_KokkosTests.hpp"
19 
22 #undef VIEW_FAD_TESTS_FDC
23 #define VIEW_FAD_TESTS_FDC( F, D ) \
24  VIEW_FAD_TESTS_FLD( F, LeftContiguous64, D ) \
25  VIEW_FAD_TESTS_FLD( F, RightContiguous64, D )
26 
27 #undef VIEW_FAD_TESTS_SFDC
28 #define VIEW_FAD_TESTS_SFDC( F, D ) \
29  VIEW_FAD_TESTS_SFLD( F, LeftContiguous64, D ) \
30  VIEW_FAD_TESTS_SFLD( F, RightContiguous64, D )
31 
32 // Instantiate tests for HIP device
33 
34 // ** Temporarily disable this test! ** The Memory Pool does not yet
35 // work for DFads on HIP. See the file Sacado_DynamicArrayTriats.hpp
36 // for cuda specializations that need to be mirrored into HIP.
37 
38 // using Kokkos::HIP;
39 // VIEW_FAD_TESTS_FDC( DFadType , HIP )
40 
41 int main( int argc, char* argv[] ) {
42  Teuchos::GlobalMPISession mpiSession(&argc, &argv);
43 
44  // Initialize Cuda
45  Kokkos::InitializationSettings init_args;
46  init_args.set_device_id(0);
47  Kokkos::initialize( init_args );
48  Kokkos::print_configuration(std::cout);
49 
50 #if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
52  Kokkos::HIP(),
54  global_fad_size*sizeof(double),
55  4*global_fad_size*sizeof(double),
56  256*global_fad_size*sizeof(double));
57 #endif
58 
60 
61 #if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
62  Sacado::destroyGlobalMemoryPool(Kokkos::HIP());
63 #endif
64 
65  // Finalize Cuda
66  Kokkos::finalize();
67 
68  return res;
69 }
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)
const int global_fad_size
Kokkos::LayoutContiguous< Kokkos::LayoutLeft, 64 > LeftContiguous64
const int global_num_rows
static int runUnitTestsFromMain(int argc, char *argv[])
const int global_num_cols
Kokkos::LayoutContiguous< Kokkos::LayoutRight, 64 > RightContiguous64
int main()
Definition: ad_example.cpp:171
void destroyGlobalMemoryPool(const ExecSpace &space)