CUTLASS 3.1 (#915)

Co-authored-by: Aniket Shivam <ashivam@nvidia.com>
This commit is contained in:
ANIKET SHIVAM
2023-04-14 23:19:34 -04:00
committed by GitHub
co-authored by Aniket Shivam
parent 9b8166e3f0
commit d572cc1aab
482 changed files with 37175 additions and 16410 deletions
+2 -2
View File
@@ -199,9 +199,9 @@ which produces the following output for the above examples.
4 6 5 7
```
The multi-indices within the `layout_4x4` example are handled as expected and interpreted as a rank-2 layout.
The multi-indices within the `layout_2x4` example are handled as expected and interpreted as a rank-2 layout.
Note that for `layout_1x4`, we're using a 1-D coordinate for a 2-D multi-index in the second mode. In fact, we can generalize this and treat all of the above layouts as 1-D layouts. For instance, the following `print1D` function
Note that for `layout_2x4`, we're using a 1-D coordinate for a 2-D multi-index in the second mode. In fact, we can generalize this and treat all of the above layouts as 1-D layouts. For instance, the following `print1D` function
```c++
template <class Shape, class Stride>
+1 -7
View File
@@ -52,12 +52,6 @@ For example, `print_layout` can display a rank-2 layout in a table
It has an overload taking a rank-2 matrix layout and a thread layout,
that displays a table with the mapping between threads and values.
Some CuTe types might not have overloads for `print`,
but there are other ways to print their contents.
For example, copy atoms and mma atoms
(see elsewhere in this tutorial)
have a `print_all()` member function.
### Printing LaTeX output
The `cute::print_latex` function works like `cute::print`,
@@ -261,7 +255,7 @@ The complement B of a layout A with respect to an integer M satisfies the follow
1. $A$ and $B$ are *disjoint*: $A(x) \neq B(x)$ for all $x \neq 0$ in the domain of $A$.
2. B is *ordered*: $`B(x-1) < B(x)`$ for all $x$ in $\{0, 1, \dots, size(B) - 1\}$.
2. B is *ordered*: $B(x-1) \lt B(x)$ for all $x$ in $\{0, 1, \dots, size(B) - 1\}$.
3. B is *bounded* by M: $size(B) \geq M / size(A)$, and $cosize(B) \leq floor(M / cosize(A)) * cosize(A)$.
+2 -2
View File
@@ -24,8 +24,8 @@ and an `MMA_Traits` struct templated on the Operation struct type.
An "Operation" struct exposes the PTX instruction
for that specific operation.
It defines the arguments and interface it expects.
Operation structs have minimal software dependencies --
it does not use layouts, tensors, or non-standard numeric data types.
Operation structs have minimal software dependencies --
they do not use layouts, tensors, or non-standard numeric data types.
Different structs have different names
that describe what the MMA instruction does.
We will explain the naming scheme below.