MLIR  20.0.0git
Public Types | Public Attributes | List of all members
mlir::vector::WarpExecuteOnLane0LoweringOptions Struct Reference

#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
 

Detailed Description

Definition at line 19 of file VectorDistribution.h.

Member Typedef Documentation

◆ WarpAllocationFn

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.

◆ WarpSyncronizationFn

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.

Member Data Documentation

◆ warpAllocationFn

WarpAllocationFn mlir::vector::WarpExecuteOnLane0LoweringOptions::warpAllocationFn = nullptr

Definition at line 29 of file VectorDistribution.h.

◆ warpSyncronizationFn

WarpSyncronizationFn mlir::vector::WarpExecuteOnLane0LoweringOptions::warpSyncronizationFn = nullptr

Definition at line 36 of file VectorDistribution.h.


The documentation for this struct was generated from the following file: