You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This sample demonstrates various techniques to perform a large matrix multiplication where the matrix elements contain 16-bit `bfloat16` data.
6
+
The sample includes many different implementations:
7
+
8
+
1. The "naive" implementation is a very simple implementation.
9
+
It is not very fast, but it is easy to understand, and it has no extension dependencies so it will run on many devices.
10
+
2. The "dpas" kernels use sub-group extensions to improve performance.
11
+
On some devices, they will also use specialized matrix multiplication extensions to further improve performance.
12
+
Because these kernels require certain extensions or a specific sub-group size, they may not run on all devices.
13
+
3. The "dpas blockread" kernels use additional sub-group extensions to further improve performance.
14
+
15
+
Most of the optimized kernels operate on fixed size tiles of matrix data.
16
+
For some of these kernels, parameters such as the number of matrix tiles per-sub-group or the number of sub-groups per work-group may be modified via program build options.
17
+
Experiment with different options to see what performs the best!
0 commit comments