CUTLASS 3.4.0 (#1286)
* CUTLASS 3.4.0 * Update CHANGELOG.md --------- Co-authored-by: Pradeep Ramani <prramani@nvidia.com>
This commit is contained in:
co-authored by
Pradeep Ramani
parent
b7508e3379
commit
8236f30675
@@ -169,7 +169,7 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<SM80_16x8x16_F32F16F16F32_TN>,
|
||||
Layout<Shape<_2,_2,_1>>, // 2x2x1 thread group
|
||||
Layout<Shape<_1,_2,_1>>>; // 1x2x1 value group for 16x16x16 MMA and LDSM
|
||||
Tile<_32,_32,_16>>; // 32x32x16 MMA for LDSM, 1x2x1 value group
|
||||
|
||||
// A
|
||||
static constexpr int kAlignmentA = 8;
|
||||
@@ -301,7 +301,7 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<SM80_16x8x8_F32TF32TF32F32_TN>,
|
||||
Layout<Shape<_2,_2,_1>, Stride<_2, _1, _1>>, // 2x2x1 thread group
|
||||
Layout<Shape<_1,_2,_1>>>; // 1x2x1 value group for 16x16x8 and LDSM
|
||||
Tile<_32,_32,_8>>; // 32x32x8 MMA for LDSM, 1x2x1 value group
|
||||
|
||||
// A
|
||||
static constexpr int kAlignmentA = 4;
|
||||
@@ -352,7 +352,7 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<SM80_16x8x32_S32S8S8S32_TN>,
|
||||
Layout<Shape<_2,_2,_1>>, // 2x2x1 thread group
|
||||
Layout<Shape<_1,_2,_1>>>; // 1x2x1 value group for 16x16x32 and LDSM
|
||||
Tile<_32,_32,_32>>; // 16x16x32 MMA for LDSM, 1x2x1 value group
|
||||
|
||||
// A (M,K) K-major
|
||||
using SmemLayoutAtomA = decltype(
|
||||
@@ -798,9 +798,9 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using DispatchPolicy = MainloopSm80CpAsync<3>;
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<UniversalFMA<ElementAccumulator, ElementA, ElementB, ElementC>>,
|
||||
Layout<Shape<_16, _16, _1>>,
|
||||
Layout<Shape< _2, _2, _1>>,
|
||||
Tile<Layout<_2,_16>,Layout<_2,_16>,Underscore>>;
|
||||
Layout<Shape<_16, _16, _1>>, // 16x16x1 thread group
|
||||
Tile<Layout<Shape<_16,_2>,Stride<_2,_1>>, // 32x32x1 MMA with perm for load vectorization
|
||||
Layout<Shape<_16,_2>,Stride<_2,_1>>,Underscore>>;
|
||||
|
||||
// A (M,K) M-major
|
||||
using SmemLayoutAtomA = Layout<Shape<_128,_16>>;
|
||||
@@ -920,9 +920,8 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using DispatchPolicy = MainloopSm80CpAsync<3>;
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<UniversalFMA<ElementAccumulator, ElementA, ElementB, ElementC>>,
|
||||
Layout<Shape<_16, _16, _1>>,
|
||||
Layout<Shape< _2, _1, _1>>,
|
||||
Tile<Layout<_2,_16>,Underscore,Underscore>>;
|
||||
Layout<Shape<_16, _16, _1>>, // 16x16x1 thread group
|
||||
Tile<Layout<Shape<_16,_2>,Stride<_2,_1>>,Underscore,Underscore>>; // 32x16x1 MMA with perm for load vectorization
|
||||
|
||||
// A (M,K) M-major
|
||||
using SmemLayoutAtomA = Layout<Shape<_128,_16>>;
|
||||
@@ -982,9 +981,8 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using DispatchPolicy = MainloopSm80CpAsync<3>;
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<UniversalFMA<ElementAccumulator, ElementA, ElementB, ElementC>>,
|
||||
Layout<Shape<_16, _16, _1>>,
|
||||
Layout<Shape< _1, _2, _1>>,
|
||||
Tile<Underscore,Layout<_2,_16>,Underscore>>;
|
||||
Layout<Shape<_16, _16, _1>>, // 16x16x1 thread group
|
||||
Tile<Underscore,Layout<Shape<_16,_2>,Stride<_2,_1>>,Underscore>>; // 16x32x1 MMA with perm for load vectorization
|
||||
|
||||
// A (M,K) K-major
|
||||
using SmemLayoutAtomA = Layout<Shape <_128, _16>,
|
||||
@@ -1041,8 +1039,9 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<SM80_8x8x4_F64F64F64F64_TN>, // Atom
|
||||
Layout<Shape<_2,_2,_1>>, // Atom layout
|
||||
Layout<Shape<_2,_2,_1>>, // Val layout
|
||||
Tile<Layout<_2,_16>,Layout<_2,_16>,Underscore>>; // Mode permutations
|
||||
Tile<Layout<Shape<_16,_2>,Stride<_2,_1>>, // 32x32x4 MMA with perm for load vectorization
|
||||
Layout<Shape<_16,_2>,Stride<_2,_1>>,
|
||||
Underscore>>;
|
||||
|
||||
// A (M,K) K-Major
|
||||
using SmemLayoutAtomA = decltype(
|
||||
@@ -1119,8 +1118,9 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<SM80_8x8x4_F64F64F64F64_TN>, // Atom
|
||||
Layout<Shape<_2,_2,_1>>, // Atom layout
|
||||
Layout<Shape<_2,_2,_1>>, // Val layout
|
||||
Tile<Layout<_2,_16>,Layout<_2,_16>,Underscore>>; // Mode permutations
|
||||
Tile<Layout<Shape<_16,_2>,Stride<_2,_1>>, // 32x32x4 MMA with perm for load vectorization
|
||||
Layout<Shape<_16,_2>,Stride<_2,_1>>,
|
||||
Underscore>>;
|
||||
|
||||
// A (M,K) M-Major
|
||||
using SmemLayoutAtomA = decltype(
|
||||
@@ -1183,8 +1183,9 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<SM80_8x8x4_F64F64F64F64_TN>, // Atom
|
||||
Layout<Shape<_2,_2,_1>>, // Atom layout
|
||||
Layout<Shape<_2,_2,_1>>, // Val layout
|
||||
Tile<Layout<_2,_16>,Layout<_2,_16>,Underscore>>; // Mode permutations
|
||||
Tile<Layout<Shape<_16,_2>,Stride<_2,_1>>, // 32x32x4 MMA with perm for load vectorization
|
||||
Layout<Shape<_16,_2>,Stride<_2,_1>>,
|
||||
Underscore>>;
|
||||
|
||||
// A (M,K) M-Major
|
||||
using SmemLayoutAtomA = decltype(
|
||||
@@ -1247,8 +1248,9 @@ struct DefaultGemmConfigurationToCutlass3Types<
|
||||
using TiledMma = TiledMMA<
|
||||
MMA_Atom<SM80_8x8x4_F64F64F64F64_TN>, // Atom
|
||||
Layout<Shape<_2,_2,_1>>, // Atom layout
|
||||
Layout<Shape<_2,_2,_1>>, // Val layout
|
||||
Tile<Layout<_2,_16>,Layout<_2,_16>,Underscore>>; // Mode permutations
|
||||
Tile<Layout<Shape<_16,_2>,Stride<_2,_1>>, // 32x32x4 MMA with perm for load vectorization
|
||||
Layout<Shape<_16,_2>,Stride<_2,_1>>,
|
||||
Underscore>>;
|
||||
|
||||
// A (M,K) K-Major
|
||||
using SmemLayoutAtomA = decltype(
|
||||
|
||||
Reference in New Issue
Block a user