![]() |
Deepity
Ultra-fast, SIMD-accelerated Predictive Coding
|
| CDeep::ConvPCNetwork | Convolutional Predictive Coding Network built from ConvPCLayer |
| CDeep::DeviceMemoryArena | A 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::DirectKPPCNetwork | Predictive 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::DiscriminativePCNetwork | An abstracted class for an array of DiscriminativePCLayer |
| CDeep::FullPCNetwork | Predictive 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::GaussSeidelPCNetwork | Predictive 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::IComputeBackend | Device-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::CPUBackend | CPU 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::CUDABackend | CUDA 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::Layer | A deepity layer virtual class |
| CDeep::ConvPCLayer | Convolutional Predictive Coding layer (im2col-based). See the file-level warning above before enabling an unclamped middle layer |
| CDeep::DirectKPPCLayer | Predictive 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::FullPCLayer | PC 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::GaussSeidelPCLayer | PC 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::RBLayer | Restricted Boltzmann-style Predictive Coding (PC) Layer |
| CDeep::SimpleConvPCLayer | Convolutional 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::SimplePCLayer | Predictive Coding layer without precision weighting – the simpler, unweighted-energy counterpart to DiscriminativePCLayer |
| CDeep::MemoryArena | A 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::ModelIO | Static save/load helpers for any network type exposing GetLayers() – templated so it works across every PC network variant without each one reimplementing serialization |
| CDeep::ProfileAccumulator | 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) |
| CDeep::ProfileEntry | One registered layer's profiling data: its print label paired with its accumulator |
| CDeep::ScopedTimer | No-op stand-in for the PCN_PROFILE build of ScopedTimer above, so PCN_TIME() call sites compile identically either way |
| CDeep::SimpleConvPCNetwork | Convolutional Predictive Coding Network built from SimpleConvPCLayer – precision-free, AdamW-capable, device-aware |
| CDeep::SimplePCNetwork | An abstracted class for an array of SimplePCLayer |
| CDeep::StreamAlignedBatcher | Builds 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::Tensor | A device-aware, RAII-managed, move-only buffer – see the file-level note above for the full ownership/device contract |
| CDeep::TensorDescriptor | A named, shaped view into a layer's weight/bias data, for ModelIO's save/load (see Layer::GetStateDict()) |
| CTimer | Implementation by Alex: https://www.learncpp.com/cpp-tutorial/timing-your-code/ |