Summary of the Operations#
Basics#
transformapplies a function to each element of the sequence, equivalent to the functional operationmapselecttakes the first N` elements of the sequence satisfying a condition (via a selection mask or a predicate function)uniquereturns unique elements within a sequencehistogramgenerates a summary of the statistical distribution of the sequence
Aggregation#
reducetraverses the sequence while accumulating some data, equivalent to the functional operationfold_leftscanis the cumulative version ofreducewhich returns the sequence of the intermediate values taken by the accumulator
Differentiation#
adjacent_differencecomputes the difference between the current element and the previous or next one in the sequencediscontinuitydetects value change between the current element and the previous or next one in the sequence
Rearrangement#
sortrearranges the sequence by sorting it. It could be according to a comparison operator or a value using a radix approachexchangerearranges the elements according to a different stride configuration which is equivalent to a tensor axis transpositionshufflerotates the elements
Partition/Merge#
partitiondivides the sequence into two or more sequences according to a predicate while preserving some ordering propertiesmergemerges two ordered sequences into one while preserving the order
Data Movement#
storestores the sequence to a continuous memory zone. There are variations to use an optimized path or to specify how to store the sequence to better fit the access patterns of the CUs.loadthe complementary operations of the above ones.memcpycopies bytes between device sources and destinations
Other operations#
run_length_encodegenerates a compact representation of a sequencebinary_searchfinds for each element the index of an element with the same value in another sequence (which has to be sorted)configselects a kernel’s grid/block dimensions to tune the operation to a GPU