CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round > Class Template Reference

#include <conversion_op.h>

Classes

struct  Params
 Host-constructable parameters structure. More...
 

Public Types

using ElementOutput = ElementOutput_
 
using ElementAccumulator = ElementAccumulator_
 
using ElementCompute = ElementAccumulator_
 
using FragmentOutput = Array< ElementOutput, kCount >
 
using FragmentAccumulator = Array< ElementAccumulator, kCount >
 
using ComputeFragment = FragmentAccumulator
 

Public Member Functions

CUTLASS_HOST_DEVICE Convert (Params const &params=Params())
 Constructs the function object, possibly loading from pointers in host memory. More...
 
CUTLASS_HOST_DEVICE constexpr bool is_source_needed () const
 Returns true if source is needed based on state of runtime arguments. More...
 
CUTLASS_HOST_DEVICE constexpr bool is_source_ever_needed () const
 
CUTLASS_HOST_DEVICE FragmentOutput operator() (FragmentAccumulator const &accumulator, FragmentOutput const &source, ElementCompute uniform=ElementCompute(0)) const
 Computes linear scaling: D = alpha * accumulator + beta * source. More...
 

Static Public Attributes

static int const kCount = Count
 
static FloatRoundStyle const kRound = Round
 

Detailed Description

template<typename ElementOutput_, int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
class cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >

Converts the result without other operations

Member Typedef Documentation

template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
using cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::ComputeFragment = FragmentAccumulator
template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
using cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::ElementAccumulator = ElementAccumulator_
template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
using cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::ElementCompute = ElementAccumulator_
template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
using cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::ElementOutput = ElementOutput_
template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
using cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::FragmentAccumulator = Array<ElementAccumulator, kCount>
template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
using cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::FragmentOutput = Array<ElementOutput, kCount>

Constructor & Destructor Documentation

template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
CUTLASS_HOST_DEVICE cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::Convert ( Params const &  params = Params())
inline

Member Function Documentation

template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
CUTLASS_HOST_DEVICE constexpr bool cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::is_source_ever_needed ( ) const
inline

Constexpr function to enable the compiler to optimize away the source loading if it is never needed.

template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
CUTLASS_HOST_DEVICE constexpr bool cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::is_source_needed ( ) const
inline
template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
CUTLASS_HOST_DEVICE FragmentOutput cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::operator() ( FragmentAccumulator const &  accumulator,
FragmentOutput const &  source,
ElementCompute  uniform = ElementCompute(0) 
) const
inline

Member Data Documentation

template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
int const cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::kCount = Count
static
template<typename ElementOutput_ , int Count, typename ElementAccumulator_ = ElementOutput_, FloatRoundStyle Round = FloatRoundStyle::round_to_nearest>
FloatRoundStyle const cutlass::epilogue::thread::Convert< ElementOutput_, Count, ElementAccumulator_, Round >::kRound = Round
static

The documentation for this class was generated from the following file: