megatron-core 0.16.0rc0.dev101470__tar.gz → 0.16.0rc0.dev101524__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/PKG-INFO +6 -6
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/README.md +5 -5
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/megatron_fsdp/param_and_grad_buffer.py +3 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/megatron_fsdp/uneven_dtensor.py +10 -1
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/megatron_fsdp/utils.py +3 -6
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fp4_utils.py +22 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_indices_converter.py +1 -2
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_mla_yarn_rope_apply.py +1 -3
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_pad_routing_map.py +5 -3
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/communication_utils.py +1 -2
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/contexts/attention_context/mamba_metadata.py +21 -1
- megatron_core-0.16.0rc0.dev101524/megatron/core/inference/contexts/dynamic_block_allocator.py +119 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/contexts/dynamic_context.py +361 -292
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/data_parallel_inference_coordinator.py +63 -7
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/engines/__init__.py +1 -1
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/engines/dynamic_engine.py +668 -286
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/engines/static_engine.py +7 -2
- megatron_core-0.16.0rc0.dev101524/megatron/core/inference/headers.py +28 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/inference_client.py +80 -22
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/inference_request.py +222 -17
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/sampling_params.py +1 -1
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_controllers/text_generation_controller.py +372 -184
- megatron_core-0.16.0rc0.dev101524/megatron/core/inference/unified_memory.py +198 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/utils.py +55 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/embeddings/rope_utils.py +26 -25
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/embeddings/yarn_rotary_pos_embedding.py +7 -4
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/model_chunk_schedule_plan.py +5 -1
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/gpt/fine_grained_callables.py +4 -1
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/gpt/moe_module_specs.py +1 -9
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mamba/mamba_layer_specs.py +16 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer/__init__.py +134 -173
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer/cpu_offloading/hybrid_optimizer.py +1 -1
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer/distrib_optimizer.py +2 -1
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer/optimizer.py +1 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer/optimizer_config.py +57 -17
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer_param_scheduler.py +20 -11
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/package_info.py +1 -1
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/parallel_state.py +1 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/safe_globals.py +2 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/ssm/mamba_block.py +7 -55
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/ssm/mamba_hybrid_layer_allocation.py +4 -3
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/ssm/mamba_layer.py +2 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/ssm/mamba_mixer.py +16 -11
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/timers.py +15 -6
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/huggingface_tokenizer.py +8 -3
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/null_tokenizer.py +8 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/text_tokenizer.py +10 -6
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/attention.py +44 -10
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/cuda_graphs.py +17 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/dot_product_attention.py +8 -2
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/fsdp_dtensor_checkpoint.py +44 -23
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/experts.py +24 -20
- megatron_core-0.16.0rc0.dev101524/megatron/core/transformer/moe/fused_a2a.py +534 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/moe_layer.py +3 -3
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/moe_utils.py +20 -3
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/router.py +14 -6
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/shared_experts.py +4 -2
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/token_dispatcher.py +192 -30
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/multi_latent_attention.py +12 -6
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/multi_token_prediction.py +2 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/transformer_config.py +41 -8
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/transformer_layer.py +3 -3
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/utils.py +0 -3
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/utils.py +182 -34
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron_core.egg-info/PKG-INFO +6 -6
- megatron_core-0.16.0rc0.dev101470/megatron/core/inference/contexts/dynamic_block_allocator.py +0 -92
- megatron_core-0.16.0rc0.dev101470/megatron/core/inference/headers.py +0 -17
- megatron_core-0.16.0rc0.dev101470/megatron/core/inference/unified_memory.py +0 -127
- megatron_core-0.16.0rc0.dev101470/megatron/core/transformer/moe/fused_a2a.py +0 -264
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/MANIFEST.in +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/README.md +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/activations.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/config_logger.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/bert_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/blended_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/blended_megatron_dataset_builder.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/blended_megatron_dataset_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/gpt_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/helpers.cpp +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/helpers.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/indexed_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/masked_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/megatron_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/megatron_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/multimodal_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/object_storage_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/config/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/config/bert_embedders.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/config/config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/config/gpt_chunk_datasets.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/config/tokenizers.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/db/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/db/build.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/db/dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/db/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/external_libs.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/build.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/factory.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/index.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/indexes/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/indexes/faiss_base.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/indexes/faiss_par_add.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/index/validate.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/query/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/query/gpt_chunk_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/query/multi_split_gpt_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/query/query.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/query/retro_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/query/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/retro/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/t5_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/datasets/utils_s3.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/core.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/dict_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/exchange_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/mapping.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/optimizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/serialization.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/state_dict_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/async_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/base.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/cached_metadata_filesystem_reader.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/checkpointable.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/common.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/filesystem_async.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/fully_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/resharding.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/state_dict_saver.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/tensorstore.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/torch.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/two_stage.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/strategies/zarr.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/tensor_aware_state_dict.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/dist_checkpointing/validation.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/data_parallel_base.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/distributed_data_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/distributed_data_parallel_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/finalize_model_grads.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/mcore_fsdp_adapter.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/megatron_fsdp/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/megatron_fsdp/distributed_data_parallel_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/megatron_fsdp/fully_shard.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/megatron_fsdp/megatron_fsdp.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/fsdp/src/megatron_fsdp/package_info.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/param_and_grad_buffer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/reduce_scatter_with_fp32_accumulation.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/torch_fully_sharded_data_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/distributed/torch_fully_sharded_data_parallel_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/energy_monitor.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/enums.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/data_type.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/export_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/model_type.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/engine_builder/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/engine_builder/trtllm_engine_builder.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/model_to_trllm_mapping/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/model_to_trllm_mapping/default_conversion_dict.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/trt_model_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/trt_model_type.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/trtllm_helper.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/trtllm_layers.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/trtllm_weights_converter/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/trtllm_weights_converter/distributed_trtllm_model_weights_converter.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/trtllm_weights_converter/single_device_trtllm_model_weights_converter.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/export/trtllm/trtllm_weights_converter/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/extensions/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/extensions/kitchen.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/extensions/transformer_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/extensions/transformer_engine_spec_provider.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fp8_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/full_cuda_graph.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_bias_dropout.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_bias_geglu.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_bias_gelu.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_bias_swiglu.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_cross_entropy.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_layer_norm.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_softmax.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fusions/fused_weighted_squared_relu.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/hyper_comm_grid.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/async_stream.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/common_inference_params.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/contexts/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/contexts/attention_context/metadata_base.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/contexts/attention_context/mha_metadata.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/contexts/base_context.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/contexts/fused_kv_append_kernel.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/contexts/static_context.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/engines/abstract_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/engines/mcore_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/model_inference_wrappers/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/model_inference_wrappers/abstract_model_inference_wrapper.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/model_inference_wrappers/gpt/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/model_inference_wrappers/gpt/gpt_inference_wrapper.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/model_inference_wrappers/inference_wrapper_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/model_inference_wrappers/multimodal/vlm_inference_wrapper.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/model_inference_wrappers/t5/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/model_inference_wrappers/t5/t5_inference_wrapper.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/scheduler.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_controllers/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_controllers/encoder_decoder_text_generation_controller.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_controllers/simple_text_generation_controller.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_controllers/vlm_text_generation_controller.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_server/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_server/endpoints/common.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_server/endpoints/completions.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_server/run_mcore_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_server/text_generation_server.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference/text_generation_server/tokenization.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/inference_params.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/jit.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/model_parallel_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/T5/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/T5/t5_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/T5/t5_spec.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/backends.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/bert/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/bert/bert_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/bert/bert_lm_head.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/bert/bert_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/bert/pooler.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/embeddings/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/embeddings/language_model_embedding.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/embeddings/relative_pos_embedding.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/embeddings/rotary_pos_embedding.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/language_module/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/language_module/language_module.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/vision_module/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/common/vision_module/vision_module.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/gpt/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/gpt/gpt_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/gpt/gpt_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/gpt/heterogeneous/heterogeneous_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/huggingface/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/huggingface/clip_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/huggingface/module.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/huggingface/qwen_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mamba/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mamba/mamba_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mimo/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mimo/config/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mimo/config/base_configs.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mimo/model/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mimo/model/base.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mimo/submodules/audio.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mimo/submodules/base.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/mimo/submodules/vision.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/multimodal/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/multimodal/context_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/multimodal/llava_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/multimodal/llava_spec.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/base_attention.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/decoder_attention.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/decoder_spec.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/encoder_attention.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/encoder_spec.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/retro/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/vision/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/vision/clip_vit_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/vision/multimodal_projector.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/vision/radio.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/models/vision/vit_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/msc_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/nccl_allocator.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/num_microbatches_calculator.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer/clip_grads.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer/cpu_offloading/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/optimizer/grad_scaler.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/packed_seq_params.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/pipeline_parallel/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/pipeline_parallel/bridge_communicator.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/pipeline_parallel/combined_1f1b.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/pipeline_parallel/p2p_communication.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/pipeline_parallel/schedules.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/pipeline_parallel/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/post_training/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/post_training/modelopt/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/post_training/modelopt/gpt/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/post_training/modelopt/gpt/model_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/post_training/modelopt/gpt/state_dict_hooks.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/post_training/modelopt/layers.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/post_training/modelopt/mamba/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/post_training/modelopt/mamba/model_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/process_groups_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/quantization/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/quantization/quant_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/quantization/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/requirements.txt +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/rerun_state_machine.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/ssm/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/ssm/mamba_context_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/ssm/mlp_layer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/ssm/triton_cache_manager.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tensor_parallel/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tensor_parallel/cross_entropy.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tensor_parallel/data.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tensor_parallel/inference_layers.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tensor_parallel/layers.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tensor_parallel/mappings.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tensor_parallel/random.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tensor_parallel/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/base_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/megatron_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/abstract_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/bytelevel_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/chat_template.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/megatron_hf_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/sentencepiece_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/libraries/tiktoken_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/models/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/models/bert_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/models/default_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/models/gpt_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/models/mamba_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/models/retro_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/models/t5_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/tokenizers/text/utils/build_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/custom_layers/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/custom_layers/transformer_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/enums.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/heterogeneous/heterogeneous_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/heterogeneous/linear_replacements.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/identity_op.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/mlp.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/module.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/grouped_gemm_util.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/moe/upcycling_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/pipeline_parallel_layer_layout.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/spec_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/torch_layer_norm.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/torch_norm.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/transformer/transformer_block.py +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron_core.egg-info/SOURCES.txt +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron_core.egg-info/dependency_links.txt +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron_core.egg-info/requires.txt +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron_core.egg-info/top_level.txt +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/pyproject.toml +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/setup.cfg +0 -0
- {megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: megatron-core
|
|
3
|
-
Version: 0.16.0rc0.
|
|
3
|
+
Version: 0.16.0rc0.dev101524
|
|
4
4
|
Summary: Megatron Core - a library for efficient and scalable training of transformer based models
|
|
5
5
|
Author-email: NVIDIA <nemo-toolkit@nvidia.com>
|
|
6
6
|
Maintainer-email: NVIDIA <nemo-toolkit@nvidia.com>
|
|
@@ -175,7 +175,7 @@ pip install --no-build-isolation .[mlm,dev]
|
|
|
175
175
|
|
|
176
176
|
```
|
|
177
177
|
Megatron-LM/
|
|
178
|
-
├── megatron/
|
|
178
|
+
├── megatron/
|
|
179
179
|
│ ├── core/ # Megatron Core (kernels, parallelism, building blocks)
|
|
180
180
|
│ │ ├── models/ # Transformer models
|
|
181
181
|
│ │ ├── transformer/ # Transformer building blocks
|
|
@@ -204,7 +204,7 @@ Megatron-LM/
|
|
|
204
204
|
|
|
205
205
|
- **Training state-of-the-art foundation models** at scale with cutting-edge performance on latest NVIDIA hardware
|
|
206
206
|
- **Research teams** exploring new architectures and training techniques
|
|
207
|
-
- **Learning distributed training** concepts and best practices
|
|
207
|
+
- **Learning distributed training** concepts and best practices
|
|
208
208
|
- **Quick experimentation** with proven model configurations
|
|
209
209
|
|
|
210
210
|
**What you get:**
|
|
@@ -213,7 +213,7 @@ Megatron-LM/
|
|
|
213
213
|
- End-to-end examples from data prep to evaluation
|
|
214
214
|
- Research-focused tools and utilities
|
|
215
215
|
|
|
216
|
-
### Megatron Core: Composable Library
|
|
216
|
+
### Megatron Core: Composable Library
|
|
217
217
|
|
|
218
218
|
**Composable library** with GPU-optimized building blocks for custom training frameworks.
|
|
219
219
|
|
|
@@ -246,7 +246,7 @@ Megatron-LM/
|
|
|
246
246
|
- **[Megatron Bridge](https://github.com/NVIDIA-NeMo/Megatron-Bridge)** - Training library with bidirectional Hugging Face ↔ Megatron checkpoint conversion, flexible training loops, and production-ready recipes
|
|
247
247
|
- **[NeMo RL](https://github.com/NVIDIA-NeMo/RL)** - Scalable toolkit for efficient reinforcement learning with RLHF, DPO, and other post-training methods
|
|
248
248
|
- **[NeMo Framework](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html)** - Enterprise framework with cloud-native support and end-to-end examples
|
|
249
|
-
- **[TensorRT Model Optimizer (ModelOpt)](https://github.com/NVIDIA/TensorRT-Model-Optimizer)** - Model optimization toolkit for quantization, pruning, and
|
|
249
|
+
- **[TensorRT Model Optimizer (ModelOpt)](https://github.com/NVIDIA/TensorRT-Model-Optimizer)** - Model optimization toolkit for quantization, pruning, distillation, speculative decoding, and more. Checkout end-to-end examples in [examples/post_training/modelopt](./examples/post_training/modelopt/).
|
|
250
250
|
|
|
251
251
|
**Compatible with:** [Hugging Face Accelerate](https://github.com/huggingface/accelerate), [Colossal-AI](https://github.com/hpcaitech/ColossalAI), [DeepSpeed](https://github.com/microsoft/DeepSpeed)
|
|
252
252
|
|
|
@@ -333,7 +333,7 @@ Our codebase efficiently trains models from 2B to 462B parameters across thousan
|
|
|
333
333
|
**Benchmark Configuration:**
|
|
334
334
|
|
|
335
335
|
- **Vocabulary size**: 131,072 tokens
|
|
336
|
-
- **Sequence length**: 4096 tokens
|
|
336
|
+
- **Sequence length**: 4096 tokens
|
|
337
337
|
- **Model scaling**: Varied hidden size, attention heads, and layers to achieve target parameter counts
|
|
338
338
|
- **Communication optimizations**: Fine-grained overlapping with DP (`--overlap-grad-reduce`, `--overlap-param-gather`), TP (`--tp-comm-overlap`), and PP (enabled by default)
|
|
339
339
|
|
|
@@ -99,7 +99,7 @@ pip install --no-build-isolation .[mlm,dev]
|
|
|
99
99
|
|
|
100
100
|
```
|
|
101
101
|
Megatron-LM/
|
|
102
|
-
├── megatron/
|
|
102
|
+
├── megatron/
|
|
103
103
|
│ ├── core/ # Megatron Core (kernels, parallelism, building blocks)
|
|
104
104
|
│ │ ├── models/ # Transformer models
|
|
105
105
|
│ │ ├── transformer/ # Transformer building blocks
|
|
@@ -128,7 +128,7 @@ Megatron-LM/
|
|
|
128
128
|
|
|
129
129
|
- **Training state-of-the-art foundation models** at scale with cutting-edge performance on latest NVIDIA hardware
|
|
130
130
|
- **Research teams** exploring new architectures and training techniques
|
|
131
|
-
- **Learning distributed training** concepts and best practices
|
|
131
|
+
- **Learning distributed training** concepts and best practices
|
|
132
132
|
- **Quick experimentation** with proven model configurations
|
|
133
133
|
|
|
134
134
|
**What you get:**
|
|
@@ -137,7 +137,7 @@ Megatron-LM/
|
|
|
137
137
|
- End-to-end examples from data prep to evaluation
|
|
138
138
|
- Research-focused tools and utilities
|
|
139
139
|
|
|
140
|
-
### Megatron Core: Composable Library
|
|
140
|
+
### Megatron Core: Composable Library
|
|
141
141
|
|
|
142
142
|
**Composable library** with GPU-optimized building blocks for custom training frameworks.
|
|
143
143
|
|
|
@@ -170,7 +170,7 @@ Megatron-LM/
|
|
|
170
170
|
- **[Megatron Bridge](https://github.com/NVIDIA-NeMo/Megatron-Bridge)** - Training library with bidirectional Hugging Face ↔ Megatron checkpoint conversion, flexible training loops, and production-ready recipes
|
|
171
171
|
- **[NeMo RL](https://github.com/NVIDIA-NeMo/RL)** - Scalable toolkit for efficient reinforcement learning with RLHF, DPO, and other post-training methods
|
|
172
172
|
- **[NeMo Framework](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html)** - Enterprise framework with cloud-native support and end-to-end examples
|
|
173
|
-
- **[TensorRT Model Optimizer (ModelOpt)](https://github.com/NVIDIA/TensorRT-Model-Optimizer)** - Model optimization toolkit for quantization, pruning, and
|
|
173
|
+
- **[TensorRT Model Optimizer (ModelOpt)](https://github.com/NVIDIA/TensorRT-Model-Optimizer)** - Model optimization toolkit for quantization, pruning, distillation, speculative decoding, and more. Checkout end-to-end examples in [examples/post_training/modelopt](./examples/post_training/modelopt/).
|
|
174
174
|
|
|
175
175
|
**Compatible with:** [Hugging Face Accelerate](https://github.com/huggingface/accelerate), [Colossal-AI](https://github.com/hpcaitech/ColossalAI), [DeepSpeed](https://github.com/microsoft/DeepSpeed)
|
|
176
176
|
|
|
@@ -257,7 +257,7 @@ Our codebase efficiently trains models from 2B to 462B parameters across thousan
|
|
|
257
257
|
**Benchmark Configuration:**
|
|
258
258
|
|
|
259
259
|
- **Vocabulary size**: 131,072 tokens
|
|
260
|
-
- **Sequence length**: 4096 tokens
|
|
260
|
+
- **Sequence length**: 4096 tokens
|
|
261
261
|
- **Model scaling**: Varied hidden size, attention heads, and layers to achieve target parameter counts
|
|
262
262
|
- **Communication optimizations**: Fine-grained overlapping with DP (`--overlap-grad-reduce`, `--overlap-param-gather`), TP (`--tp-comm-overlap`), and PP (enabled by default)
|
|
263
263
|
|
|
@@ -2782,6 +2782,9 @@ class GradReducePipeline:
|
|
|
2782
2782
|
outer_fsdp_group_grad_reduce (bool, optional): Whether to reduce gradients
|
|
2783
2783
|
across outer-DP groups. Defaults to False.
|
|
2784
2784
|
"""
|
|
2785
|
+
# Sort parameters by their bucket IDs to ensure a deterministic processing order.
|
|
2786
|
+
# Performing reduce-scatter operations out of order can lead to hangs.
|
|
2787
|
+
params = sorted(list(params), key=lambda x: self.buffer.param_to_param_group[x])
|
|
2785
2788
|
for param in params:
|
|
2786
2789
|
bucket_id = self.buffer.param_to_param_group[param]
|
|
2787
2790
|
param_group = self.buffer.parameter_groups[bucket_id]
|
|
@@ -25,6 +25,8 @@ from torch.distributed.checkpoint.metadata import (
|
|
|
25
25
|
from torch.distributed.checkpoint.planner import TensorWriteData, WriteItem, WriteItemType
|
|
26
26
|
from torch.distributed.tensor.placement_types import Replicate, Shard, _StridedShard
|
|
27
27
|
|
|
28
|
+
from .utils import get_mesh_names
|
|
29
|
+
|
|
28
30
|
|
|
29
31
|
def gather_and_compute_chunk_metadata(dtensor: DTensor) -> ChunkStorageMetadata:
|
|
30
32
|
"""
|
|
@@ -272,7 +274,14 @@ def gather_uneven_dtensor_to_full_tensor(
|
|
|
272
274
|
if not device_mesh.mesh_dim_names:
|
|
273
275
|
process_group = device_mesh.get_group()
|
|
274
276
|
else:
|
|
275
|
-
|
|
277
|
+
# Check if the fully-flattened mesh exists first.
|
|
278
|
+
full_flattened_mesh_dim_name = "_".join(device_mesh.mesh_dim_names)
|
|
279
|
+
if full_flattened_mesh_dim_name in get_mesh_names(device_mesh):
|
|
280
|
+
# Retrieve the existing flattened DeviceMesh ProcessGroup.
|
|
281
|
+
process_group = device_mesh[full_flattened_mesh_dim_name].get_group()
|
|
282
|
+
else:
|
|
283
|
+
# Create the _-separated flattened DeviceMesh ProcessGroup.
|
|
284
|
+
process_group = device_mesh._flatten().get_group()
|
|
276
285
|
|
|
277
286
|
# Collect chunk metadata for uneven shards (update if missing)
|
|
278
287
|
if not hasattr(dtensor._local_tensor, "__create_chunk_list__"):
|
|
@@ -167,13 +167,10 @@ def get_mesh_names(device_mesh: Optional[DeviceMesh] = None) -> list[str]:
|
|
|
167
167
|
submesh_dim_name
|
|
168
168
|
for child_mesh, root_mesh in _mesh_resources.child_to_root_mapping.items()
|
|
169
169
|
for submesh_dim_name in (child_mesh.mesh_dim_names or [])
|
|
170
|
-
|
|
170
|
+
# Add flattened or other unaccounted for children of the root mesh.
|
|
171
|
+
if root_mesh == device_mesh and submesh_dim_name not in mesh_dim_names
|
|
171
172
|
]
|
|
172
|
-
|
|
173
|
-
for dim_name in submesh_dim_names:
|
|
174
|
-
if dim_name not in mesh_dim_names:
|
|
175
|
-
mesh_dim_names.append(dim_name)
|
|
176
|
-
return mesh_dim_names
|
|
173
|
+
return mesh_dim_names + submesh_dim_names
|
|
177
174
|
|
|
178
175
|
|
|
179
176
|
def contains_submesh(
|
{megatron_core-0.16.0rc0.dev101470 → megatron_core-0.16.0rc0.dev101524}/megatron/core/fp4_utils.py
RENAMED
|
@@ -48,6 +48,28 @@ def is_nvfp4tensor(tensor: torch.Tensor) -> bool:
|
|
|
48
48
|
return HAVE_TE_FP4_TENSOR_CLASS and isinstance(tensor, FP4_TENSOR_CLASS)
|
|
49
49
|
|
|
50
50
|
|
|
51
|
+
def get_fp4_align_size(fp4_recipe: Fp4Recipe) -> int:
|
|
52
|
+
"""
|
|
53
|
+
Get the alignment size required for FP4 GEMM.
|
|
54
|
+
FP4 GEMM requires Blackwell and later architectures.
|
|
55
|
+
|
|
56
|
+
The value 32 is a hardware requirement: TMA (Tensor Memory Accelerator) requires
|
|
57
|
+
a 16-byte aligned address for efficient memory access. Since FP4 uses 4 bits per value,
|
|
58
|
+
16 bytes (128 bits) corresponds to 32 FP4 values. Therefore, the alignment size for FP4
|
|
59
|
+
is 32. With this alignment, NVFP4 GEMM can be performed efficiently.
|
|
60
|
+
|
|
61
|
+
Note that since we are also random hadamard transform for NVFP4 training, we want
|
|
62
|
+
fused group nvfp4 quantize plus hadamard transform. Hadamard transform will leverage
|
|
63
|
+
tensor core instructions for better performance, while group quantize kernels also
|
|
64
|
+
prefer a more aligned size in token dimension M. Therefore, we apply align size 64
|
|
65
|
+
here for better performance in MOE.
|
|
66
|
+
|
|
67
|
+
Paper link: https://arxiv.org/pdf/2509.25149
|
|
68
|
+
"""
|
|
69
|
+
# pylint: disable=unused-argument
|
|
70
|
+
return 64
|
|
71
|
+
|
|
72
|
+
|
|
51
73
|
def dequantize_fp4_tensor(fp4_tensor: torch.Tensor) -> torch.Tensor:
|
|
52
74
|
"""Dequantize a fp4 tensor to a higher precision tensor."""
|
|
53
75
|
if is_te_min_version("2.7.0.dev0"):
|
|
@@ -6,7 +6,7 @@ from unittest.mock import MagicMock
|
|
|
6
6
|
import torch
|
|
7
7
|
from packaging import version
|
|
8
8
|
|
|
9
|
-
from megatron.core.utils import
|
|
9
|
+
from megatron.core.utils import null_decorator
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
import triton
|
|
@@ -279,7 +279,6 @@ class IndicesToMultihot(torch.autograd.Function):
|
|
|
279
279
|
return None, grad_probs_indices, None, None
|
|
280
280
|
|
|
281
281
|
|
|
282
|
-
@experimental_fn(introduced_with_version='0.11.0rc0')
|
|
283
282
|
def fused_indices_to_multihot(indices, probs_indices, num_of_local_experts):
|
|
284
283
|
"""Convert moe topk indices to multihot representation.
|
|
285
284
|
|
|
@@ -6,7 +6,7 @@ from unittest.mock import MagicMock
|
|
|
6
6
|
import torch
|
|
7
7
|
from packaging import version
|
|
8
8
|
|
|
9
|
-
from megatron.core.utils import
|
|
9
|
+
from megatron.core.utils import null_decorator
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
import triton
|
|
@@ -324,7 +324,6 @@ class ApplyMLARotaryEmbQ(torch.autograd.Function):
|
|
|
324
324
|
return grad, None, None, None, None, None, None, None, None
|
|
325
325
|
|
|
326
326
|
|
|
327
|
-
@experimental_fn(introduced_with_version="0.13.0")
|
|
328
327
|
def fused_apply_mla_rope_for_q(
|
|
329
328
|
t: torch.Tensor,
|
|
330
329
|
cos: torch.Tensor,
|
|
@@ -733,7 +732,6 @@ class ApplyMLARotaryEmbKV(torch.autograd.Function):
|
|
|
733
732
|
return d_kv, d_emb, None, None, None, None, None, None, None, None, None
|
|
734
733
|
|
|
735
734
|
|
|
736
|
-
@experimental_fn(introduced_with_version="0.13.0")
|
|
737
735
|
def fused_apply_mla_rope_for_kv(
|
|
738
736
|
kv: torch.Tensor,
|
|
739
737
|
k_pos_emb: torch.Tensor,
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
# Copyright (c) 2025
|
|
1
|
+
# Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
|
|
2
3
|
from unittest.mock import MagicMock
|
|
3
4
|
|
|
4
5
|
import torch
|
|
5
6
|
from packaging import version
|
|
6
7
|
|
|
7
|
-
from megatron.core.
|
|
8
|
+
from megatron.core.jit import jit_fuser
|
|
9
|
+
from megatron.core.utils import null_decorator
|
|
8
10
|
|
|
9
11
|
try:
|
|
10
12
|
import triton
|
|
@@ -68,7 +70,7 @@ def _pad_routing_map_kernel(
|
|
|
68
70
|
tl.store(output_row_ptr + token_indices, output_row, mask=token_mask)
|
|
69
71
|
|
|
70
72
|
|
|
71
|
-
@
|
|
73
|
+
@jit_fuser
|
|
72
74
|
def fused_pad_routing_map(routing_map: torch.Tensor, pad_multiple: int) -> torch.Tensor:
|
|
73
75
|
"""Fused version of pad_routing_map.
|
|
74
76
|
Args:
|
|
@@ -71,8 +71,7 @@ def broadcast_from_last_pipeline_stage(
|
|
|
71
71
|
tensor.shape
|
|
72
72
|
), f"Expected tensor of shape {size} but got {list(tensor.shape)}"
|
|
73
73
|
assert dtype == tensor.dtype, f"Expected tensor of type {dtype} but got {tensor.dtype}"
|
|
74
|
-
|
|
75
|
-
assert tensor.is_contiguous()
|
|
74
|
+
_is_cuda_contiguous(tensor)
|
|
76
75
|
else:
|
|
77
76
|
tensor = torch.empty(size, dtype=dtype, device=torch.cuda.current_device())
|
|
78
77
|
|
|
@@ -1,8 +1,28 @@
|
|
|
1
1
|
# Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
2
|
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from typing import List, Optional, Tuple
|
|
5
|
+
|
|
3
6
|
import torch
|
|
4
7
|
|
|
5
8
|
|
|
9
|
+
@dataclass
|
|
10
|
+
class MambaInferenceStateConfig:
|
|
11
|
+
"""Config for initializing Mamba model inference state tensors."""
|
|
12
|
+
|
|
13
|
+
layer_type_list: List[str]
|
|
14
|
+
"""
|
|
15
|
+
A list of strings that indicates the layer type (Mamba / Attention / MLP) for each layer.
|
|
16
|
+
See `megatron/core/ssm/mamba_hybrid_layer_allocation.py` for the list of symbols.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
mamba_conv_states_shape: Tuple[int]
|
|
20
|
+
"""Mamba conv states shape per request."""
|
|
21
|
+
|
|
22
|
+
mamba_ssm_states_shape: Tuple[int]
|
|
23
|
+
"""Mamba ssm states shape per request."""
|
|
24
|
+
|
|
25
|
+
|
|
6
26
|
class MambaMetadata:
|
|
7
27
|
"""Manages the metadata tensors required for Mamba layers during inference."""
|
|
8
28
|
|
|
@@ -64,7 +84,7 @@ class MambaMetadata:
|
|
|
64
84
|
"""
|
|
65
85
|
self.request_to_mamba_state_idx_cudagraph_only[0:num_active_requests] = active_mamba_indices
|
|
66
86
|
|
|
67
|
-
def allocate_slot(self) -> int:
|
|
87
|
+
def allocate_slot(self) -> Optional[int]:
|
|
68
88
|
"""
|
|
69
89
|
Allocates a new slot for a request in the Mamba state buffers.
|
|
70
90
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
import torch
|
|
6
|
+
from torch import Tensor
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class BlockAllocator:
|
|
10
|
+
"""Allocator that manages blocks of memory for the KV cache.
|
|
11
|
+
|
|
12
|
+
This allocator is responsible for:
|
|
13
|
+
- Initializing a pool of block IDs
|
|
14
|
+
- Allocating blocks from the pool
|
|
15
|
+
- Releasing blocks back to the pool
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
context (DynamicInferenceContext): Dynamic inference context.
|
|
19
|
+
active_count (int): Total number of active blocks available in the buffer.
|
|
20
|
+
The full buffer size is 2*active_count, to accommodate an equal-size
|
|
21
|
+
space for paused requests that live on the CPU.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
def __init__(self, context: "DynamicInferenceContext", total_count: int):
|
|
25
|
+
|
|
26
|
+
self.context = context
|
|
27
|
+
|
|
28
|
+
active_count = (total_count - 1) // 2 # -1 for dummy_block_idx (see below)
|
|
29
|
+
active_count = max(1, active_count) # need at least one block
|
|
30
|
+
self.total_count = 2 * active_count + 1 # +1 for dummy_block_idx
|
|
31
|
+
self.total_avail = self.total_count - 1 # -1 for dummy_block_idx
|
|
32
|
+
self.active_count = active_count
|
|
33
|
+
self.paused_count = self.total_count - self.active_count - 1 # -1 for dummy_block_idx
|
|
34
|
+
self.dummy_block_idx = self.total_count - 1
|
|
35
|
+
|
|
36
|
+
# Initialize block pool as a "stack" data structure
|
|
37
|
+
self.block_bag = torch.arange(
|
|
38
|
+
self.total_count, dtype=torch.int32, device=torch.cuda.current_device()
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
def __str__(self):
|
|
42
|
+
return (
|
|
43
|
+
f"total avail {self.total_avail} / {self.total_count - 1}"
|
|
44
|
+
f"; active {self.active_count}"
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
def get_active_used(self):
|
|
48
|
+
"""Compute number of active blocks used."""
|
|
49
|
+
return (
|
|
50
|
+
self.context.request_kv_block_counts[
|
|
51
|
+
self.context.paused_request_count : self.context.total_request_count
|
|
52
|
+
]
|
|
53
|
+
.sum()
|
|
54
|
+
.item()
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
def get_paused_used(self):
|
|
58
|
+
"""Compute number of paused blocks used."""
|
|
59
|
+
return (
|
|
60
|
+
self.context.request_kv_block_counts[: self.context.paused_request_count].sum().item()
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
def get_active_avail(self):
|
|
64
|
+
"""Compute number of active blocks available."""
|
|
65
|
+
return self.active_count - self.get_active_used()
|
|
66
|
+
|
|
67
|
+
def get_paused_avail(self):
|
|
68
|
+
"""Compute number of paused blocks available."""
|
|
69
|
+
return self.paused_count - self.get_paused_used()
|
|
70
|
+
|
|
71
|
+
def is_memory_available(self, num_blocks: int) -> bool:
|
|
72
|
+
"""Check if memory blocks are available.
|
|
73
|
+
|
|
74
|
+
Args:
|
|
75
|
+
num_blocks (int): Number of blocks to check.
|
|
76
|
+
|
|
77
|
+
Return:
|
|
78
|
+
(bool) Is memory available?
|
|
79
|
+
"""
|
|
80
|
+
return self.get_active_avail() >= num_blocks
|
|
81
|
+
|
|
82
|
+
def allocate_memory_blocks(self, num_blocks: int) -> Optional[Tensor]:
|
|
83
|
+
"""Allocate memory blocks if available, else return None.
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
num_blocks (int): Number of blocks to allocate.
|
|
87
|
+
|
|
88
|
+
Return:
|
|
89
|
+
(Optional[Tensor]) Allocated block IDs.
|
|
90
|
+
"""
|
|
91
|
+
if self.is_memory_available(num_blocks):
|
|
92
|
+
self.total_avail -= num_blocks
|
|
93
|
+
block_ids = self.block_bag[self.total_avail : (self.total_avail + num_blocks)]
|
|
94
|
+
assert num_blocks == block_ids.numel()
|
|
95
|
+
return block_ids
|
|
96
|
+
else:
|
|
97
|
+
return None
|
|
98
|
+
|
|
99
|
+
def release_memory_blocks(self, blocks: Tensor) -> None:
|
|
100
|
+
"""Release memory blocks.
|
|
101
|
+
|
|
102
|
+
Args:
|
|
103
|
+
blocks (Tensor): Block IDs to release.
|
|
104
|
+
|
|
105
|
+
Return:
|
|
106
|
+
None
|
|
107
|
+
"""
|
|
108
|
+
num_blocks = blocks.size(dim=0)
|
|
109
|
+
self.block_bag[self.total_avail : (self.total_avail + num_blocks)] = blocks
|
|
110
|
+
self.total_avail += num_blocks
|
|
111
|
+
|
|
112
|
+
def reset(self) -> None:
|
|
113
|
+
"""Reset the allocator to initial state.
|
|
114
|
+
|
|
115
|
+
This resets the available block count to the entire memory pool
|
|
116
|
+
(except for the dummy block).
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
self.total_avail = self.total_count - 1
|