Poplar and PopLibs
|
Manage partitioning and grouping in tensors. More...
#include <functional>
#include <map>
#include <unordered_set>
#include <vector>
#include <poplar/Graph.hpp>
Go to the source code of this file.
Namespaces | |
namespace | poputil |
General utility functions for building graphs. | |
Typedefs | |
using | poputil::GroupingInfo = std::pair< unsigned, unsigned > |
Grouped dimension info. More... | |
Functions | |
unsigned | poputil::detectInnermostGrouping (const poplar::Graph &graph, const poplar::Tensor &t) |
Detect if the tensor t has a grouping in its innermost dimension. More... | |
std::vector< GroupingInfo > | poputil::detectDimGroupings (const poplar::Graph &graph, const poplar::Tensor &t) |
Find all grouped dimensions from the innermost grouped dimension moving outwards, returning groupings for each. More... | |
poplar::Tensor | poputil::createPartitionableTensor (poplar::Graph &graph, const poplar::Type &type, const std::vector< std::size_t > &shape, const std::vector< std::size_t > &nPartitions, const poplar::DebugContext &debugContext={}) |
Create a tensor with the given shape, so that when it is partitioned into slices according to the given number of partitions in each dimension, each slice is a single contiguous region. More... | |
void | poputil::iterateTensorPartitions (const poplar::Tensor &t, const std::vector< std::size_t > &nPartitions, const std::function< void(const std::vector< std::size_t > &i, const poplar::Tensor &s)> &f) |
Iterate a function over the partitions of a tensor. More... | |
Manage partitioning and grouping in tensors.