mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-14 02:02:46 +00:00
Pass build flags to config.h (#1760)
* pass the build flags to config.h
* fix clang format
[ROCm/composable_kernel commit: 689a5ae45b]
This commit is contained in:
@@ -183,14 +183,17 @@ message("Building CK for the following targets: ${SUPPORTED_GPU_TARGETS}")
|
||||
if (SUPPORTED_GPU_TARGETS MATCHES "gfx9")
|
||||
message("Enabling XDL instances")
|
||||
add_definitions(-DCK_USE_XDL)
|
||||
set(CK_USE_XDL "ON")
|
||||
endif()
|
||||
if (SUPPORTED_GPU_TARGETS MATCHES "gfx94")
|
||||
message("Enabling FP8 gemms on native architectures")
|
||||
add_definitions(-DCK_USE_GFX94)
|
||||
set(CK_USE_GFX94 "ON")
|
||||
endif()
|
||||
if (SUPPORTED_GPU_TARGETS MATCHES "gfx11" OR SUPPORTED_GPU_TARGETS MATCHES "gfx12")
|
||||
message("Enabling WMMA instances")
|
||||
add_definitions(-DCK_USE_WMMA)
|
||||
set(CK_USE_WMMA "ON")
|
||||
endif()
|
||||
if (SUPPORTED_GPU_TARGETS MATCHES "gfx12")
|
||||
add_definitions(-DCK_USE_OCP_FP8)
|
||||
@@ -204,6 +207,7 @@ endif()
|
||||
option(CK_USE_FP8_ON_UNSUPPORTED_ARCH "Enable FP8 GEMM instances on older architectures" OFF)
|
||||
if(CK_USE_FP8_ON_UNSUPPORTED_ARCH AND (SUPPORTED_GPU_TARGETS MATCHES "gfx90a" OR SUPPORTED_GPU_TARGETS MATCHES "gfx908"))
|
||||
add_definitions(-DCK_USE_FP8_ON_UNSUPPORTED_ARCH)
|
||||
set(CK_USE_FP8_ON_UNSUPPORTED_ARCH "ON")
|
||||
endif()
|
||||
|
||||
# CK config file to record supported datatypes, etc.
|
||||
|
||||
@@ -111,6 +111,22 @@
|
||||
#cmakedefine CK_USE_WMMA @CK_USE_WMMA@
|
||||
#endif
|
||||
|
||||
#ifndef CK_USE_GFX94
|
||||
#cmakedefine CK_USE_GFX94 @CK_USE_GFX94@
|
||||
#endif
|
||||
|
||||
#ifndef DCK_USE_OCP_FP8
|
||||
#cmakedefine DCK_USE_OCP_FP8 @DCK_USE_OCP_FP8@
|
||||
#endif
|
||||
|
||||
#ifndef CK_USE_FNUZ_FP8
|
||||
#cmakedefine CK_USE_FNUZ_FP8 @CK_USE_FNUZ_FP8@
|
||||
#endif
|
||||
|
||||
#ifndef CK_USE_FP8_ON_UNSUPPORTED_ARCH
|
||||
#cmakedefine CK_USE_FP8_ON_UNSUPPORTED_ARCH @CK_USE_FP8_ON_UNSUPPORTED_ARCH@
|
||||
#endif
|
||||
|
||||
// clang-format on
|
||||
|
||||
#endif // CK_CONFIG_H_IN
|
||||
|
||||
@@ -20,9 +20,17 @@
|
||||
|
||||
namespace {
|
||||
// https://en.cppreference.com/w/cpp/types/conditional
|
||||
template <bool B, class T, class F> struct conditional { using type = T; };
|
||||
template <class T, class F> struct conditional<false, T, F> { using type = F; };
|
||||
}
|
||||
template <bool B, class T, class F>
|
||||
struct conditional
|
||||
{
|
||||
using type = T;
|
||||
};
|
||||
template <class T, class F>
|
||||
struct conditional<false, T, F>
|
||||
{
|
||||
using type = F;
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace ck {
|
||||
|
||||
@@ -200,8 +208,7 @@ __host__ __device__ static inline T cast_from_f8(fp8_storage_t x)
|
||||
typename conditional<
|
||||
sizeof(T) == 2,
|
||||
unsigned short int,
|
||||
typename conditional<sizeof(T) == 4, unsigned int, unsigned long long>::
|
||||
type>::type retval;
|
||||
typename conditional<sizeof(T) == 4, unsigned int, unsigned long long>::type>::type retval;
|
||||
|
||||
if constexpr(we == 5 && is_half && !is_fnuz)
|
||||
{
|
||||
@@ -547,8 +554,7 @@ __host__ __device__ static inline fp8_storage_t cast_to_f8(T _x, unsigned int rn
|
||||
using T_bitwise = typename conditional<
|
||||
sizeof(T) == 2,
|
||||
unsigned short int,
|
||||
typename conditional<sizeof(T) == 4, unsigned int, unsigned long long>::
|
||||
type>::type;
|
||||
typename conditional<sizeof(T) == 4, unsigned int, unsigned long long>::type>::type;
|
||||
T_bitwise x_bitwise = bit_cast<T_bitwise>(_x);
|
||||
|
||||
unsigned long long x{x_bitwise};
|
||||
|
||||
Reference in New Issue
Block a user