mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-12 17:26:00 +00:00
* support dynamic tensor descriptor * use buffer load OOB feature for padding case * add navi support * add int8x4 inference kernel Co-authored-by: Chao Liu <chao@ixt-rack-81.local.lan> Co-authored-by: Jing Zhang <jizhan@amd.com>
71 lines
2.0 KiB
C++
71 lines
2.0 KiB
C++
#ifndef CK_PRINT_HPP
|
|
#define CK_PRINT_HPP
|
|
|
|
#include "array.hpp"
|
|
#include "statically_indexed_array.hpp"
|
|
#include "container_helper.hpp"
|
|
#include "sequence.hpp"
|
|
|
|
namespace ck {
|
|
|
|
template <typename T>
|
|
__host__ __device__ void print_array(const char* s, T a)
|
|
{
|
|
using data_type = decltype(a.At(Number<0>{}));
|
|
constexpr index_t nsize = a.Size();
|
|
|
|
#if 0
|
|
if constexpr(is_same<data_type, uint32_t>{})
|
|
{
|
|
printf("%s size %u, {", s, nsize);
|
|
static_for<0, nsize, 1>{}([&a](auto i) constexpr { printf("%u, ", uint32_t{a[i]}); });
|
|
printf("}\n");
|
|
}
|
|
else if constexpr(is_same<data_type, int32_t>{})
|
|
{
|
|
printf("%s size %d, {", s, nsize);
|
|
static_for<0, nsize, 1>{}([&a](auto i) constexpr { printf("%d, ", int32_t{a[i]}); });
|
|
printf("}\n");
|
|
}
|
|
else if constexpr(is_same<data_type, bool>{})
|
|
{
|
|
printf("%s size %d, {", s, nsize);
|
|
static_for<0, nsize, 1>{}([&a](auto i) constexpr { printf("%d, ", bool{a[i]}); });
|
|
printf("}\n");
|
|
}
|
|
#else
|
|
printf("%s size %d, {", s, nsize);
|
|
static_for<0, nsize, 1>{}([&a](auto i) constexpr { printf("%d, ", int32_t{a[i]}); });
|
|
printf("}\n");
|
|
#endif
|
|
}
|
|
|
|
template <typename T>
|
|
__host__ __device__ void print_array_v2(const char* s, T a)
|
|
{
|
|
using data_type = decltype(a.At(Number<0>{}));
|
|
constexpr index_t nsize = a.Size();
|
|
|
|
#if 0
|
|
if constexpr(is_same<data_type, uint32_t>{})
|
|
{
|
|
printf("%s size %u, {", s, nsize);
|
|
static_for<0, nsize, 1>{}([&a](auto i) constexpr { printf("[%u] %u, ", i.value, a[i]); });
|
|
printf("}\n");
|
|
}
|
|
else if constexpr(is_same<data_type, int32_t>{})
|
|
{
|
|
printf("%s size %d, {", s, nsize);
|
|
static_for<0, nsize, 1>{}([&a](auto i) constexpr { printf("[%d] %d, ", i.value, a[i]); });
|
|
printf("}\n");
|
|
}
|
|
#else
|
|
printf("%s size %d, {", s, nsize);
|
|
static_for<0, nsize, 1>{}([&a](auto i) constexpr { printf("[%d] %d, ", i.value, a[i]); });
|
|
printf("}\n");
|
|
#endif
|
|
}
|
|
|
|
} // namespace ck
|
|
#endif
|