|
Mila 0.13.48
Deep Neural Network Library
|


Public Types | |
| using | AttentionType = GroupedQueryAttention<TDeviceType, TPrecision, TKvPolicy> |
| using | CompositeComponentBase = CompositeComponent<TDeviceType, TPrecision> |
| using | LinearType = Linear<TDeviceType, TPrecision, TWeightQuant> |
| using | MR = typename DeviceTypeTraits<TDeviceType>::memory_resource |
| using | ResidualType = Residual<TDeviceType, TPrecision> |
| using | RmsNormType = RmsNorm<TDeviceType, TPrecision> |
| using | RopeType = Rope<TDeviceType, TPrecision> |
| using | SwiGLUType = Swiglu<TDeviceType, TPrecision> |
| using | TensorType = Tensor<TPrecision, MR> |
| Public Types inherited from Mila::Dnn::CompositeComponent< TDeviceType, TPrecision > | |
| using | ComponentBase = Component<TDeviceType, TPrecision> |
| using | ComponentPtr = std::shared_ptr<Component<TDeviceType, TPrecision>> |
Public Member Functions | |
| LlamaBlock (const std::string &name, const LlamaConfig &config, std::optional< DeviceId > device_id=std::nullopt) | |
| ~LlamaBlock () override=default | |
| TensorType & | backward (const TensorType &input, const TensorType &output_grad) |
| TensorType & | decode (const TensorType &input, int position) |
| TensorType & | forward (const TensorType &input) |
| MemoryStats | getMemoryStats () const override |
| Return the current memory allocation breakdown for this component. | |
| const ComponentType | getType () const override |
| Get the component type identifier. | |
| void | load_ (ModelArchive &archive, SerializationMode mode) |
| TensorType & | prefill (const TensorType &input, int position_offset) |
| void | resetKVCache () |
| void | save_ (ModelArchive &archive, SerializationMode mode) const override |
| Save all child components recursively. | |
| void | setState (const GqaState &state) |
| Forward the shared GQA transient workspace to this block's attention layer. | |
| bool | supportsKVCache () const noexcept |
| void | zeroGradients () override |
| Clear all model-owned gradients for this component. | |
| Public Member Functions inherited from Mila::Dnn::CompositeComponent< TDeviceType, TPrecision > | |
| CompositeComponent (CompositeComponent &&) noexcept=default | |
| CompositeComponent (const CompositeComponent &)=delete | |
| CompositeComponent (const std::string &name) | |
| Construct composite component with name. | |
| virtual | ~CompositeComponent ()=default |
| CompositeComponent & | addComponent (ComponentPtr component) |
| Add a pre-constructed child component (chainable). | |
| size_t | childCount () const noexcept |
| Get the number of direct children. | |
| void | clearComponents () |
| Clear all child components. | |
| ComponentPtr | findComponent (const std::string &path) const |
| Resolve a dot-separated component path within this composite. | |
| ComponentPtr | getComponent (const std::string &name) const |
| Retrieve a direct child component by name. | |
| const std::vector< ComponentPtr > & | getComponents () const |
| Get all child components in insertion order. | |
| DeviceId | getDeviceId () const override |
| Get the compute device for this composite. | |
| std::vector< ITensor * > | getGradients () const override |
| Get all parameter gradients from all children. | |
| std::vector< ITensor * > | getParameters () const override |
| Get all parameters from all children. | |
| bool | hasChildren () const noexcept |
| Check if this composite has any children. | |
| bool | hasComponent (const std::string &name) const |
| Check if a named child component exists. | |
| CompositeComponent & | operator= (CompositeComponent &&) noexcept=default |
| CompositeComponent & | operator= (const CompositeComponent &)=delete |
| size_t | parameterCount () const override |
| Count parameters across all children. | |
| bool | removeComponent (const std::string &name) |
| Get the named child components map. | |
| void | synchronize () override |
| Synchronize all child components. | |
| std::string | toString () const override |
| Generate a human-readable description. | |
| ComponentPtr | tryFindComponent (const std::string &path) const |
| Try to resolve a dot-separated component path within this composite. | |
| Public Member Functions inherited from Mila::Dnn::Component< TDeviceType, TPrecision > | |
| Component (const std::string &name) | |
| Construct component with required name identifier. | |
| virtual | ~Component ()=default |
| virtual void | build (const BuildContext &context) final |
| Build the component with the provided BuildContext (canonical overload). | |
| const std::string | getName () const |
| Get the component's name identifier. | |
| virtual std::vector< std::string > | getParameterNames () const |
| List all available parameter names for this component. | |
| RuntimeMode | getRuntimeMode () const noexcept |
| Convenience accessor — true if currently in Eval mode. | |
| TrainingMode | getTrainingMode () const noexcept |
| The current runtime behavioral mode of this Component. | |
| virtual bool | isBuilt () const final |
| Returns true if build() has completed successfully. | |
| bool | isInferenceMode () const noexcept |
| bool | isTrainingMode () const noexcept |
| virtual void | loadParameter (const std::string &name, const Serialization::ITensorBlob &blob) |
| Load a parameter from serialized tensor data. | |
| void | setTrainingMode (TrainingMode mode) |
| Set the runtime behavioral mode for this Component. | |
Protected Member Functions | |
| void | onBuilding (const BuildContext &context) override |
| Hook invoked by build() to allocate component buffers. | |
| void | onTrainingModeChanging (TrainingMode training_mode) override |
| Hook invoked when training mode is about to change. | |
| Protected Member Functions inherited from Mila::Dnn::CompositeComponent< TDeviceType, TPrecision > | |
| template<typename TComponent> | |
| std::shared_ptr< TComponent > | getComponentAs (const std::string &name) const |
| Retrieve a typed child component by name. | |
| void | onExecutionContextSet () override |
| Hook invoked after ExecutionContext is set. | |
| virtual void | optimize () |
| Virtual hook for graph optimization after construction. | |
| Protected Member Functions inherited from Mila::Dnn::Component< TDeviceType, TPrecision > | |
| IExecutionContext * | getExecutionContext () const |
| Get the shared execution context. | |
| bool | hasExecutionContext () const noexcept |
| Check if execution context has been set. | |
| template<TensorDataType TParameterPrecision, typename TMemoryResource> | |
| void | loadParameterFromBlob (const std::string ¶m_name, const Serialization::ITensorBlob &blob, Tensor< TParameterPrecision, TMemoryResource > &target, const shape_t &expected_shape) |
| Load a tensor blob into a parameter tensor with validation. | |
| void | setExecutionContext (IExecutionContext *context) |
| Set the execution context for this component. | |
Private Member Functions | |
| void | createGraph () |
| void | validateBuildContext (const BuildContext &context) const |
| void | validateInputShape (const shape_t &input_shape) const |
Private Attributes | |
| std::shared_ptr< AttentionType > | attn_ { nullptr } |
| shape_t | cached_input_shape_ |
| LlamaConfig | config_ |
| std::unique_ptr< TensorType > | d_input_ { nullptr } |
| std::unique_ptr< TensorType > | d_res1_accum_ { nullptr } |
| std::shared_ptr< LinearType > | fc_down_ { nullptr } |
| std::shared_ptr< LinearType > | fc_gate_up_ { nullptr } |
| bool | forward_executed_ { false } |
| std::unique_ptr< TensorType > | k_ { nullptr } |
| shape_t | k_prefill_shape_ |
| shape_t | k_shape_ |
| TensorType * | last_attn_out_ { nullptr } |
| TensorType * | last_ffn_out_ { nullptr } |
| TensorType * | last_gate_up_out_ { nullptr } |
| TensorType * | last_out_proj_out_ { nullptr } |
| TensorType * | last_qkv_out_ { nullptr } |
| TensorType * | last_res1_out_ { nullptr } |
| TensorType * | last_res2_out_ { nullptr } |
| TensorType * | last_rms1_out_ { nullptr } |
| TensorType * | last_rms2_out_ { nullptr } |
| TensorType * | last_swiglu_out_ { nullptr } |
| std::shared_ptr< LinearType > | out_proj_ { nullptr } |
| std::unique_ptr< IExecutionContext > | owned_exec_context_ { nullptr } |
| std::unique_ptr< TensorType > | q_ { nullptr } |
| size_t | q_offset_ { 0 } |
| size_t | q_prefill_offset_ |
| shape_t | q_prefill_shape_ |
| shape_t | q_shape_ |
| std::shared_ptr< LinearType > | qkv_proj_ { nullptr } |
| std::shared_ptr< ResidualType > | res1_ { nullptr } |
| std::unique_ptr< TensorType > | res1_prefill_ { nullptr } |
| std::shared_ptr< ResidualType > | res2_ { nullptr } |
| std::shared_ptr< RmsNormType > | rms1_ { nullptr } |
| std::shared_ptr< RmsNormType > | rms2_ { nullptr } |
| std::shared_ptr< RopeType > | rope_ { nullptr } |
| std::shared_ptr< SwiGLUType > | swiglu_ { nullptr } |
| std::unique_ptr< TensorType > | v_ { nullptr } |
Additional Inherited Members | |
| Static Public Member Functions inherited from Mila::Dnn::Component< TDeviceType, TPrecision > | |
| static constexpr DeviceType | getDeviceType () |
| Compile-time device type for this component instance. | |
| static constexpr TensorDataType | getPrecision () noexcept |
| Compile-time tensor precision for this component instance. | |
| Protected Attributes inherited from Mila::Dnn::Component< TDeviceType, TPrecision > | |
| BuildContext | build_context_ { shape_t{ 1 }, RuntimeMode::Training } |
| The BuildContext stored at build time. | |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::AttentionType = GroupedQueryAttention<TDeviceType, TPrecision, TKvPolicy> |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::CompositeComponentBase = CompositeComponent<TDeviceType, TPrecision> |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::LinearType = Linear<TDeviceType, TPrecision, TWeightQuant> |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::MR = typename DeviceTypeTraits<TDeviceType>::memory_resource |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::ResidualType = Residual<TDeviceType, TPrecision> |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::RmsNormType = RmsNorm<TDeviceType, TPrecision> |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::RopeType = Rope<TDeviceType, TPrecision> |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::SwiGLUType = Swiglu<TDeviceType, TPrecision> |
| using Mila::Dnn::LlamaBlock< TDeviceType, TPrecision, TWeightQuant, TKvPolicy >::TensorType = Tensor<TPrecision, MR> |
|
inlineexplicit |
|
overridedefault |
|
inline |
|
inlineprivate |

|
inline |
|
inline |
|
inlineoverridevirtual |
Return the current memory allocation breakdown for this component.
Reflects allocations at the moment of the call. The returned stats naturally track the component lifecycle:
After construction — parameters only After build( Inference ) — parameters + T=1 state buffers After build( Training ) — parameters + T=full state buffers After setEvaluation( false ) — parameters + state + gradients
For CompositeComponent and Network, the returned stats are the recursive aggregate of all child components.
May be called at any time — no lifecycle preconditions.
Implements Mila::Dnn::Component< TDeviceType, TPrecision >.
|
inlineoverridevirtual |
Get the component type identifier.
Used for serialization and runtime type identification.
Implements Mila::Dnn::Component< TDeviceType, TPrecision >.
|
inline |
|
inlineoverrideprotectedvirtual |
Hook invoked by build() to allocate component buffers.
Receives the stored BuildContext. Implementations must use config.allocationSeqLen() when sizing output buffers — this is the single call that makes Inference and Training allocate the correct buffer sizes automatically without per-component logic.
The default implementation forwards to the legacy onBuilding( const shape_t& ) overload for backwards compatibility. New components should override this overload directly.
| config | Build-time configuration. Use config.allocationSeqLen() to obtain the correct output buffer sequence dimension. |
Reimplemented from Mila::Dnn::Component< TDeviceType, TPrecision >.
|
inlineoverrideprotectedvirtual |
Hook invoked when training mode is about to change.
Propagates the new mode to all child components. The hook runs with the Component's training mutex held; it MUST NOT call setTraining().
| is_training | New training mode (true = training, false = eval) |
Reimplemented from Mila::Dnn::CompositeComponent< TDeviceType, TPrecision >.
|
inline |
|
inline |
|
inlineoverridevirtual |
Save all child components recursively.
Follows the component serialization contract:
| archive | Archive to write to |
| mode | What to save (Checkpoint, WeightsOnly, Architecture) |
Reimplemented from Mila::Dnn::CompositeComponent< TDeviceType, TPrecision >.
|
inline |
Forward the shared GQA transient workspace to this block's attention layer.
Must be called after build() and before prefill() or decode().
| state | Non-owning pointers to workspace tensors owned by LlamaTransformer. |
|
inlinenoexcept |
|
inlineprivate |

|
inlineprivate |
|
inlineoverridevirtual |
Clear all model-owned gradients for this component.
Default implementation is a no-op. Composite components should override to recurse to children. Leaf components should override to zero their parameter and activation gradients using device-aware helpers.
Reimplemented from Mila::Dnn::Component< TDeviceType, TPrecision >.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |