This class abstracts the semantics of a broadcast skeleton by exposing only the necessary information in its representation. More...
Public Member Functions | |
broadcast (Op const &op) | |
Op | get_op (void) const |
Public Types | |
using | skeleton_tag_type = tags::broadcast< Tag > |
using | base_type = decltype(skeletons::reverse_binary_tree< SetResult, Tag, Flows, Span >(std::declval< Op >())) |
This class abstracts the semantics of a broadcast skeleton by exposing only the necessary information in its representation.
A broadcast skeleton is simply a broadcast tree, however, since a broadcast tree can only handle an input of power-of-two sizes, this skeleton composes a broadcast tree to a an expansion skeleton.
This abstraction not only makes the reconstruction of a broadcast skeleton easier, but also provides access to the underlying operation of a broadcast skeleton. Furthermore, it reduces the symbol size for a broadcast skeleton, hence, reducing the total compilation time.
Op | the operation to be used while broadcasting. |
Flows | the flow to be used for the broadcast_tree . |
Span | the iteration space for elements on each level of the broadcast tree |
tag | determines the type of the broadcast skeleton |