STAPL API Reference |
Modules Classes |
The coarsening operator transform skeletons which generate very fine-grained dataflow graphs to the skeletons which can handle data with larger granularity. More...
Classes | |
struct | stapl::skeletons::transformations::transform< S, tags::butterfly< B >, tags::coarse< CoarseTag, ExecutionTag > > |
A coarse-grain butterfly can be created by first computing a butterfly skeleton with a coarsened operator on the coarsened input followed by a map of fine-grained butterfly skeletons on the produced results. More... | |
struct | stapl::skeletons::transformations::transform< S, tags::reverse_butterfly< B >, tags::coarse< CoarseTag, ExecutionTag > > |
A coarse-grain reverse-butterfly can be created by first computing a map of fine-grained butterfly skeletons followed by a coarse-grain reverse-butterfly with a coarsened operation on the produced results. More... | |
struct | stapl::skeletons::transformations::transform< stapl::skeletons::skeletons_impl::compose< stapl::tuple< S... >, Flows >, SkeletonTag, tags::coarse< CoarseTag, ExecutionTag > > |
A coarsening transformation on a composed skeleton applies coarsening on each individual skeleton and composes them again using the flow specification of the original fine-grain composition. More... | |
struct | stapl::skeletons::transformations::transform< S, tags::reduce< Tag >, tags::coarse< CoarseTag, ExecutionTag > > |
A simple coarse-grain reduce can be created by first computing local reduction on each location and applying reduction on the outcome of those local reductions. More... | |
struct | stapl::skeletons::transformations::transform< S, tags::reduce_to_locs, tags::coarse< CoarseTag, ExecutionTag > > |
A simple coarse-grain reduce to each location would use coarse_reduce and in addition propagates the value to each location. More... | |
struct | stapl::skeletons::transformations::transform< S, tags::scan< Tag, Alg >, tags::coarse< CoarseTag, ExecutionTag > > |
A coarsened version of scan algorithm. The type of the scan skeleton to be used is determined by Tag and Type . More... | |
struct | stapl::skeletons::transformations::transform< S, tags::scan< Tag, tags::exclusive >, tags::coarse< tags::naive, ExecutionTag > > |
This version of coarse scan skeleton is only kept for comparison purposes. This is the slowest version of a coarsened scan skeleton, since it has 4N memory accesses (2N accesses in computing the divide phase scan and 2N accesses in t he update phase). More... | |
struct | stapl::skeletons::transformations::transform< S, tags::scan_reduce< Tag, tags::exclusive >, tags::coarse< CoarseTag, ExecutionTag > > |
Coarsened version of exclusive scan_reduce skeleton. More... | |
struct | stapl::skeletons::transformations::transform< S, tags::scan_reduce< Tag, tags::inclusive >, tags::coarse< CoarseTag, ExecutionTag > > |
Coarsened version of inclusive scan_reduce skeleton. More... | |
struct | stapl::skeletons::transformations::transform< S, tags::serial< arity >, tags::coarse< CoarseTag, ExecutionTag > > |
A simple coarse-grain zip can be created by creating a zip of zips . This is the perfect example of simple division of work. More... | |
struct | stapl::skeletons::transformations::transform< S, tags::zip< Tag, arity >, tags::coarse< CoarseTag, ExecutionTag > > |
A simple coarse-grain zip can be created by creating a zip of zips . This is the perfect example of simple division of work. More... | |
struct | stapl::skeletons::transformations::transform< S, tags::zip_reduce< arity >, tags::coarse< CoarseTag, ExecutionTag > > |
A coarse-grain zip_reduce can be created by sequencing a coarse-grain zip of zip_reduces with a reduce . More... | |
struct | stapl::skeletons::optimizers::optimizer< tags::butterfly< B >, tags::sequential_execution > |
A butterfly optimizer is used whenever the inputs are local. The knowledge of the inputs being local allows the usage of std::accumulate for a faster execution. More... | |
struct | stapl::skeletons::optimizers::optimizer< tags::reduce< Align >, tags::sequential_execution > |
A reduce optimizer is used whenever the inputs are local to a nested execution which improves the performance. More... | |
struct | stapl::skeletons::optimizers::optimizer< tags::scan< Algorithm, tags::inclusive >, tags::sequential_execution > |
A scan optimizer is used for the scan algorithm whenever the inputs are local to a location. This optimizer calls std::partial_sum to compute the results. You should notice that the allocation of space for the result value takes significant time for larger inputs and should be used with care. More... | |
struct | stapl::skeletons::optimizers::optimizer< tags::zip< Tag, arity >, tags::sequential_execution > |
A zip optimizer is used in the cases that all views are local and their traversal would be fast which improves the performance. You have to notice that the inner vector creation takes some time and you have to consider it before using this optimizer. More... | |
struct | stapl::skeletons::optimizers::optimizer< tags::zip_reduce< arity >, tags::sequential_unroll< factor > > |
A zip_reduce optimizer is used in the cases that both views are local and their traversal would be fast which improves the performance. Tagged with tags::sequential_unroll allows directs the optimizer to unroll the sequential loop with the specified factor. More... | |
struct | stapl::skeletons::optimizers::optimizer< tags::zip_reduce< arity >, tags::sequential_execution > |
A zip_reduce optimizer is used in the cases that both views are local and their traversal would be fast which improves the performance. More... | |
The coarsening operator transform skeletons which generate very fine-grained dataflow graphs to the skeletons which can handle data with larger granularity.
Operator