|
MLIR 23.0.0git
|
Default policy that provides the standard GPU mapping: gang(dim:1) -> BlockX (gridDim.x / blockIdx.x) gang(dim:2) -> BlockY (gridDim.y / blockIdx.y) gang(dim:3) -> BlockZ (gridDim.z / blockIdx.z) worker -> ThreadY (blockDim.y / threadIdx.y) vector -> ThreadX (blockDim.x / threadIdx.x) seq -> Sequential. More...
#include "mlir/Dialect/OpenACC/OpenACCParMapping.h"
Public Member Functions | |
| mlir::acc::GPUParallelDimAttr | map (MLIRContext *ctx, ParLevel level) const override |
| Map an OpenACC parallelism level to target dimension. | |
| bool | isVector (mlir::acc::GPUParallelDimAttr attr) const override |
| Check if the attribute represents vector parallelism. | |
| bool | isWorker (mlir::acc::GPUParallelDimAttr attr) const override |
| Check if the attribute represents worker parallelism. | |
| bool | isGang (mlir::acc::GPUParallelDimAttr attr) const override |
| Check if the attribute represents gang parallelism (any gang dimension). | |
| bool | isSeq (mlir::acc::GPUParallelDimAttr attr) const override |
| Check if the attribute represents sequential execution. | |
| Public Member Functions inherited from mlir::acc::ACCParMappingPolicy< mlir::acc::GPUParallelDimAttr > | |
| virtual | ~ACCParMappingPolicy ()=default |
| mlir::acc::GPUParallelDimAttr | gangDim (MLIRContext *ctx, ParLevel level) const |
| Convenience methods for specific parallelism levels. | |
| mlir::acc::GPUParallelDimAttr | workerDim (MLIRContext *ctx) const |
| mlir::acc::GPUParallelDimAttr | vectorDim (MLIRContext *ctx) const |
| mlir::acc::GPUParallelDimAttr | seqDim (MLIRContext *ctx) const |
Default policy that provides the standard GPU mapping: gang(dim:1) -> BlockX (gridDim.x / blockIdx.x) gang(dim:2) -> BlockY (gridDim.y / blockIdx.y) gang(dim:3) -> BlockZ (gridDim.z / blockIdx.z) worker -> ThreadY (blockDim.y / threadIdx.y) vector -> ThreadX (blockDim.x / threadIdx.x) seq -> Sequential.
Definition at line 118 of file OpenACCParMapping.h.
|
inlineoverridevirtual |
Check if the attribute represents gang parallelism (any gang dimension).
Implements mlir::acc::ACCParMappingPolicy< mlir::acc::GPUParallelDimAttr >.
Definition at line 148 of file OpenACCParMapping.h.
|
inlineoverridevirtual |
Check if the attribute represents sequential execution.
Implements mlir::acc::ACCParMappingPolicy< mlir::acc::GPUParallelDimAttr >.
Definition at line 152 of file OpenACCParMapping.h.
|
inlineoverridevirtual |
Check if the attribute represents vector parallelism.
Implements mlir::acc::ACCParMappingPolicy< mlir::acc::GPUParallelDimAttr >.
Definition at line 140 of file OpenACCParMapping.h.
|
inlineoverridevirtual |
Check if the attribute represents worker parallelism.
Implements mlir::acc::ACCParMappingPolicy< mlir::acc::GPUParallelDimAttr >.
Definition at line 144 of file OpenACCParMapping.h.
|
inlineoverridevirtual |
Map an OpenACC parallelism level to target dimension.
| ctx | The MLIR context |
| level | The OpenACC parallelism level (gang_dim1, gang_dim2, gang_dim3, worker, vector, or seq) |
Implements mlir::acc::ACCParMappingPolicy< mlir::acc::GPUParallelDimAttr >.
Definition at line 121 of file OpenACCParMapping.h.