/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/loop_scheduler.hpp Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/loop_scheduler.hpp Source File#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/loop_scheduler.hpp Source File
loop_scheduler.hpp
Go to the documentation of this file.
1 // SPDX-License-Identifier: MIT
2 // Copyright (c) 2018-2025, Advanced Micro Devices, Inc. All rights reserved.
3 
4 #pragma once
5 
6 #if !defined(__HIPCC_RTC__) || !defined(CK_CODE_GEN_RTC)
7 #include <ostream>
8 #endif
9 
11 
12 namespace ck {
13 
14 enum struct LoopScheduler
15 {
16  Default,
17  Interwave,
18 };
19 
21 {
22 #if CK_EXPERIMENTAL_DEFAULT_TO_INTER_WAVE_SCHEDULING
24 #else
26 #endif // if CK_EXPERIMENTAL_DEFAULT_TO_INTER_WAVE_SCHEDULING
27 }
28 
29 } // namespace ck
30 
31 #if !defined(__HIPCC_RTC__) || !defined(CK_CODE_GEN_RTC)
32 inline std::ostream& operator<<(std::ostream& os, const ck::LoopScheduler& s)
33 {
34  switch(s)
35  {
36  case ck::LoopScheduler::Default: os << "Default"; break;
37  case ck::LoopScheduler::Interwave: os << "Interwave"; break;
38  default: os << "";
39  }
40  return os;
41 }
42 #endif
std::ostream & operator<<(std::ostream &os, const ck::LoopScheduler &s)
Definition: loop_scheduler.hpp:32
Definition: ck.hpp:267
LoopScheduler
Definition: loop_scheduler.hpp:15
constexpr LoopScheduler make_default_loop_scheduler()
Definition: loop_scheduler.hpp:20