GatherStatistics
#include <popops/GatherStatistics.hpp>
Functions to generate histograms of data.
-
namespace popops
Common functions, such as elementwise and reductions.
Functions
-
poplar::Tensor histogram(poplar::Graph &graph, const poplar::Tensor &input, const poplar::Tensor &levels, bool absoluteOfInput, poplar::program::Sequence &prog, const poplar::DebugContext &debugContext = {}, const poplar::OptionFlags &options = {})
Gather a histogram representing the statistics of the input tensor.
Compare each element of
input
to each value in thelevels
tensor. Whereinput
>=levels
[N-1] andinput
<levels
[N], the histogram entry for that range will be incremented by 1. The lowest and highest histogram entries are bounded only bylevels
[0] andlevels
[N-1], respectively. The function returns a histogram tensor with a size one greater than the size of thelevels
tensor.Histogram options
useFloatArithmeticWithUnsignedIntOutput
(true, false) [=false]If true, use float arithmetic internally and reduce the result to unsigned int. This has the benefit of simplicity and speed, but integer accuracy limited by the 32-bit float data format (integers > 16,777,216 are not all exactly represented).
useFloatArithmetic
(true, false) [=false]- Deprecated:
use
useFloatArithmeticWithUnsignedIntOutput
instead.
If true, use float arithmetic internally and return a float result rather than an unsigned int result. This has the benefit of simplicity and speed, but integer accuracy limited by the 32-bit float data format (integers > 16,777,216 are not all exactly represented).
The options
useFloatArithmeticWithUnsignedIntOutput
anduseFloatArithmetic
must not both be true.
- Parameters
graph – The Poplar graph.
input – The input tensor on which to gather histogram statistics.
levels – The levels defining the comparisons to carry out in generating the histogram output.
absoluteOfInput – If true, the absolute value of each input is calculated before comparison to the
levels
data.prog – A sequence program to which the code performing the histogram will be appended.
debugContext – Optional debug information.
options – A list of options to control the operation of the histogram function.
- Throws
poplar::invalid_option – If options
useFloatArithmetic
anduseFloatArithmeticWithUnsignedIntOutput
are both true.- Returns
A tensor of type unsigned int that contains the levels + 1 histogram results. If the option
useFloatArithmetic
is “true” the returned tensor will have type float.
-
void histogram(poplar::Graph &graph, const poplar::Tensor &input, poplar::Tensor &output, bool updateOutput, const poplar::Tensor &levels, bool absoluteOfInput, poplar::program::Sequence &prog, const poplar::DebugContext &debugContext = {}, const poplar::OptionFlags &options = {})
Fill a tensor with a histogram representing the statistics of the input tensor.
Performs the same function as histogram() but writes the output to
output
. This must be one element larger than thelevels
tensor and have elements of type float or unsigned integer. This function allows histogram results to be accumulated over a number of calls using theupdateOutput
parameter.Deprecated Behaviour The determination of the internally used arithmetic based on the type of the output tensor is deprecated.
The usage of
output
tensor argument of typeFLOAT
is deprecated.Histogram options
useFloatArithmeticWithUnsignedIntOutput
(true, false) [=false]If true, use float arithmetic internally and reduce the result to unsigned int. This has the benefit of simplicity and speed, but integer accuracy limited by the 32-bit float data format (integers > 16,777,216 are not all exactly represented).
The
useFloatArithmetic
option must be false.- Parameters
graph – The Poplar graph.
input – The input tensor on which to gather histogram statistics.
output – The output tensor which will store the histogram results.
updateOutput – If true, the histogram counts will be added to the values already in
output
.levels – The levels defining the comparisons to carry out in generating the histogram output.
absoluteOfInput – If true, the absolute value of each input is calculated before comparison to the
levels
data.prog – A sequence program to which the code performing the histogram will be appended.
debugContext – Optional debug information.
options – A list of options to control the operation of the histogram function.
- Throws
poputil::poplibs_error – If option
useFloatArithmeticWithUnsignedIntOutput
is true and output does not have UNSIGNED_INT type.poplar::invalid_option – If option
useFloatArithmetic
is true.
-
poplar::Tensor histogram(poplar::Graph &graph, const poplar::Tensor &input, const poplar::Tensor &levels, bool absoluteOfInput, poplar::program::Sequence &prog, const poplar::DebugContext &debugContext = {}, const poplar::OptionFlags &options = {})