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.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 1
16 #define SACADO_VIEW_CUDA_HIERARCHICAL_DFAD_STRIDED 1
17 #define SACADO_KOKKOS_USE_MEMORY_POOL 1
18 
19 #include "Kokkos_Macros.hpp"
20 
21 // Temporarily disable DFad testing on HIP. HIP does not support "new"
22 // on device so temporary allocations don't work.
23 #ifdef KOKKOS_ENABLE_HIP
24 #define SACADO_TEST_DFAD 0
25 #else
26 #define SACADO_TEST_DFAD 1
27 #endif
28 
29 #include "Fad_KokkosTests.hpp"
30 
33 #undef VIEW_FAD_TESTS_FDC
34 #define VIEW_FAD_TESTS_FDC( F, D ) \
35  VIEW_FAD_TESTS_FLD( F, LeftContiguous64, D ) \
36  VIEW_FAD_TESTS_FLD( F, RightContiguous64, D )
37 
38 #undef VIEW_FAD_TESTS_SFDC
39 #define VIEW_FAD_TESTS_SFDC( F, D ) \
40  VIEW_FAD_TESTS_SFLD( F, LeftContiguous64, D ) \
41  VIEW_FAD_TESTS_SFLD( F, RightContiguous64, D )
42 
43 // Instantiate tests for HIP device
44 using Kokkos::HIP;
45 VIEW_FAD_TESTS_D( HIP )
46 
47 int main( int argc, char* argv[] ) {
48  Teuchos::GlobalMPISession mpiSession(&argc, &argv);
49 
50  // Initialize HIP
51  Kokkos::InitializationSettings init_args;
52  init_args.set_device_id(0);
53  Kokkos::initialize( init_args );
54  Kokkos::print_configuration(std::cout);
55 
56 #if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
58  Kokkos::HIP(),
60  global_fad_size*sizeof(double),
61  4*global_fad_size*sizeof(double),
62  128*global_fad_size*sizeof(double)
63  );
64 #endif
65 
67 
68 #if defined(SACADO_KOKKOS_USE_MEMORY_POOL)
69  Sacado::destroyGlobalMemoryPool(Kokkos::HIP());
70 #endif
71 
72  // Finalize HIP
73  Kokkos::finalize();
74 
75  return res;
76 }
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)
#define VIEW_FAD_TESTS_D(D)