CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Classes | Typedefs | Enumerations | Functions
cutlass::library Namespace Reference

Classes

struct  GemmArguments
 Arguments for GEMM. More...
 
struct  GemmArrayArguments
 Arguments for GEMM - used by all the GEMM operations. More...
 
struct  GemmArrayConfiguration
 Configuration for batched GEMM in which multiple matrix products are computed. More...
 
struct  GemmBatchedConfiguration
 Configuration for batched GEMM in which multiple matrix products are computed. More...
 
struct  GemmConfiguration
 Configuration for basic GEMM operations. More...
 
struct  GemmDescription
 Description of all GEMM computations. More...
 
struct  GemmPlanarComplexBatchedConfiguration
 Batched complex valued GEMM in which real and imaginary parts are separated by a stride. More...
 
struct  GemmPlanarComplexConfiguration
 Complex valued GEMM in which real and imaginary parts are separated by a stride. More...
 
class  Manifest
 Manifest of CUTLASS Library. More...
 
struct  MathInstructionDescription
 
class  Operation
 Base class for all device-wide operations. More...
 
struct  OperationDescription
 High-level description of an operation. More...
 
struct  TensorDescription
 Structure describing the properties of a tensor. More...
 
struct  TileDescription
 Structure describing the tiled structure of a GEMM-like computation. More...
 

Typedefs

using GemmBatchedArguments = GemmArguments
 Arguments to batched GEMM. More...
 
using GemmPlanarComplexArgments = GemmArguments
 
using GemmPlanarComplexBatchedArguments = GemmArguments
 
using OperationVector = std::vector< std::unique_ptr< Operation >>
 List of operations. More...
 

Enumerations

enum  LayoutTypeID {
  LayoutTypeID::kUnknown, LayoutTypeID::kColumnMajor, LayoutTypeID::kRowMajor, LayoutTypeID::kColumnMajorInterleavedK4,
  LayoutTypeID::kRowMajorInterleavedK4, LayoutTypeID::kColumnMajorInterleavedK16, LayoutTypeID::kRowMajorInterleavedK16, LayoutTypeID::kTensorNCHW,
  LayoutTypeID::kTensorNHWC, LayoutTypeID::kInvalid
}
 Layout type identifier. More...
 
enum  NumericTypeID {
  NumericTypeID::kUnknown, NumericTypeID::kVoid, NumericTypeID::kB1, NumericTypeID::kU4,
  NumericTypeID::kU8, NumericTypeID::kU16, NumericTypeID::kU32, NumericTypeID::kU64,
  NumericTypeID::kS4, NumericTypeID::kS8, NumericTypeID::kS16, NumericTypeID::kS32,
  NumericTypeID::kS64, NumericTypeID::kF16, NumericTypeID::kF32, NumericTypeID::kF64,
  NumericTypeID::kCF16, NumericTypeID::kCF32, NumericTypeID::kCF64, NumericTypeID::kCS4,
  NumericTypeID::kCS8, NumericTypeID::kCS16, NumericTypeID::kCS32, NumericTypeID::kCS64,
  NumericTypeID::kCU4, NumericTypeID::kCU8, NumericTypeID::kCU16, NumericTypeID::kCU32,
  NumericTypeID::kCU64, NumericTypeID::kInvalid
}
 Numeric data type. More...
 
enum  ComplexTransform { ComplexTransform::kNone, ComplexTransform::kConjugate }
 Enumeraed type describing a transformation on a complex value. More...
 
enum  OperationKind { OperationKind::kGemm, OperationKind::kInvalid }
 Enumeration indicating the kind of operation. More...
 
enum  ScalarPointerMode { ScalarPointerMode::kHost, ScalarPointerMode::kDevice, ScalarPointerMode::kInvalid }
 Enumeration indicating whether scalars are in host or device memory. More...
 
enum  SplitKMode {
  SplitKMode::kNone, SplitKMode::kSerial, SplitKMode::kParallel, SplitKMode::kParallelSerial,
  SplitKMode::kInvalid
}
 Describes how reductions are performed across threadblocks. More...
 
enum  OpcodeClassID { OpcodeClassID::kSimt, OpcodeClassID::kTensorOp, OpcodeClassID::kWmmaTensorOp, OpcodeClassID::kInvalid }
 Indicates the classificaition of the math instruction. More...
 
enum  GemmKind {
  GemmKind::kGemm, GemmKind::kBatched, GemmKind::kArray, GemmKind::kPlanarComplex,
  GemmKind::kPlanarComplexBatched, GemmKind::kInvalid
}
 Enumeration indicating what kind of GEMM operation to perform. More...
 

Functions

template<typename T >
from_string (std::string const &)
 Lexical cast from string. More...
 
char const * to_string (OperationKind type, bool pretty=false)
 Converts a NumericType enumerant to a string. More...
 
template<>
OperationKind from_string< OperationKind > (std::string const &str)
 Parses a NumericType enumerant from a string. More...
 
char const * to_string (NumericTypeID type, bool pretty=false)
 Converts a NumericType enumerant to a string. More...
 
template<>
NumericTypeID from_string< NumericTypeID > (std::string const &str)
 Parses a NumericType enumerant from a string. More...
 
int sizeof_bits (NumericTypeID type)
 Returns the size of a data type in bits. More...
 
bool is_complex_type (NumericTypeID type)
 Returns true if the numeric type is a complex data type or false if real-valued. More...
 
NumericTypeID get_real_type (NumericTypeID type)
 Returns the real-valued type underlying a type (only different from 'type' if complex) More...
 
bool is_integer_type (NumericTypeID type)
 Returns true if numeric type is integer. More...
 
bool is_signed_type (NumericTypeID type)
 Returns true if numeric type is signed. More...
 
bool is_signed_integer (NumericTypeID type)
 Returns true if numeric type is a signed integer. More...
 
bool is_unsigned_integer (NumericTypeID type)
 returns true if numeric type is an unsigned integer More...
 
bool is_float_type (NumericTypeID type)
 Returns true if numeric type is floating-point type. More...
 
char const * to_string (Status status, bool pretty=false)
 To string method for cutlass::Status. More...
 
char const * to_string (LayoutTypeID layout, bool pretty=false)
 Converts a LayoutTypeID enumerant to a string. More...
 
template<>
LayoutTypeID from_string< LayoutTypeID > (std::string const &str)
 Parses a LayoutType enumerant from a string. More...
 
int get_layout_stride_rank (LayoutTypeID layout_id)
 Returns the rank of a layout's stride base on the LayoutTypeID. More...
 
char const * to_string (OpcodeClassID type, bool pretty=false)
 Converts a OpcodeClassID enumerant to a string. More...
 
template<>
OpcodeClassID from_string< OpcodeClassID > (std::string const &str)
 Converts a OpcodeClassID enumerant from a string. More...
 
std::string lexical_cast (int64_t int_value)
 Lexical cast from int64_t to string. More...
 
bool lexical_cast (std::vector< uint8_t > &bytes, NumericTypeID type, std::string const &str)
 Lexical cast a string to a byte array. Returns true if cast is successful or false if invalid. More...
 
std::string lexical_cast (std::vector< uint8_t > &bytes, NumericTypeID type)
 Lexical cast TO a string FROM a byte array. Returns true if cast is successful or false if invalid. More...
 
bool cast_from_int64 (std::vector< uint8_t > &bytes, NumericTypeID type, int64_t src)
 Casts from a signed int64 to the destination type. Returns true if successful. More...
 
bool cast_from_uint64 (std::vector< uint8_t > &bytes, NumericTypeID type, uint64_t src)
 Casts from an unsigned int64 to the destination type. Returns true if successful. More...
 
bool cast_from_double (std::vector< uint8_t > &bytes, NumericTypeID type, double src)
 Casts from a real value represented as a double to the destination type. Returns true if successful. More...
 

Typedef Documentation

using cutlass::library::OperationVector = typedef std::vector<std::unique_ptr<Operation>>

Enumeration Type Documentation

Enumerator
kNone 
kConjugate 
Enumerator
kGemm 
kBatched 
kArray 
kPlanarComplex 
kPlanarComplexBatched 
kInvalid 
Enumerator
kUnknown 
kColumnMajor 
kRowMajor 
kColumnMajorInterleavedK4 
kRowMajorInterleavedK4 
kColumnMajorInterleavedK16 
kRowMajorInterleavedK16 
kTensorNCHW 
kTensorNHWC 
kInvalid 
Enumerator
kUnknown 
kVoid 
kB1 
kU4 
kU8 
kU16 
kU32 
kU64 
kS4 
kS8 
kS16 
kS32 
kS64 
kF16 
kF32 
kF64 
kCF16 
kCF32 
kCF64 
kCS4 
kCS8 
kCS16 
kCS32 
kCS64 
kCU4 
kCU8 
kCU16 
kCU32 
kCU64 
kInvalid 
Enumerator
kSimt 
kTensorOp 
kWmmaTensorOp 
kInvalid 
Enumerator
kGemm 
kInvalid 
Enumerator
kHost 
kDevice 
kInvalid 
Enumerator
kNone 
kSerial 
kParallel 
kParallelSerial 
kInvalid 

Function Documentation

bool cutlass::library::cast_from_double ( std::vector< uint8_t > &  bytes,
NumericTypeID  type,
double  src 
)
bool cutlass::library::cast_from_int64 ( std::vector< uint8_t > &  bytes,
NumericTypeID  type,
int64_t  src 
)
bool cutlass::library::cast_from_uint64 ( std::vector< uint8_t > &  bytes,
NumericTypeID  type,
uint64_t  src 
)
template<typename T >
T cutlass::library::from_string ( std::string const &  )
template<>
LayoutTypeID cutlass::library::from_string< LayoutTypeID > ( std::string const &  str)
template<>
NumericTypeID cutlass::library::from_string< NumericTypeID > ( std::string const &  str)
template<>
OpcodeClassID cutlass::library::from_string< OpcodeClassID > ( std::string const &  str)
template<>
OperationKind cutlass::library::from_string< OperationKind > ( std::string const &  str)
int cutlass::library::get_layout_stride_rank ( LayoutTypeID  layout_id)
NumericTypeID cutlass::library::get_real_type ( NumericTypeID  type)
bool cutlass::library::is_complex_type ( NumericTypeID  type)
bool cutlass::library::is_float_type ( NumericTypeID  type)
bool cutlass::library::is_integer_type ( NumericTypeID  type)
bool cutlass::library::is_signed_integer ( NumericTypeID  type)
bool cutlass::library::is_signed_type ( NumericTypeID  type)
bool cutlass::library::is_unsigned_integer ( NumericTypeID  type)
std::string cutlass::library::lexical_cast ( int64_t  int_value)
bool cutlass::library::lexical_cast ( std::vector< uint8_t > &  bytes,
NumericTypeID  type,
std::string const &  str 
)
std::string cutlass::library::lexical_cast ( std::vector< uint8_t > &  bytes,
NumericTypeID  type 
)
int cutlass::library::sizeof_bits ( NumericTypeID  type)
char const* cutlass::library::to_string ( OperationKind  type,
bool  pretty = false 
)
char const* cutlass::library::to_string ( NumericTypeID  type,
bool  pretty = false 
)
char const* cutlass::library::to_string ( Status  status,
bool  pretty = false 
)
char const* cutlass::library::to_string ( LayoutTypeID  layout,
bool  pretty = false 
)
char const* cutlass::library::to_string ( OpcodeClassID  type,
bool  pretty = false 
)