library.h File Reference

CUTLASS Library is an object-oriented approach to managing operations implemented by CUTLASS. More...

`#include <vector>`
`#include <string>`
`#include <cstdint>`
`#include <cuda_runtime.h>`
`#include "cutlass/cutlass.h"`
`#include "cutlass/matrix_coord.h"`
`#include "cutlass/tensor_coord.h"`
`#include "cutlass/layout/tensor.h"`
`#include "cutlass/gemm/gemm.h"`
Include dependency graph for library.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes

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

## Namespaces

| cutlass
| cutlass::library

## Typedefs

using | cutlass::library::GemmBatchedArguments = GemmArguments
| Arguments to batched GEMM. More...
using | cutlass::library::GemmPlanarComplexArgments = GemmArguments
using | cutlass::library::GemmPlanarComplexBatchedArguments = GemmArguments

## Enumerations

enum

cutlass::library::LayoutTypeID {
cutlass::library::LayoutTypeID::kUnknown, cutlass::library::LayoutTypeID::kColumnMajor, cutlass::library::LayoutTypeID::kRowMajor, cutlass::library::LayoutTypeID::kColumnMajorInterleavedK4,
cutlass::library::LayoutTypeID::kRowMajorInterleavedK4, cutlass::library::LayoutTypeID::kColumnMajorInterleavedK16, cutlass::library::LayoutTypeID::kRowMajorInterleavedK16, cutlass::library::LayoutTypeID::kTensorNCHW,
cutlass::library::LayoutTypeID::kTensorNHWC, cutlass::library::LayoutTypeID::kInvalid
}

| Layout type identifier. More...

enum

cutlass::library::NumericTypeID {
cutlass::library::NumericTypeID::kUnknown, cutlass::library::NumericTypeID::kVoid, cutlass::library::NumericTypeID::kB1, cutlass::library::NumericTypeID::kU4,
cutlass::library::NumericTypeID::kU8, cutlass::library::NumericTypeID::kU16, cutlass::library::NumericTypeID::kU32, cutlass::library::NumericTypeID::kU64,
cutlass::library::NumericTypeID::kS4, cutlass::library::NumericTypeID::kS8, cutlass::library::NumericTypeID::kS16, cutlass::library::NumericTypeID::kS32,
cutlass::library::NumericTypeID::kS64, cutlass::library::NumericTypeID::kF16, cutlass::library::NumericTypeID::kF32, cutlass::library::NumericTypeID::kF64,
cutlass::library::NumericTypeID::kCF16, cutlass::library::NumericTypeID::kCF32, cutlass::library::NumericTypeID::kCF64, cutlass::library::NumericTypeID::kCS4,
cutlass::library::NumericTypeID::kCS8, cutlass::library::NumericTypeID::kCS16, cutlass::library::NumericTypeID::kCS32, cutlass::library::NumericTypeID::kCS64,
cutlass::library::NumericTypeID::kCU4, cutlass::library::NumericTypeID::kCU8, cutlass::library::NumericTypeID::kCU16, cutlass::library::NumericTypeID::kCU32,
cutlass::library::NumericTypeID::kCU64, cutlass::library::NumericTypeID::kInvalid
}

| Numeric data type. More...
enum | cutlass::library::ComplexTransform { cutlass::library::ComplexTransform::kNone, cutlass::library::ComplexTransform::kConjugate }
| Enumeraed type describing a transformation on a complex value. More...
enum | cutlass::library::OperationKind { cutlass::library::OperationKind::kGemm, cutlass::library::OperationKind::kInvalid }
| Enumeration indicating the kind of operation. More...
enum | cutlass::library::ScalarPointerMode { cutlass::library::ScalarPointerMode::kHost, cutlass::library::ScalarPointerMode::kDevice, cutlass::library::ScalarPointerMode::kInvalid }
| Enumeration indicating whether scalars are in host or device memory. More...
enum | cutlass::library::SplitKMode { cutlass::library::SplitKMode::kNone, cutlass::library::SplitKMode::kSerial, cutlass::library::SplitKMode::kParallel, cutlass::library::SplitKMode::kParallelSerial, cutlass::library::SplitKMode::kInvalid }
| Describes how reductions are performed across threadblocks. More...
enum | cutlass::library::OpcodeClassID { cutlass::library::OpcodeClassID::kSimt, cutlass::library::OpcodeClassID::kTensorOp, cutlass::library::OpcodeClassID::kWmmaTensorOp, cutlass::library::OpcodeClassID::kInvalid }
| Indicates the classificaition of the math instruction. More...
enum | cutlass::library::GemmKind { cutlass::library::GemmKind::kGemm, cutlass::library::GemmKind::kBatched, cutlass::library::GemmKind::kArray, cutlass::library::GemmKind::kPlanarComplex, cutlass::library::GemmKind::kPlanarComplexBatched, cutlass::library::GemmKind::kInvalid }
| Enumeration indicating what kind of GEMM operation to perform. More...

## Functions

template<typename T >
T | cutlass::library::from_string (std::string const &)
| Lexical cast from string. More...
char const * | cutlass::library::to_string (OperationKind type, bool pretty=false)
| Converts a NumericType enumerant to a string. More...
template<>
OperationKind | cutlass::library::from_string< OperationKind > (std::string const &str)
| Parses a NumericType enumerant from a string. More...
char const * | cutlass::library::to_string (NumericTypeID type, bool pretty=false)
| Converts a NumericType enumerant to a string. More...
template<>
NumericTypeID | cutlass::library::from_string< NumericTypeID > (std::string const &str)
| Parses a NumericType enumerant from a string. More...
int | cutlass::library::sizeof_bits (NumericTypeID type)
| Returns the size of a data type in bits. More...
bool | cutlass::library::is_complex_type (NumericTypeID type)
| Returns true if the numeric type is a complex data type or false if real-valued. More...
NumericTypeID | cutlass::library::get_real_type (NumericTypeID type)
| Returns the real-valued type underlying a type (only different from 'type' if complex) More...
bool | cutlass::library::is_integer_type (NumericTypeID type)
| Returns true if numeric type is integer. More...
bool | cutlass::library::is_signed_type (NumericTypeID type)
| Returns true if numeric type is signed. More...
bool | cutlass::library::is_signed_integer (NumericTypeID type)
| Returns true if numeric type is a signed integer. More...
bool | cutlass::library::is_unsigned_integer (NumericTypeID type)
| returns true if numeric type is an unsigned integer More...
bool | cutlass::library::is_float_type (NumericTypeID type)
| Returns true if numeric type is floating-point type. More...
char const * | cutlass::library::to_string (Status status, bool pretty=false)
| To string method for cutlass::Status. More...
char const * | cutlass::library::to_string (LayoutTypeID layout, bool pretty=false)
| Converts a LayoutTypeID enumerant to a string. More...
template<>
LayoutTypeID | cutlass::library::from_string< LayoutTypeID > (std::string const &str)
| Parses a LayoutType enumerant from a string. More...
int | cutlass::library::get_layout_stride_rank (LayoutTypeID layout_id)
| Returns the rank of a layout's stride base on the LayoutTypeID. More...
char const * | cutlass::library::to_string (OpcodeClassID type, bool pretty=false)
| Converts a OpcodeClassID enumerant to a string. More...
template<>
OpcodeClassID | cutlass::library::from_string< OpcodeClassID > (std::string const &str)
| Converts a OpcodeClassID enumerant from a string. More...
std::string | cutlass::library::lexical_cast (int64_t int_value)
| Lexical cast from int64_t to string. More...
bool | cutlass::library::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 | cutlass::library::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 | cutlass::library::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 | cutlass::library::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 | cutlass::library::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...

## Detailed Description

Generally,

description - compile-time constant parameters used to instantiate an operation

configuration - runtime parameters with computationally expensive initialization

arguments - runtime parameters that may be passed to an initialized operation with low computational overhead