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
+4 -13
View File
@@ -1,16 +1,7 @@
var searchData=
[
['vector',['Vector',['../unioncutlass_1_1Vector.html',1,'cutlass']]],
['vector_3c_20bin1_5ft_2c_20klanes_5f_20_3e',['Vector< bin1_t, kLanes_ >',['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html',1,'cutlass']]],
['vector_3c_20half_2c_201_20_3e',['Vector< half, 1 >',['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html',1,'cutlass']]],
['vector_3c_20half_2c_20klanes_5f_20_3e',['Vector< half, kLanes_ >',['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html',1,'cutlass']]],
['vector_3c_20int4_5ft_2c_20klanes_5f_20_3e',['Vector< int4_t, kLanes_ >',['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html',1,'cutlass']]],
['vector_3c_20uint4_5ft_2c_20klanes_5f_20_3e',['Vector< uint4_t, kLanes_ >',['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html',1,'cutlass']]],
['vectorize',['Vectorize',['../structcutlass_1_1Vectorize.html',1,'cutlass']]],
['vectorize_3c_20vector_3c_20bin1_5ft_2c_2032_20_3e_2c_20klanes_5f_20_3e',['Vectorize< Vector< bin1_t, 32 >, kLanes_ >',['../structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html',1,'cutlass']]],
['vectorize_3c_20vector_3c_20int4_5ft_2c_208_20_3e_2c_20klanes_5f_20_3e',['Vectorize< Vector< int4_t, 8 >, kLanes_ >',['../structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html',1,'cutlass']]],
['vectorize_3c_20vector_3c_20uint4_5ft_2c_208_20_3e_2c_20klanes_5f_20_3e',['Vectorize< Vector< uint4_t, 8 >, kLanes_ >',['../structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html',1,'cutlass']]],
['vectortraits',['VectorTraits',['../structcutlass_1_1VectorTraits.html',1,'cutlass']]],
['vectortraits_3c_20vector_3c_20t_2c_20lanes_20_3e_20_3e',['VectorTraits< Vector< T, Lanes > >',['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html',1,'cutlass']]],
['vectortraits_3c_20vector_3c_20t_2c_20lanes_20_3e_20const_20_3e',['VectorTraits< Vector< T, Lanes > const >',['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html',1,'cutlass']]]
['unique_5fptr',['unique_ptr',['../classcutlass_1_1platform_1_1unique__ptr.html',1,'cutlass::platform']]],
['unique_5fptr_3c_20element_2c_20cutlass_3a_3adevice_5fmemory_3a_3aallocation_3a_3adeleter_20_3e',['unique_ptr< Element, cutlass::device_memory::allocation::deleter >',['../classcutlass_1_1platform_1_1unique__ptr.html',1,'cutlass::platform']]],
['unique_5fptr_3c_20t_2c_20cutlass_3a_3adevice_5fmemory_3a_3aallocation_3a_3adeleter_20_3e',['unique_ptr< T, cutlass::device_memory::allocation::deleter >',['../classcutlass_1_1platform_1_1unique__ptr.html',1,'cutlass::platform']]],
['unsigned_5ftype',['unsigned_type',['../structcutlass_1_1TypeTraits_3_01complex_3_01double_01_4_01_4_1_1unsigned__type.html',1,'cutlass::TypeTraits< complex< double > >']]]
];