Deepity
Ultra-fast, SIMD-accelerated Predictive Coding
Loading...
Searching...
No Matches
Deep::ProfileAccumulator Struct Reference

One layer's accumulated time-per-phase, in seconds – see the file-level note for the reconciliation invariants (PhaseSum() vs. the top-level totals vs. external wall-clock). More...

#include <Profile.h>

Public Member Functions

double PhaseSum () const noexcept
 Sum of every sub-phase timer (excludes the top-level calculateStateTotal/updateStateTotal, which measure the same work and would double-count if included – see the inline note).
void Print (const std::string &label) const
 Prints this accumulator's per-phase breakdown (with percentages of PhaseSum()) plus the top-level/sub-phase reconciliation check, to stdout.

Public Attributes

double errorConstruction = 0.0
 CalculateState: building the error term.
double energyCalculation = 0.0
 CalculateState: the energy reduction itself.
double forwardGemm = 0.0
 CalculateState: the forward prediction GEMM.
double biasAdd = 0.0
 CalculateState: bias-add after the forward GEMM.
double activationForward = 0.0
 CalculateState: forward activation function.
double activationDerivative = 0.0
 UpdateState: activation derivative.
double localErrorTerm = 0.0
 UpdateState: dz_dt = -p*e (was ownGradientTerm – not a backprop gradient).
double bottomUpConstruction = 0.0
 UpdateState: assembling the bottom-up term.
double feedbackGemm = 0.0
 UpdateState: the feedback GEMM.
double saxpyUpdate = 0.0
 UpdateState: the final z += ir*dz SAXPY.
double updateWeightsTotal = 0.0
 UpdateWeights(), whole-call total.
double updatePrecisionTotal = 0.0
 UpdatePrecision(), whole-call total.
double calculateStateTotal = 0.0
 CalculateState(), whole-call total.
double updateStateTotal = 0.0
 UpdateState(), whole-call total.
long long calculateStateCalls = 0
 Number of CalculateState() calls recorded.
long long updateStateCalls = 0
 Number of UpdateState() calls recorded.

Detailed Description

One layer's accumulated time-per-phase, in seconds – see the file-level note for the reconciliation invariants (PhaseSum() vs. the top-level totals vs. external wall-clock).

Member Function Documentation

◆ PhaseSum()

double Deep::ProfileAccumulator::PhaseSum ( ) const
inlinenoexcept

Sum of every sub-phase timer (excludes the top-level calculateStateTotal/updateStateTotal, which measure the same work and would double-count if included – see the inline note).

◆ Print()

void Deep::ProfileAccumulator::Print ( const std::string & label) const
inline

Prints this accumulator's per-phase breakdown (with percentages of PhaseSum()) plus the top-level/sub-phase reconciliation check, to stdout.

Parameters
labelHeading printed above this accumulator's rows, e.g. a layer's shape and identity (see LayerProfile()).

Member Data Documentation

◆ activationDerivative

double Deep::ProfileAccumulator::activationDerivative = 0.0

UpdateState: activation derivative.

◆ activationForward

double Deep::ProfileAccumulator::activationForward = 0.0

CalculateState: forward activation function.

◆ biasAdd

double Deep::ProfileAccumulator::biasAdd = 0.0

CalculateState: bias-add after the forward GEMM.

◆ bottomUpConstruction

double Deep::ProfileAccumulator::bottomUpConstruction = 0.0

UpdateState: assembling the bottom-up term.

◆ calculateStateCalls

long long Deep::ProfileAccumulator::calculateStateCalls = 0

Number of CalculateState() calls recorded.

◆ calculateStateTotal

double Deep::ProfileAccumulator::calculateStateTotal = 0.0

CalculateState(), whole-call total.

◆ energyCalculation

double Deep::ProfileAccumulator::energyCalculation = 0.0

CalculateState: the energy reduction itself.

◆ errorConstruction

double Deep::ProfileAccumulator::errorConstruction = 0.0

CalculateState: building the error term.

◆ feedbackGemm

double Deep::ProfileAccumulator::feedbackGemm = 0.0

UpdateState: the feedback GEMM.

◆ forwardGemm

double Deep::ProfileAccumulator::forwardGemm = 0.0

CalculateState: the forward prediction GEMM.

◆ localErrorTerm

double Deep::ProfileAccumulator::localErrorTerm = 0.0

UpdateState: dz_dt = -p*e (was ownGradientTerm – not a backprop gradient).

◆ saxpyUpdate

double Deep::ProfileAccumulator::saxpyUpdate = 0.0

UpdateState: the final z += ir*dz SAXPY.

◆ updatePrecisionTotal

double Deep::ProfileAccumulator::updatePrecisionTotal = 0.0

UpdatePrecision(), whole-call total.

◆ updateStateCalls

long long Deep::ProfileAccumulator::updateStateCalls = 0

Number of UpdateState() calls recorded.

◆ updateStateTotal

double Deep::ProfileAccumulator::updateStateTotal = 0.0

UpdateState(), whole-call total.

◆ updateWeightsTotal

double Deep::ProfileAccumulator::updateWeightsTotal = 0.0

UpdateWeights(), whole-call total.


The documentation for this struct was generated from the following file: