CUTLASS 2.0 (#62)

CUTLASS 2.0

Substantially refactored for

- Better performance, particularly for native Turing Tensor Cores
- Robust and durable templates spanning the design space
- Encapsulated functionality embodying modern C++11 programming techniques
- Optimized containers and data types for efficient, generic, portable device code

Updates to:
- Quick start guide
- Documentation
- Utilities
- CUTLASS Profiler

Native Turing Tensor Cores
- Efficient GEMM kernels targeting Turing Tensor Cores
- Mixed-precision floating point, 8-bit integer, 4-bit integer, and binarized operands

Coverage of existing CUTLASS functionality:
- GEMM kernels targeting CUDA and Tensor Cores in NVIDIA GPUs
- Volta Tensor Cores through native mma.sync and through WMMA API
- Optimizations such as parallel reductions, threadblock rasterization, and intra-threadblock reductions
- Batched GEMM operations
- Complex-valued GEMMs

Note: this commit and all that follow require a host compiler supporting C++11 or greater.
This commit is contained in:
Andrew Kerr
2019-11-19 16:55:34 -08:00
committed by GitHub
parent b5cab177a9
commit fb335f6a5f
5434 changed files with 599799 additions and 250176 deletions
+5 -9
View File
@@ -1,12 +1,8 @@
var searchData=
[
['idx',['idx',['../structcutlass_1_1Coord.html#a872e1e0d9cc255fa438c04daaf10ad68',1,'cutlass::Coord']]],
['inc_5fadvance',['inc_advance',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a8c2618ac16362a8362dcddeed71c41d4',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::inc_advance()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a366c41dbc3bb82521db46b6d0db127b9',1,'cutlass::TileIteratorBase::Params::inc_advance()']]],
['inc_5fd',['inc_d',['../structcutlass_1_1TileIteratorBase_1_1Params.html#a901e9df85e9eee0e89a025b874e1b61b',1,'cutlass::TileIteratorBase::Params']]],
['inc_5fh',['inc_h',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#aed94505e5a269d5f33499e71284104f5',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::inc_h()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a15227102466522445261b6ea65c89c06',1,'cutlass::TileIteratorBase::Params::inc_h()']]],
['inc_5fw',['inc_w',['../structcutlass_1_1TileIteratorBase_1_1Params.html#af0be1271cfe6d6c03a9a76ff992d8a5c',1,'cutlass::TileIteratorBase::Params']]],
['isvector',['IsVector',['../structcutlass_1_1VectorTraits.html#abf96ea5dfd3212d388cb91e48cc0e6a2',1,'cutlass::VectorTraits::IsVector()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#aead181209c756f25ab5870682670bb99',1,'cutlass::VectorTraits< Vector< T, Lanes > >::IsVector()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a893488718d8437970c1b4ed4f4056620',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::IsVector()']]],
['iterator',['iterator',['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html#ae59f871c06a0ac7b9224f0de923082d7',1,'cutlass::gemm::SharedLoadStream::Params::iterator()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a54481a42d4125e3693a086269d9a7b10',1,'cutlass::gemm::SharedLoadStream::iterator()'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a0430f377595718291f84ef62eb6f4e57',1,'cutlass::TileLoadStream::Params::iterator()'],['../structcutlass_1_1TileLoadStream.html#ab6d8716c166d071615f4e78d9ac6efb8',1,'cutlass::TileLoadStream::iterator()'],['../structcutlass_1_1TileStoreStream_1_1Params.html#acd106661221997d7c5943daac8eb5088',1,'cutlass::TileStoreStream::Params::iterator()'],['../structcutlass_1_1TileStoreStream.html#a601a296ec830e9b98aca9d5cf4b4010c',1,'cutlass::TileStoreStream::iterator()']]],
['iterator_5fc',['iterator_c',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a0745d33dd881f6ca78b168e05b133ff8',1,'cutlass::gemm::GemmEpilogueTraits::Params']]],
['iterator_5fd',['iterator_d',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#abbcccb203f9823e621caa4475aa3d346',1,'cutlass::gemm::GemmEpilogueTraits::Params']]]
['has_5fdenorm',['has_denorm',['../structstd_1_1numeric__limits_3_01cutlass_1_1half__t_01_4.html#aaf46b5d03403828c1e6633fb714ffd84',1,'std::numeric_limits< cutlass::half_t >']]],
['has_5fdenorm_5floss',['has_denorm_loss',['../structstd_1_1numeric__limits_3_01cutlass_1_1half__t_01_4.html#a8b371f82151fd0238b7da083fa2b87a9',1,'std::numeric_limits< cutlass::half_t >']]],
['has_5finfinity',['has_infinity',['../structstd_1_1numeric__limits_3_01cutlass_1_1half__t_01_4.html#a6f7f2fbe6cd7a04803b90b8fa9172098',1,'std::numeric_limits< cutlass::half_t >']]],
['has_5fquiet_5fnan',['has_quiet_NaN',['../structstd_1_1numeric__limits_3_01cutlass_1_1half__t_01_4.html#a3d75832e46bc154758e35a03a624ccf8',1,'std::numeric_limits< cutlass::half_t >']]],
['has_5fsignaling_5fnan',['has_signaling_NaN',['../structstd_1_1numeric__limits_3_01cutlass_1_1half__t_01_4.html#a68a0d0f6ecc2f3b84f2e71475b2c48bd',1,'std::numeric_limits< cutlass::half_t >']]]
];