nemo_rl.utils.flops_formulas#
Module Contents#
Classes#
Contains the model hparams needed for FLOPS computations. |
Functions#
Model FLOPs for GPT3 family. |
|
Model FLOPs for llama3 family. |
|
Model FLOPs for nemotron family. |
|
Model FLOPs for mixtral family. |
|
Model FLOPs for Qwen2 family. |
|
Model FLOPs for Qwen3 family. |
|
Model FLOPs for BERT family. |
|
Calculate FLOPs for a standard Transformer model. |
|
Model FLOPs for FLUX. |
|
Return the per-layer MLA projection parameter count. |
|
Return activated dense/MoE FFN parameters for all model and MTP layers. |
|
Return MLA projection and activated FFN training FLOPs per input. |
|
Return output projection and MTP embedding projection FLOPs per input. |
|
Model FLOPs for DeepSeek V3. |
|
Approximate causal sparse-attention query/key pairs with dense formula conventions. |
|
Model FLOPs for GLM MoE DSA. |
|
Model FLOPs for MLP layer. |
|
Model FLOPs for attention layer. |
|
Model FLOPs for Mamba layer. We ignore part of the flops of scan because the chunk size is not known from model config. |
|
Model FLOPs for hybrid model. |
|
Model FLOPs for NemotronH. |
API#
- class nemo_rl.utils.flops_formulas.FLOPSConfig[source]#
Contains the model hparams needed for FLOPS computations.
- gbs: int#
None
- enc_seq_len: Optional[int]#
None
- hs: Optional[int]#
None
- layers: Optional[int]#
None
- ffn_hs: Optional[int]#
None
- attention_heads: Optional[int]#
None
- head_dim: Optional[int]#
None
- moe_router_topk: Optional[int]#
None
- query_groups: Optional[int]#
None
- img_seq_len: Optional[int]#
None
- img_h: Optional[int]#
None
- img_w: Optional[int]#
None
- in_channels: Optional[int]#
None
- patch_dim: Optional[int]#
None
- class_token_len: Optional[int]#
None
- projector_type: Optional[str]#
None
- inp_s: Optional[int]#
None
- model_pattern: Optional[str]#
None
- vocab_size: Optional[int]#
None
- model_channels: Optional[int]#
None
- vec_in_dim: Optional[int]#
None
- q_lora_rank: Optional[int]#
None
- kv_lora_rank: Optional[int]#
None
- qk_head_dim: Optional[int]#
None
- qk_pos_emb_head_dim: Optional[int]#
None
- v_head_dim: Optional[int]#
None
- moe_layer_freq: Optional[Union[int, List[int]]]#
None
None
None
- mtp_num_layers: Optional[int]#
None
- causal_self_attn: Optional[bool]#
None
- is_hybrid_model: bool#
False
- hybrid_override_pattern: Optional[str]#
None
- mamba_state_dim: Optional[int]#
None
- mamba_head_dim: Optional[int]#
None
- mamba_num_groups: Optional[int]#
None
- mamba_num_heads: Optional[int]#
None
- dsa_indexer_n_heads: Optional[int]#
None
- dsa_indexer_head_dim: Optional[int]#
None
- dsa_indexer_topk: Optional[int]#
None
- dsa_indexer_compute_layers: Optional[int]#
None
- nemo_rl.utils.flops_formulas.gpt3(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for GPT3 family.
- nemo_rl.utils.flops_formulas.llama(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for llama3 family.
- nemo_rl.utils.flops_formulas.nemotron(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for nemotron family.
- nemo_rl.utils.flops_formulas.mixtral(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for mixtral family.
- nemo_rl.utils.flops_formulas.qwen2(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for Qwen2 family.
- nemo_rl.utils.flops_formulas.qwen3(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for Qwen3 family.
- nemo_rl.utils.flops_formulas.bert(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for BERT family.
- nemo_rl.utils.flops_formulas.transformer(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Calculate FLOPs for a standard Transformer model.
Note: This does not cover encoder-decoder models.
- nemo_rl.utils.flops_formulas.flux(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for FLUX.
- nemo_rl.utils.flops_formulas._mla_projection_params( ) int[source]#
Return the per-layer MLA projection parameter count.
- nemo_rl.utils.flops_formulas._moe_ffn_params( ) int[source]#
Return activated dense/MoE FFN parameters for all model and MTP layers.
- nemo_rl.utils.flops_formulas._mla_moe_linear_flops( ) int[source]#
Return MLA projection and activated FFN training FLOPs per input.
- nemo_rl.utils.flops_formulas._vocab_and_mtp_flops( ) int[source]#
Return output projection and MTP embedding projection FLOPs per input.
- nemo_rl.utils.flops_formulas.deepseekv3(config: nemo_rl.utils.flops_formulas.FLOPSConfig) float[source]#
Model FLOPs for DeepSeek V3.
- nemo_rl.utils.flops_formulas._causal_topk_pairs(seq_len: int, topk: int) float[source]#
Approximate causal sparse-attention query/key pairs with dense formula conventions.
- nemo_rl.utils.flops_formulas.glm_moe_dsa(config: nemo_rl.utils.flops_formulas.FLOPSConfig) float[source]#
Model FLOPs for GLM MoE DSA.
GLM-MoE-DSA uses MLA projections and MoE FFNs like DeepSeek-style MoE models, but its core attention path uses a DSA indexer to select sparse top-k keys. The indexer is forward-only in the RL runs where indexer loss is disabled, so its matmuls are counted with a single 2x FMA factor rather than the 6x forward+backward training factor used for trainable model-path GEMMs.
- nemo_rl.utils.flops_formulas._mlp_layer_flops(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for MLP layer.
- nemo_rl.utils.flops_formulas._mamba_layer_flops(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for Mamba layer. We ignore part of the flops of scan because the chunk size is not known from model config.
- nemo_rl.utils.flops_formulas._hybrid_model_flops(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for hybrid model.
- nemo_rl.utils.flops_formulas.nemotronh(config: nemo_rl.utils.flops_formulas.FLOPSConfig)[source]#
Model FLOPs for NemotronH.