FreeTensor
Loading...
Searching...
No Matches
cutlass_micro_kernel_property.h
Go to the documentation of this file.
1#ifndef CUTLASS_MICRO_KERNEL_PROPERTY_H
2#define CUTLASS_MICRO_KERNEL_PROPERTY_H
3
4#include <expr.h>
5#include <sub_tree.h>
6
7namespace freetensor {
8
12
13 template <typename TwarpIdBatch, typename TwarpIdM, typename TwarpIdN,
14 typename TlaneId>
15 CutlassMicroKernelProperty(int nWarpBatch, int nWarpM, int nWarpN,
16 TwarpIdBatch &&warpIdBatch, TwarpIdM &&warpIdM,
17 TwarpIdN &&warpIdN, TlaneId &&laneId)
18 : nWarpBatch_(nWarpBatch), nWarpM_(nWarpM), nWarpN_(nWarpN),
19 warpIdBatch_(std::forward<TwarpIdM>(warpIdBatch)),
20 warpIdM_(std::forward<TwarpIdM>(warpIdM)),
21 warpIdN_(std::forward<TwarpIdN>(warpIdN)),
22 laneId_(std::forward<TlaneId>(laneId)) {}
23
24 void compHash() override;
25};
26
27inline Ref<CutlassMicroKernelProperty>
30 p->nWarpBatch_, p->nWarpM_, p->nWarpN_, deepCopy(p->warpIdBatch_),
31 deepCopy(p->warpIdM_), deepCopy(p->warpIdN_), deepCopy(p->laneId_));
32}
33
34} // namespace freetensor
35
36#endif // CUTLASS_MICRO_KERNEL_PROPERTY_H
Definition: sub_tree.h:50
static Ref make()
Definition: ref.h:105
Definition: allocator.h:9
Expr deepCopy(const Expr &op)
Definition: ast.cc:364
STL namespace.
Definition: cutlass_micro_kernel_property.h:9
CutlassMicroKernelProperty(int nWarpBatch, int nWarpM, int nWarpN, TwarpIdBatch &&warpIdBatch, TwarpIdM &&warpIdM, TwarpIdN &&warpIdN, TlaneId &&laneId)
Definition: cutlass_micro_kernel_property.h:15
int nWarpM_
Definition: cutlass_micro_kernel_property.h:10
Expr laneId_
Definition: cutlass_micro_kernel_property.h:11
Expr warpIdBatch_
Definition: cutlass_micro_kernel_property.h:11
void compHash() override
Definition: cutlass_micro_kernel_property.cc:6
int nWarpN_
Definition: cutlass_micro_kernel_property.h:10
int nWarpBatch_
Definition: cutlass_micro_kernel_property.h:10
Expr warpIdN_
Definition: cutlass_micro_kernel_property.h:11
Expr warpIdM_
Definition: cutlass_micro_kernel_property.h:11