52 if (!Kokkos::is_initialized()) {
53 HideOutputExceptOnProcess0 hideCerr(std::cerr, myRank);
54 HideOutputExceptOnProcess0 hideCout(std::cout, myRank);
58 std::vector<std::string> args = Teuchos::GlobalMPISession::getArgv();
59 int narg =
static_cast<int>(args.size());
61 std::vector<char*> args_c;
62 std::vector<std::unique_ptr<char[]>> args_;
63 for (
auto const& x : args) {
64 args_.emplace_back(
new char[x.size() + 1]);
65 char* ptr = args_.back().get();
66 strcpy(ptr, x.c_str());
67 args_c.push_back(ptr);
69 args_c.push_back(
nullptr);
71 Kokkos::initialize(narg, narg == 0 ?
nullptr : args_c.data());
74 Kokkos::initialize(*argc, *argv);
77 checkOldCudaLaunchBlocking();
79 std::atexit(finalizeKokkosIfNeeded);
82 Tpetra::Details::AddKokkosDeepCopyToTimeMonitor();
83 Tpetra::Details::AddKokkosFenceToTimeMonitor();
84 Tpetra::Details::AddKokkosFunctionsToTimeMonitor();
88 KokkosKernels::eager_initialize();