MLIR
20.0.0git
|
#include "mlir/Dialect/Vector/Transforms/VectorDistribution.h"
Public Types | |
using | WarpAllocationFn = std::function< Value(Location, OpBuilder &, gpu::WarpExecuteOnLane0Op, Type)> |
Lamdba function to let users allocate memory needed for the lowering of WarpExecuteOnLane0Op. More... | |
using | WarpSyncronizationFn = std::function< void(Location, OpBuilder &, gpu::WarpExecuteOnLane0Op)> |
Lamdba function to let user emit operation to syncronize all the thread within a warp. More... | |
Public Attributes | |
WarpAllocationFn | warpAllocationFn = nullptr |
WarpSyncronizationFn | warpSyncronizationFn = nullptr |
Definition at line 19 of file VectorDistribution.h.
using mlir::vector::WarpExecuteOnLane0LoweringOptions::WarpAllocationFn = std::function<Value( Location, OpBuilder &, gpu::WarpExecuteOnLane0Op, Type)> |
Lamdba function to let users allocate memory needed for the lowering of WarpExecuteOnLane0Op.
The function needs to return an allocation that the lowering can use as temporary memory. The allocation needs to match the shape of the type (the type may be VectorType or a scalar) and be availble for the current warp. If there are several warps running in parallel the allocation needs to be split so that each warp has its own allocation.
Definition at line 27 of file VectorDistribution.h.
using mlir::vector::WarpExecuteOnLane0LoweringOptions::WarpSyncronizationFn = std::function<void(Location, OpBuilder &, gpu::WarpExecuteOnLane0Op)> |
Lamdba function to let user emit operation to syncronize all the thread within a warp.
After this operation all the threads can see any memory written before the operation.
Definition at line 34 of file VectorDistribution.h.
WarpAllocationFn mlir::vector::WarpExecuteOnLane0LoweringOptions::warpAllocationFn = nullptr |
Definition at line 29 of file VectorDistribution.h.
WarpSyncronizationFn mlir::vector::WarpExecuteOnLane0LoweringOptions::warpSyncronizationFn = nullptr |
Definition at line 36 of file VectorDistribution.h.