aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Lex/ModuleDeclStateTest.cpp
diff options
context:
space:
mode:
authorGuray Ozen <guray.ozen@gmail.com>2023-10-05 10:54:13 +0200
committerGitHub <noreply@github.com>2023-10-05 10:54:13 +0200
commitd20fbc900783db3a87c8da622ede280d93f890bb (patch)
treec7544f804fe188debb6be12650d902f6ec4388e0 /clang/unittests/Lex/ModuleDeclStateTest.cpp
parentc7d6d62252e356be096462fc8b416bd6f725afbd (diff)
downloadllvm-d20fbc900783db3a87c8da622ede280d93f890bb.zip
llvm-d20fbc900783db3a87c8da622ede280d93f890bb.tar.gz
llvm-d20fbc900783db3a87c8da622ede280d93f890bb.tar.bz2
[MLIR][NVGPU] Introduce `nvgpu.wargroup.mma.store` Op for Hopper GPUs (#65441)
This PR introduces a new Op called `warpgroup.mma.store` to the NVGPU dialect of MLIR. The purpose of this operation is to facilitate storing fragmanted result(s) `nvgpu.warpgroup.accumulator` produced by `warpgroup.mma` to the given memref. An example of fragmentated matrix is given here : https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#wgmma-64n16-d The `warpgroup.mma.store` does followings: 1) Takes one or more `nvgpu.warpgroup.accumulator` type (fragmented results matrix) 2) Calculates indexes per thread in warp-group and stores the data into give memref. Here's an example usage: ``` // A warpgroup performs GEMM, results in fragmented matrix %result1, %result2 = nvgpu.warpgroup.mma ... // Stores the fragmented result to memref nvgpu.warpgroup.mma.store [%result1, %result2], %matrixD : !nvgpu.warpgroup.accumulator< fragmented = vector<64x128xf32>>, !nvgpu.warpgroup.accumulator< fragmented = vector<64x128xf32>> to memref<128x128xf32,3> ```
Diffstat (limited to 'clang/unittests/Lex/ModuleDeclStateTest.cpp')
0 files changed, 0 insertions, 0 deletions