docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
gpu_reduce_layout.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <vector>
5
7
8namespace sdfg {
9namespace gpu {
10
20 struct Dimension {
21 int64_t stride;
22 int64_t count;
23 };
24
27 std::vector<Dimension> dimensions;
29 int64_t extent = 1;
30
34 ReductionLayout(symbolic::Expression origin, std::vector<Dimension> axes);
35
39
43};
44
45} // namespace gpu
46} // namespace sdfg
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
Definition cuda_arch.h:11
Definition analysis.h:7
One source-address axis, measured in scalar elements rather than bytes.
Definition gpu_reduce_layout.h:20
int64_t stride
Definition gpu_reduce_layout.h:21
int64_t count
Definition gpu_reduce_layout.h:22
int64_t extent
Number of compact slots, equal to the product of axis counts.
Definition gpu_reduce_layout.h:29
std::vector< Dimension > dimensions
Definition gpu_reduce_layout.h:27
symbolic::Expression pack(symbolic::Expression index) const
Return the compact slot for an original address, omitting gaps between axes.
ReductionLayout(symbolic::Expression origin, std::vector< Dimension > axes)
Sort and normalize axes relative to origin.
symbolic::Expression base
Original address for the all-zero coordinate.
Definition gpu_reduce_layout.h:26
symbolic::Expression unpack(symbolic::Expression slot) const
Return the original address for a compact slot.
Symbolic system for integer-based symbol analysis.