|
Poplar and PopLibs
|
This file is for internal use only and should not be used. More...
#include "popops/Expr.hpp"#include <poplar/PerfEstimateFunc.hpp>#include <poplar/Target.hpp>#include <poplar/VectorLayout.hpp>#include <popops/OperationDef.hpp>Go to the source code of this file.
Classes | |
| struct | popops::internal::MultiSliceTargetParameters |
| Cycle estimate for MultiSlice vertex. More... | |
| struct | popops::internal::MultiUpdateOpTargetParameters |
| Cycle estimate for MultiUpdateAdd vertex. More... | |
| struct | popops::internal::CastTargetParameters |
| Target parameters used in cast estimation. More... | |
Namespaces | |
| namespace | popops |
| Common functions, such as elementwise and reductions. | |
Functions | |
| std::uint64_t | popops::internal::basicOpSupervisorOverhead (const bool isScaledPtr64Type=false) |
| Supervisor context cycle estimate for BinaryOp and UnaryOp Supervisor/ MultiVertex codelets. More... | |
| std::uint64_t | popops::internal::basicOpLoopCycles (const unsigned numElems, const unsigned vectorSize, const unsigned cyclesPerVector) |
| Cycle cost for processing an arbitrary number of elements given the cycle cost for processing a vector of elements simultaneously. More... | |
| std::uint64_t | popops::internal::binaryOpInnerLoopCycles (const poplar::Target &target, const poplar::Type &type, const unsigned cyclesPerVector, const bool vectorize, const unsigned numElems, const std::uint64_t overheadPerLoop) |
| Cycle cost for processing an arbitrary number of elements given the cycle cost for processing a vector of elements simultaneously. More... | |
| std::uint64_t | popops::internal::getDynamicSlice1DEstimate (const poplar::Target &target, const poplar::Type &type, const unsigned regionSize, const unsigned numSubElements) |
| Cycle estimate for Dynamic Slice 1D vertex. More... | |
| std::uint64_t | popops::internal::getBinaryOp1DInPlaceEstimate (const poplar::Target &target, const poplar::Type &type, const popops::expr::BinaryOpType op, const unsigned numElems) |
| Cycle estimate for Binary-1D In-Place MultiVertex. More... | |
This file is for internal use only and should not be used.
| std::uint64_t popops::internal::basicOpLoopCycles | ( | const unsigned | numElems, |
| const unsigned | vectorSize, | ||
| const unsigned | cyclesPerVector | ||
| ) |
Cycle cost for processing an arbitrary number of elements given the cycle cost for processing a vector of elements simultaneously.
| numElems | Number of elements in the operand. |
| vectorSize | Size of vector of elements that can be processed simultaneously. |
| cyclesPerVector | Cycle cost per vector of elements. |
| std::uint64_t popops::internal::basicOpSupervisorOverhead | ( | const bool | isScaledPtr64Type = false | ) |
Supervisor context cycle estimate for BinaryOp and UnaryOp Supervisor/ MultiVertex codelets.
| isScaledPtr64Type | Is true if vector vertex field is ScaledPtr64 and false otherwise. |
| std::uint64_t popops::internal::binaryOpInnerLoopCycles | ( | const poplar::Target & | target, |
| const poplar::Type & | type, | ||
| const unsigned | cyclesPerVector, | ||
| const bool | vectorize, | ||
| const unsigned | numElems, | ||
| const std::uint64_t | overheadPerLoop | ||
| ) |
Cycle cost for processing an arbitrary number of elements given the cycle cost for processing a vector of elements simultaneously.
| target | The target on which the operation should be estimated |
| type | Data type of elements. |
| cyclesPerVector | Cycle cost per vector of elements. |
| vectorSize | Size of vector of elements that be processed simultaneously. |
| numElems | Number of elements in the operand. |
| overheadPerLoop | Cycles overhead per loop. |
| std::uint64_t popops::internal::getBinaryOp1DInPlaceEstimate | ( | const poplar::Target & | target, |
| const poplar::Type & | type, | ||
| const popops::expr::BinaryOpType | op, | ||
| const unsigned | numElems | ||
| ) |
Cycle estimate for Binary-1D In-Place MultiVertex.
| target | The target on which the operation should be estimated. |
| type | Data type of elements. |
| op | Binary operator type. |
| numElems | Total number of output elements. |
| std::uint64_t popops::internal::getDynamicSlice1DEstimate | ( | const poplar::Target & | target, |
| const poplar::Type & | type, | ||
| const unsigned | regionSize, | ||
| const unsigned | numSubElements | ||
| ) |
Cycle estimate for Dynamic Slice 1D vertex.
| target | The target on which the operation should be estimated. |
| type | Data type of elements. |
| regionSize | Number of elements in tensor to be sliced. |
| numSubElements | Number of elements per slice. |