Poplar and PopLibs
|
Fully-connected layers using sparse tensors. More...
#include <poplar/Graph.hpp>
#include <poplar/OptionFlags.hpp>
#include <poplar/Program.hpp>
#include <popsparse/FullyConnectedParams.hpp>
#include <popsparse/PlanningCache.hpp>
#include <popsparse/SparseTensor.hpp>
Go to the source code of this file.
Namespaces | |
namespace | popsparse |
Support for sparse matrices. | |
namespace | popsparse::dynamic |
Support for dynamic sparse matrices. | |
Functions | |
SparseTensor | popsparse::dynamic::createFullyConnectedWeights (poplar::Graph &graph, const poplar::Type &inputType, const FullyConnectedParams ¶ms, const poplar::DebugContext &debugContext={}, const poplar::OptionFlags &options={}, PlanningCache *cache=nullptr) |
Create a sparse tensor that is used as the weights W for a fully connected layer. More... | |
poplar::Tensor | popsparse::dynamic::createFullyConnectedInput (poplar::Graph &graph, const poplar::Type &inputType, const FullyConnectedParams ¶ms, const poplar::DebugContext &debugContext={}, const poplar::OptionFlags &options={}, PlanningCache *cache=nullptr) |
Create a dense tensor that is used as the input activations for a fully connected layer. More... | |
poplar::Tensor | popsparse::dynamic::fullyConnectedFwd (poplar::Graph &graph, const SparseTensor &weights, const poplar::Tensor &activations, const FullyConnectedParams &fcParams, poplar::program::Sequence &prog, const poplar::DebugContext &debugContext={}, const poplar::OptionFlags &options={}, PlanningCache *cache=nullptr) |
Run a fully connected forward (or inference) pass. More... | |
poplar::Tensor | popsparse::dynamic::fullyConnectedGradA (poplar::Graph &graph, const SparseTensor &weights, const poplar::Tensor &gradients, const FullyConnectedParams &fcParams, poplar::program::Sequence &prog, const poplar::DebugContext &debugContext={}, const poplar::OptionFlags &options={}, PlanningCache *cache=nullptr) |
Run a fully connected GradA pass. More... | |
poplar::Tensor | popsparse::dynamic::fullyConnectedSparseGradW (poplar::Graph &graph, const poplar::Tensor sparsityMetaInfo, const poplar::Tensor &gradA, const poplar::Tensor &activations, const FullyConnectedParams &fcParams, poplar::program::Sequence &prog, const poplar::DebugContext &debugContext={}, const poplar::OptionFlags &options={}, PlanningCache *cache=nullptr) |
Run a fully connected GradW pass to compute sparse gradients. More... | |
std::tuple< unsigned, unsigned, unsigned > | popsparse::dynamic::fullyConnectedDenseGradWSerialSplits (const poplar::Graph &graph, const poplar::Type &inputType, const FullyConnectedParams &fcParams, const poplar::OptionFlags &options_={}, PlanningCache *cache=nullptr) |
Report the serial splitting of a dense gradW output given the memory proportion limit given in options. More... | |
Fully-connected layers using sparse tensors.