My Project
LoopsToGPU.h
Go to the documentation of this file.
1 //===- LoopsToGPU.h - Convert loop nests to GPU kernels ---------*- C++ -*-===//
2 //
3 // Part of the MLIR Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 #ifndef MLIR_CONVERSION_LOOPSTOGPU_LOOPSTOGPU_H_
9 #define MLIR_CONVERSION_LOOPSTOGPU_LOOPSTOGPU_H_
10 
11 #include "mlir/Support/LLVM.h"
12 
13 namespace mlir {
14 class AffineForOp;
15 struct LogicalResult;
16 class Value;
17 
18 namespace loop {
19 class ForOp;
20 } // end namespace loop
21 
33  unsigned numBlockDims,
34  unsigned numThreadDims);
35 
47  unsigned numBlockDims,
48  unsigned numThreadDims);
49 
71 LogicalResult convertLoopToGPULaunch(loop::ForOp forOp,
72  ArrayRef<Value> numWorkGroups,
73  ArrayRef<Value> workGroupSizes);
74 
75 } // namespace mlir
76 
77 #endif // MLIR_CONVERSION_LOOPSTOGPU_LOOPSTOGPU_H_
Definition: InferTypeOpInterface.cpp:20
LogicalResult convertLoopNestToGPULaunch(loop::ForOp forOp, unsigned numBlockDims, unsigned numThreadDims)
Definition: LogicalResult.h:18
Definition: LLVM.h:37
LogicalResult convertLoopToGPULaunch(loop::ForOp forOp, ArrayRef< Value > numWorkGroups, ArrayRef< Value > workGroupSizes)
Definition: LoopsToGPU.cpp:524
LogicalResult convertAffineLoopNestToGPULaunch(AffineForOp forOp, unsigned numBlockDims, unsigned numThreadDims)
Definition: LoopsToGPU.cpp:512