diff --git a/cmake/EnableCompilerWarnings.cmake b/cmake/EnableCompilerWarnings.cmake index 0c81f8df98..4fdbb896de 100644 --- a/cmake/EnableCompilerWarnings.cmake +++ b/cmake/EnableCompilerWarnings.cmake @@ -99,6 +99,9 @@ else() -Wno-unused-lambda-capture -Wno-nvcc-compat ) + if(CK_CXX_STANDARD GREATER_EQUAL 20) + list(APPEND CMAKE_COMPILER_WARNINGS -Wno-c++20-compat) + endif() else() if (CMAKE_${COMPILER}_COMPILER_ID MATCHES "GNU" AND ${COMPILER} MATCHES "CXX") # cmake 3.5.2 does not support >=. diff --git a/experimental/builder/include/ck_tile/builder/reflect/instance_traits_util.hpp b/experimental/builder/include/ck_tile/builder/reflect/instance_traits_util.hpp index 160a560529..90e42528e1 100644 --- a/experimental/builder/include/ck_tile/builder/reflect/instance_traits_util.hpp +++ b/experimental/builder/include/ck_tile/builder/reflect/instance_traits_util.hpp @@ -60,45 +60,38 @@ consteval std::string_view type_name() template constexpr std::string_view layout_name() { - // Convolution layouts - if constexpr(std::is_same_v) - return "GNHWC"; - else if constexpr(std::is_same_v) - return "GKYXC"; - else if constexpr(std::is_same_v) - return "GNHWK"; - else if constexpr(std::is_same_v) - return "GKZYXC"; - else if constexpr(std::is_same_v) - return "GNDHWC"; - else if constexpr(std::is_same_v) - return "GNDHWK"; - else if constexpr(std::is_same_v) - return "NHWGC"; - else if constexpr(std::is_same_v) - return "KYXGC"; - else if constexpr(std::is_same_v) - return "NHWGK"; + if constexpr(requires { + { T::name } -> std::convertible_to; + }) + return T::name; else - static_assert(false, "unknown_layout"); + static_assert(false, "layout type is missing name attribute"); } // Convert element-wise operation types to string names template constexpr std::string_view elementwise_op_name() { - if constexpr(std::is_same_v) + namespace element_wise = ck::tensor_operation::element_wise; + + if constexpr(std::is_same_v) return "PassThrough"; - else if constexpr(std::is_same_v) + else if constexpr(std::is_same_v) return "Scale"; - else if constexpr(std::is_same_v) + else if constexpr(std::is_same_v) return "Bilinear"; - else if constexpr(std::is_same_v) + else if constexpr(std::is_same_v) return "Add"; - else if constexpr(std::is_same_v) + else if constexpr(std::is_same_v) return "AddRelu"; - else if constexpr(std::is_same_v) + else if constexpr(std::is_same_v) return "Relu"; + else if constexpr(std::is_same_v) + return "BiasNormalizeInInferClamp"; + else if constexpr(std::is_same_v) + return "Clamp"; + else if constexpr(std::is_same_v) + return "AddClamp"; else static_assert(false, "unknown_op"); }