Deepity
Ultra-fast, SIMD-accelerated Predictive Coding
Loading...
Searching...
No Matches
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 CDeep::ConvPCNetworkConvolutional Predictive Coding Network built from ConvPCLayer
 CDeep::DeviceMemoryArenaA 64-byte-aligned bump-pointer allocator over a single contiguous block of device memory, obtained via a supplied IComputeBackend (expected to be a CUDABackend in practice, though this class itself doesn't hard-require that specific type)
 CDeep::DirectKPPCNetworkPredictive Coding network built from DirectKPPCLayer, using Direct Kolen-Pollack feedback alignment (DFA) instead of symmetric weight transport. See the file-level warning above on its current verification status
 CDeep::DiscriminativePCNetworkAn abstracted class for an array of DiscriminativePCLayer
 CDeep::FullPCNetworkPredictive Coding network combining muPC scaling, optional residual connections, and DKP direct feedback – see the file-level note above for how its defaults reproduce DirectKPPCNetwork exactly
 CDeep::GaussSeidelPCNetworkPredictive Coding network built from GaussSeidelPCLayer, sweeping layers sequentially rather than updating them simultaneously. See the file-level warning above on its current verification status
 CDeep::IComputeBackendDevice-agnostic compute backend interface: every numerical primitive a layer/network needs, implemented once each by CPUBackend (SIMD/BLAS) and CUDABackend (kernels/cuBLAS/CUTLASS), so layer code never branches on device directly
 CDeep::CPUBackendCPU implementation of IComputeBackend: SIMD (via Activations.h) for elementwise ops, BLAS for GEMM. Graph capture/replay are no-ops (there's no async device queue to record)
 CDeep::CUDABackendCUDA implementation of IComputeBackend: device kernels for elementwise ops, cuBLAS for GEMM, CUTLASS for the fused forward path, CUDA graphs for capture/replay. See src/backend/cuda/ for the implementation, split by concern to mirror this interface's own section grouping
 CDeep::LayerA deepity layer virtual class
 CDeep::ConvPCLayerConvolutional Predictive Coding layer (im2col-based). See the file-level warning above before enabling an unclamped middle layer
 CDeep::DirectKPPCLayerPredictive Coding layer using Direct Kolen-Pollack feedback alignment (DFA): a per-layer feedback matrix Psi, trained to gradually correlate with W's transpose chain, replaces symmetric weight transport for the feedback term. See DirectKPPCNetwork.h's class docs and the paper's Appendix A.1
 CDeep::DiscriminativePCLayer
 CDeep::FullPCLayerPC layer combining muPC scaling, optional residual connections, and DKP direct feedback – every extra OFF by default, so plain defaults reproduce DirectKPPCLayer exactly. See the file-level note above for the full design rationale
 CDeep::GaussSeidelPCLayerPC layer with Gauss-Seidel (sequential-sweep) settling dynamics, in place of the usual simultaneous update. Not yet gradient-checked – see the file-level warning above
 CDeep::RBLayerRestricted Boltzmann-style Predictive Coding (PC) Layer
 CDeep::SimpleConvPCLayerConvolutional PC layer, precision-free, AdamW-capable, routed through IComputeBackend for GPU portability – see the file-level warning above for the GPU path's verification status
 CDeep::SimplePCLayerPredictive Coding layer without precision weighting – the simpler, unweighted-energy counterpart to DiscriminativePCLayer
 CDeep::MemoryArenaA 64-byte-aligned bump-pointer allocator over a single contiguous block of host memory. Every chunk handed out via AllocateFloats() is itself 64-byte aligned, satisfying this codebase's strict alignment requirement for AVX2/AVX-512 loads
 CDeep::ModelIOStatic save/load helpers for any network type exposing GetLayers() – templated so it works across every PC network variant without each one reimplementing serialization
 CDeep::ProfileAccumulatorOne 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)
 CDeep::ProfileEntryOne registered layer's profiling data: its print label paired with its accumulator
 CDeep::ScopedTimerNo-op stand-in for the PCN_PROFILE build of ScopedTimer above, so PCN_TIME() call sites compile identically either way
 CDeep::SimpleConvPCNetworkConvolutional Predictive Coding Network built from SimpleConvPCLayer – precision-free, AdamW-capable, device-aware
 CDeep::SimplePCNetworkAn abstracted class for an array of SimplePCLayer
 CDeep::StreamAlignedBatcherBuilds batches with a fixed, grouped number of examples per class – see the file-level note for why this exists and what it deliberately doesn't own
 CDeep::TensorA device-aware, RAII-managed, move-only buffer – see the file-level note above for the full ownership/device contract
 CDeep::TensorDescriptorA named, shaped view into a layer's weight/bias data, for ModelIO's save/load (see Layer::GetStateDict())
 CTimerImplementation by Alex: https://www.learncpp.com/cpp-tutorial/timing-your-code/