// SPDX-License-Identifier: MIT // Copyright (c) 2025, Advanced Micro Devices, Inc. All rights reserved. #pragma once #include #include #include "ck_tile/core.hpp" namespace ck_tile { // clang-format off template struct typeToStr; template <> struct typeToStr { static constexpr const char * name = "fp32"; }; template <> struct typeToStr { static constexpr const char * name = "fp16"; }; template <> struct typeToStr { static constexpr const char * name = "bf16"; }; template <> struct typeToStr { static constexpr const char * name = "fp8"; }; template <> struct typeToStr { static constexpr const char * name = "bf8"; }; template <> struct typeToStr { static constexpr const char * name = "int8"; }; template <> struct typeToStr { static constexpr const char * name = "pk_int4"; }; template struct memOpToStr; template <> struct memOpToStr { static constexpr const char * name = "set"; }; template <> struct memOpToStr { static constexpr const char * name = "atomic_add"; }; template <> struct memOpToStr { static constexpr const char * name = "atomic_max"; }; template <> struct memOpToStr { static constexpr const char * name = "add"; }; // clang-format on template std::string gemm_prec_str() { std::string base_str = std::string(typeToStr::name); if(!std::is_same_v) { base_str += "_" + std::string(typeToStr::name); } return base_str; } template std::string mem_op_string() { return std::string(memOpToStr::name); } } // namespace ck_tile