gemm_pipeline_ag_bg_cr_scheduler.hpp Source File

gemm_pipeline_ag_bg_cr_scheduler.hpp Source File#

Composable Kernel: gemm_pipeline_ag_bg_cr_scheduler.hpp Source File
gemm_pipeline_ag_bg_cr_scheduler.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2024-2025, Advanced Micro Devices, Inc. All rights reserved.
3
4#pragma once
5
6#include <ostream>
7#include <sstream>
8
9#include "ck_tile/core.hpp"
10
11namespace ck_tile {
12
19
20enum struct TailNumber
21{
22 // Single / Double buffer pipeline
25
26 // Long prefetch pipeline, up to 8
34
35 // Unroll stages > Prefetch stages, number of loop is multiple of unroll stages
37 // Unroll stages <= Prefetch stages, number of loop is multiple of unroll stages add
38 // prefetchstages
40};
41
42} // namespace ck_tile
43
44inline std::ostream& operator<<(std::ostream& os, const ck_tile::GemmPipelineScheduler& s)
45{
46 switch(s)
47 {
48 case ck_tile::GemmPipelineScheduler::Default: os << "Default"; break;
49 case ck_tile::GemmPipelineScheduler::Intrawave: os << "Intrawave"; break;
50 case ck_tile::GemmPipelineScheduler::Interwave: os << "Interwave"; break;
51 default: os << "";
52 }
53 return os;
54}
55
56inline std::ostream& operator<<(std::ostream& os, const ck_tile::TailNumber& s)
57{
58 switch(s)
59 {
60 case ck_tile::TailNumber::Odd: os << "Odd"; break;
61 case ck_tile::TailNumber::Even: os << "Even"; break;
62 case ck_tile::TailNumber::One: os << "One"; break;
63 case ck_tile::TailNumber::Two: os << "Two"; break;
64 case ck_tile::TailNumber::Three: os << "Three"; break;
65 case ck_tile::TailNumber::Four: os << "Four"; break;
66 case ck_tile::TailNumber::Five: os << "Five"; break;
67 case ck_tile::TailNumber::Six: os << "Six"; break;
68 case ck_tile::TailNumber::Seven: os << "Seven"; break;
69 case ck_tile::TailNumber::Empty: os << "Empty"; break;
70 case ck_tile::TailNumber::Full: os << "Full"; break;
71 default: os << "";
72 }
73 return os;
74}
std::ostream & operator<<(std::ostream &os, const ck_tile::GemmPipelineScheduler &s)
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:44
Definition tile/core/algorithm/cluster_descriptor.hpp:13
TailNumber
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:21
@ One
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:27
@ Seven
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:33
@ Even
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:24
@ Odd
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:23
@ Four
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:30
@ Two
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:28
@ Full
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:39
@ Three
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:29
@ Empty
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:36
@ Five
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:31
@ Six
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:32
GemmPipelineScheduler
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:14
@ Intrawave
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:16
@ Default
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:15
@ Interwave
Definition gemm_pipeline_ag_bg_cr_scheduler.hpp:17