v4.2 release. (#2587)
* Fix default cluster callback values to 1 to avoid profiler failure when these values are not set in command line. * v4.2 release.
This commit is contained in:
@@ -469,7 +469,9 @@ CUTE_HOST_DEVICE void print(ArithmeticTupleIterator<ArithTuple> const& iter)
|
||||
template <class T, int... Ns>
|
||||
CUTE_HOST_DEVICE void print(ScaledBasis<T,Ns...> const& e)
|
||||
{
|
||||
print(e.value()); (void(printf("@%d", Ns)), ...);
|
||||
print(e.value());
|
||||
// Param pack trick to print in reverse
|
||||
[[maybe_unused]] int dummy; (dummy = ... = (void(printf("@%d", Ns)), 0));
|
||||
}
|
||||
|
||||
#if !defined(__CUDACC_RTC__)
|
||||
@@ -482,7 +484,9 @@ CUTE_HOST std::ostream& operator<<(std::ostream& os, ArithmeticTupleIterator<Ari
|
||||
template <class T, int... Ns>
|
||||
CUTE_HOST std::ostream& operator<<(std::ostream& os, ScaledBasis<T,Ns...> const& e)
|
||||
{
|
||||
os << e.value(); (void(os << "@" << Ns), ...);
|
||||
os << e.value();
|
||||
// Param pack trick to print in reverse
|
||||
[[maybe_unused]] int dummy; (dummy = ... = (void(os << "@" << Ns),0));
|
||||
return os;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
*
|
||||
**************************************************************************************************/
|
||||
#pragma once
|
||||
|
||||
#include "cutlass/cutlass.h"
|
||||
#if defined(__CUDACC_RTC__)
|
||||
#include <cuda/std/cstdint>
|
||||
#include CUDA_STD_HEADER(cstdint)
|
||||
#else
|
||||
#include <cstdint>
|
||||
#endif
|
||||
@@ -85,6 +85,8 @@ using CUTE_STL_NAMESPACE::uint16_t;
|
||||
using CUTE_STL_NAMESPACE::uint32_t;
|
||||
using CUTE_STL_NAMESPACE::uint64_t;
|
||||
using cutlass::uint128_t;
|
||||
using cutlass::uint256_t;
|
||||
|
||||
template <int N> struct uint_bit;
|
||||
template <> struct uint_bit< 1> { using type = uint1_t; };
|
||||
template <> struct uint_bit< 2> { using type = uint2_t; };
|
||||
@@ -95,6 +97,8 @@ template <> struct uint_bit< 16> { using type = uint16_t; };
|
||||
template <> struct uint_bit< 32> { using type = uint32_t; };
|
||||
template <> struct uint_bit< 64> { using type = uint64_t; };
|
||||
template <> struct uint_bit<128> { using type = cutlass::uint128_t; };
|
||||
template <> struct uint_bit<256> { using type = cutlass::uint256_t; };
|
||||
|
||||
template <int N>
|
||||
using uint_bit_t = typename uint_bit<N>::type;
|
||||
|
||||
|
||||
@@ -225,6 +225,27 @@ operator==(C<c>, R<a,b>) {
|
||||
return {};
|
||||
}
|
||||
|
||||
template <auto a, auto b, auto x, auto y>
|
||||
CUTE_HOST_DEVICE constexpr
|
||||
bool_constant<R<a,b>::num * R<x,y>::den < R<x,y>::num * R<a,b>::den>
|
||||
operator<(R<a,b>, R<x,y>) {
|
||||
return {};
|
||||
}
|
||||
|
||||
template <auto a, auto b, auto c>
|
||||
CUTE_HOST_DEVICE constexpr
|
||||
bool_constant<R<a,b>::num < c * R<a,b>::den>
|
||||
operator<(R<a,b>, C<c>) {
|
||||
return {};
|
||||
}
|
||||
|
||||
template <auto c, auto x, auto y>
|
||||
CUTE_HOST_DEVICE constexpr
|
||||
bool_constant<c * R<x,y>::den < R<x,y>::num>
|
||||
operator<(C<c>, R<x,y>) {
|
||||
return {};
|
||||
}
|
||||
|
||||
///////////////////////
|
||||
// Special functions //
|
||||
///////////////////////
|
||||
|
||||
Reference in New Issue
Block a user