megatron-core 0.16.0rc0.dev101543__tar.gz → 0.16.0rc0.dev101856__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.
Files changed (366) hide show
  1. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/PKG-INFO +19 -12
  2. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/README.md +5 -5
  3. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/megatron_tokenizer.py +9 -0
  4. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/megatron_fsdp/megatron_fsdp.py +4 -3
  5. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/megatron_fsdp/param_and_grad_buffer.py +3 -0
  6. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/enums.py +4 -2
  7. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/extensions/transformer_engine_spec_provider.py +1 -1
  8. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fp4_utils.py +26 -1
  9. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fp8_utils.py +101 -2
  10. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/async_stream.py +8 -2
  11. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/communication_utils.py +1 -2
  12. megatron_core-0.16.0rc0.dev101856/megatron/core/inference/contexts/attention_context/mamba_metadata.py +106 -0
  13. megatron_core-0.16.0rc0.dev101856/megatron/core/inference/contexts/attention_context/metadata_base.py +72 -0
  14. megatron_core-0.16.0rc0.dev101856/megatron/core/inference/contexts/attention_context/mha_metadata.py +220 -0
  15. megatron_core-0.16.0rc0.dev101856/megatron/core/inference/contexts/dynamic_block_allocator.py +118 -0
  16. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/contexts/dynamic_context.py +616 -326
  17. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/contexts/fused_kv_append_kernel.py +2 -2
  18. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/data_parallel_inference_coordinator.py +23 -6
  19. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/engines/__init__.py +1 -1
  20. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/engines/dynamic_engine.py +447 -123
  21. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/engines/static_engine.py +5 -9
  22. megatron_core-0.16.0rc0.dev101856/megatron/core/inference/headers.py +26 -0
  23. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/inference_client.py +18 -6
  24. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/inference_request.py +220 -17
  25. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/sampling_params.py +2 -1
  26. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_controllers/text_generation_controller.py +256 -185
  27. megatron_core-0.16.0rc0.dev101856/megatron/core/inference/unified_memory.py +162 -0
  28. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/utils.py +28 -0
  29. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/backends.py +61 -0
  30. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/model_chunk_schedule_plan.py +5 -1
  31. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/gpt/fine_grained_callables.py +4 -1
  32. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/gpt/gpt_layer_specs.py +102 -2
  33. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/gpt/gpt_model.py +2 -5
  34. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/gpt/moe_module_specs.py +1 -9
  35. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mamba/mamba_layer_specs.py +16 -0
  36. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mamba/mamba_model.py +30 -1
  37. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer/__init__.py +134 -173
  38. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer/cpu_offloading/hybrid_optimizer.py +1 -1
  39. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer/optimizer_config.py +57 -17
  40. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer_param_scheduler.py +20 -11
  41. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/package_info.py +1 -1
  42. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/process_groups_config.py +17 -0
  43. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/safe_globals.py +4 -0
  44. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/ssm/mamba_block.py +22 -25
  45. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/ssm/mamba_hybrid_layer_allocation.py +31 -3
  46. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/ssm/mamba_layer.py +5 -5
  47. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/ssm/mamba_mixer.py +301 -57
  48. megatron_core-0.16.0rc0.dev101856/megatron/core/tensor_parallel/inference_layers.py +151 -0
  49. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/attention.py +31 -9
  50. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/cuda_graphs.py +22 -1
  51. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/dot_product_attention.py +2 -0
  52. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/experts.py +24 -20
  53. megatron_core-0.16.0rc0.dev101856/megatron/core/transformer/moe/fused_a2a.py +534 -0
  54. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/moe_layer.py +3 -3
  55. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/moe_utils.py +12 -0
  56. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/router.py +2 -0
  57. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/shared_experts.py +4 -2
  58. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/token_dispatcher.py +189 -29
  59. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/multi_latent_attention.py +12 -6
  60. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/multi_token_prediction.py +2 -0
  61. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/pipeline_parallel_layer_layout.py +5 -2
  62. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/transformer_config.py +79 -12
  63. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/transformer_layer.py +3 -3
  64. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/utils.py +143 -1
  65. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron_core.egg-info/PKG-INFO +19 -12
  66. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron_core.egg-info/SOURCES.txt +4 -0
  67. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron_core.egg-info/requires.txt +13 -6
  68. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/pyproject.toml +13 -6
  69. megatron_core-0.16.0rc0.dev101543/megatron/core/inference/contexts/dynamic_block_allocator.py +0 -92
  70. megatron_core-0.16.0rc0.dev101543/megatron/core/inference/headers.py +0 -17
  71. megatron_core-0.16.0rc0.dev101543/megatron/core/inference/unified_memory.py +0 -89
  72. megatron_core-0.16.0rc0.dev101543/megatron/core/transformer/moe/fused_a2a.py +0 -264
  73. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/MANIFEST.in +0 -0
  74. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/README.md +0 -0
  75. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/__init__.py +0 -0
  76. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/activations.py +0 -0
  77. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/config.py +0 -0
  78. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/config_logger.py +0 -0
  79. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/__init__.py +0 -0
  80. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/bert_dataset.py +0 -0
  81. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/blended_dataset.py +0 -0
  82. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/blended_megatron_dataset_builder.py +0 -0
  83. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/blended_megatron_dataset_config.py +0 -0
  84. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/gpt_dataset.py +0 -0
  85. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/helpers.cpp +0 -0
  86. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/helpers.py +0 -0
  87. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/indexed_dataset.py +0 -0
  88. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/masked_dataset.py +0 -0
  89. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/megatron_dataset.py +0 -0
  90. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/multimodal_dataset.py +0 -0
  91. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/object_storage_utils.py +0 -0
  92. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/__init__.py +0 -0
  93. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/config/__init__.py +0 -0
  94. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/config/bert_embedders.py +0 -0
  95. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/config/config.py +0 -0
  96. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/config/gpt_chunk_datasets.py +0 -0
  97. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/config/tokenizers.py +0 -0
  98. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/db/__init__.py +0 -0
  99. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/db/build.py +0 -0
  100. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/db/dataset.py +0 -0
  101. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/db/utils.py +0 -0
  102. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/external_libs.py +0 -0
  103. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/__init__.py +0 -0
  104. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/build.py +0 -0
  105. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/factory.py +0 -0
  106. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/index.py +0 -0
  107. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/indexes/__init__.py +0 -0
  108. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/indexes/faiss_base.py +0 -0
  109. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/indexes/faiss_par_add.py +0 -0
  110. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/utils.py +0 -0
  111. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/index/validate.py +0 -0
  112. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/query/__init__.py +0 -0
  113. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/query/gpt_chunk_dataset.py +0 -0
  114. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/query/multi_split_gpt_dataset.py +0 -0
  115. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/query/query.py +0 -0
  116. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/query/retro_dataset.py +0 -0
  117. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/query/utils.py +0 -0
  118. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/retro/utils.py +0 -0
  119. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/t5_dataset.py +0 -0
  120. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/utils.py +0 -0
  121. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/datasets/utils_s3.py +0 -0
  122. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/__init__.py +0 -0
  123. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/core.py +0 -0
  124. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/dict_utils.py +0 -0
  125. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/exchange_utils.py +0 -0
  126. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/mapping.py +0 -0
  127. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/optimizer.py +0 -0
  128. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/serialization.py +0 -0
  129. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/state_dict_utils.py +0 -0
  130. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/__init__.py +0 -0
  131. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/async_utils.py +0 -0
  132. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/base.py +0 -0
  133. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/cached_metadata_filesystem_reader.py +0 -0
  134. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/checkpointable.py +0 -0
  135. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/common.py +0 -0
  136. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/filesystem_async.py +0 -0
  137. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/fully_parallel.py +0 -0
  138. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/resharding.py +0 -0
  139. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/state_dict_saver.py +0 -0
  140. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/tensorstore.py +0 -0
  141. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/torch.py +0 -0
  142. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/two_stage.py +0 -0
  143. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/strategies/zarr.py +0 -0
  144. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/tensor_aware_state_dict.py +0 -0
  145. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/utils.py +0 -0
  146. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/dist_checkpointing/validation.py +0 -0
  147. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/__init__.py +0 -0
  148. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/data_parallel_base.py +0 -0
  149. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/distributed_data_parallel.py +0 -0
  150. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/distributed_data_parallel_config.py +0 -0
  151. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/finalize_model_grads.py +0 -0
  152. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/__init__.py +0 -0
  153. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/mcore_fsdp_adapter.py +0 -0
  154. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/__init__.py +0 -0
  155. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/megatron_fsdp/__init__.py +0 -0
  156. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/megatron_fsdp/distributed_data_parallel_config.py +0 -0
  157. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/megatron_fsdp/fully_shard.py +0 -0
  158. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/megatron_fsdp/package_info.py +0 -0
  159. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/megatron_fsdp/uneven_dtensor.py +0 -0
  160. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/fsdp/src/megatron_fsdp/utils.py +0 -0
  161. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/param_and_grad_buffer.py +0 -0
  162. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/reduce_scatter_with_fp32_accumulation.py +0 -0
  163. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/torch_fully_sharded_data_parallel.py +0 -0
  164. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/distributed/torch_fully_sharded_data_parallel_config.py +0 -0
  165. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/energy_monitor.py +0 -0
  166. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/__init__.py +0 -0
  167. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/data_type.py +0 -0
  168. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/export_config.py +0 -0
  169. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/model_type.py +0 -0
  170. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/__init__.py +0 -0
  171. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/engine_builder/__init__.py +0 -0
  172. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/engine_builder/trtllm_engine_builder.py +0 -0
  173. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/model_to_trllm_mapping/__init__.py +0 -0
  174. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/model_to_trllm_mapping/default_conversion_dict.py +0 -0
  175. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/trt_model_config.py +0 -0
  176. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/trt_model_type.py +0 -0
  177. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/trtllm_helper.py +0 -0
  178. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/trtllm_layers.py +0 -0
  179. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/trtllm_weights_converter/__init__.py +0 -0
  180. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/trtllm_weights_converter/distributed_trtllm_model_weights_converter.py +0 -0
  181. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/trtllm_weights_converter/single_device_trtllm_model_weights_converter.py +0 -0
  182. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/export/trtllm/trtllm_weights_converter/utils.py +0 -0
  183. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/extensions/__init__.py +0 -0
  184. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/extensions/kitchen.py +0 -0
  185. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/extensions/transformer_engine.py +0 -0
  186. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/full_cuda_graph.py +0 -0
  187. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/__init__.py +0 -0
  188. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_bias_dropout.py +0 -0
  189. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_bias_geglu.py +0 -0
  190. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_bias_gelu.py +0 -0
  191. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_bias_swiglu.py +0 -0
  192. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_cross_entropy.py +0 -0
  193. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_indices_converter.py +0 -0
  194. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_layer_norm.py +0 -0
  195. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_mla_yarn_rope_apply.py +0 -0
  196. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_pad_routing_map.py +0 -0
  197. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_softmax.py +0 -0
  198. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/fusions/fused_weighted_squared_relu.py +0 -0
  199. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/hyper_comm_grid.py +0 -0
  200. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/__init__.py +0 -0
  201. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/common_inference_params.py +0 -0
  202. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/contexts/__init__.py +0 -0
  203. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/contexts/base_context.py +0 -0
  204. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/contexts/static_context.py +0 -0
  205. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/engines/abstract_engine.py +0 -0
  206. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/engines/mcore_engine.py +0 -0
  207. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/model_inference_wrappers/__init__.py +0 -0
  208. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/model_inference_wrappers/abstract_model_inference_wrapper.py +0 -0
  209. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/model_inference_wrappers/gpt/__init__.py +0 -0
  210. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/model_inference_wrappers/gpt/gpt_inference_wrapper.py +0 -0
  211. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/model_inference_wrappers/inference_wrapper_config.py +0 -0
  212. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/model_inference_wrappers/multimodal/vlm_inference_wrapper.py +0 -0
  213. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/model_inference_wrappers/t5/__init__.py +0 -0
  214. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/model_inference_wrappers/t5/t5_inference_wrapper.py +0 -0
  215. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/scheduler.py +0 -0
  216. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_controllers/__init__.py +0 -0
  217. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_controllers/encoder_decoder_text_generation_controller.py +0 -0
  218. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_controllers/simple_text_generation_controller.py +0 -0
  219. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_controllers/vlm_text_generation_controller.py +0 -0
  220. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_server/__init__.py +0 -0
  221. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_server/endpoints/common.py +0 -0
  222. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_server/endpoints/completions.py +0 -0
  223. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_server/run_mcore_engine.py +0 -0
  224. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_server/text_generation_server.py +0 -0
  225. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference/text_generation_server/tokenization.py +0 -0
  226. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/inference_params.py +0 -0
  227. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/jit.py +0 -0
  228. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/model_parallel_config.py +0 -0
  229. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/T5/__init__.py +0 -0
  230. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/T5/t5_model.py +0 -0
  231. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/T5/t5_spec.py +0 -0
  232. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/__init__.py +0 -0
  233. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/bert/__init__.py +0 -0
  234. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/bert/bert_layer_specs.py +0 -0
  235. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/bert/bert_lm_head.py +0 -0
  236. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/bert/bert_model.py +0 -0
  237. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/bert/pooler.py +0 -0
  238. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/__init__.py +0 -0
  239. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/embeddings/__init__.py +0 -0
  240. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/embeddings/language_model_embedding.py +0 -0
  241. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/embeddings/relative_pos_embedding.py +0 -0
  242. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/embeddings/rope_utils.py +0 -0
  243. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/embeddings/rotary_pos_embedding.py +0 -0
  244. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/embeddings/yarn_rotary_pos_embedding.py +0 -0
  245. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/language_module/__init__.py +0 -0
  246. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/language_module/language_module.py +0 -0
  247. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/vision_module/__init__.py +0 -0
  248. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/common/vision_module/vision_module.py +0 -0
  249. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/gpt/__init__.py +0 -0
  250. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/gpt/heterogeneous/heterogeneous_layer_specs.py +0 -0
  251. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/huggingface/__init__.py +0 -0
  252. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/huggingface/clip_model.py +0 -0
  253. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/huggingface/module.py +0 -0
  254. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/huggingface/qwen_model.py +0 -0
  255. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mamba/__init__.py +0 -0
  256. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mimo/__init__.py +0 -0
  257. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mimo/config/__init__.py +0 -0
  258. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mimo/config/base_configs.py +0 -0
  259. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mimo/model/__init__.py +0 -0
  260. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mimo/model/base.py +0 -0
  261. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mimo/submodules/audio.py +0 -0
  262. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mimo/submodules/base.py +0 -0
  263. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/mimo/submodules/vision.py +0 -0
  264. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/multimodal/__init__.py +0 -0
  265. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/multimodal/context_parallel.py +0 -0
  266. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/multimodal/llava_model.py +0 -0
  267. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/multimodal/llava_spec.py +0 -0
  268. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/__init__.py +0 -0
  269. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/base_attention.py +0 -0
  270. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/config.py +0 -0
  271. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/decoder_attention.py +0 -0
  272. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/decoder_spec.py +0 -0
  273. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/encoder_attention.py +0 -0
  274. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/encoder_spec.py +0 -0
  275. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/model.py +0 -0
  276. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/retro/utils.py +0 -0
  277. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/vision/__init__.py +0 -0
  278. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/vision/clip_vit_model.py +0 -0
  279. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/vision/multimodal_projector.py +0 -0
  280. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/vision/radio.py +0 -0
  281. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/models/vision/vit_layer_specs.py +0 -0
  282. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/msc_utils.py +0 -0
  283. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/nccl_allocator.py +0 -0
  284. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/num_microbatches_calculator.py +0 -0
  285. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer/clip_grads.py +0 -0
  286. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer/cpu_offloading/__init__.py +0 -0
  287. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer/distrib_optimizer.py +0 -0
  288. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer/grad_scaler.py +0 -0
  289. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/optimizer/optimizer.py +0 -0
  290. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/packed_seq_params.py +0 -0
  291. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/parallel_state.py +0 -0
  292. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/pipeline_parallel/__init__.py +0 -0
  293. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/pipeline_parallel/bridge_communicator.py +0 -0
  294. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/pipeline_parallel/combined_1f1b.py +0 -0
  295. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/pipeline_parallel/p2p_communication.py +0 -0
  296. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/pipeline_parallel/schedules.py +0 -0
  297. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/pipeline_parallel/utils.py +0 -0
  298. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/post_training/__init__.py +0 -0
  299. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/post_training/modelopt/__init__.py +0 -0
  300. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/post_training/modelopt/gpt/__init__.py +0 -0
  301. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/post_training/modelopt/gpt/model_specs.py +0 -0
  302. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/post_training/modelopt/gpt/state_dict_hooks.py +0 -0
  303. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/post_training/modelopt/layers.py +0 -0
  304. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/post_training/modelopt/mamba/__init__.py +0 -0
  305. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/post_training/modelopt/mamba/model_specs.py +0 -0
  306. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/quantization/__init__.py +0 -0
  307. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/quantization/quant_config.py +0 -0
  308. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/quantization/utils.py +0 -0
  309. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/requirements.txt +0 -0
  310. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/rerun_state_machine.py +0 -0
  311. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/ssm/__init__.py +0 -0
  312. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/ssm/mamba_context_parallel.py +0 -0
  313. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/ssm/mlp_layer.py +0 -0
  314. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/ssm/triton_cache_manager.py +0 -0
  315. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tensor_parallel/__init__.py +0 -0
  316. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tensor_parallel/cross_entropy.py +0 -0
  317. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tensor_parallel/data.py +0 -0
  318. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tensor_parallel/layers.py +0 -0
  319. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tensor_parallel/mappings.py +0 -0
  320. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tensor_parallel/random.py +0 -0
  321. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tensor_parallel/utils.py +0 -0
  322. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/timers.py +0 -0
  323. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/__init__.py +0 -0
  324. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/base_tokenizer.py +0 -0
  325. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/megatron_tokenizer.py +0 -0
  326. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/__init__.py +0 -0
  327. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/__init__.py +0 -0
  328. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/abstract_tokenizer.py +0 -0
  329. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/bytelevel_tokenizer.py +0 -0
  330. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/chat_template.py +0 -0
  331. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/huggingface_tokenizer.py +0 -0
  332. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/megatron_hf_tokenizer.py +0 -0
  333. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/null_tokenizer.py +0 -0
  334. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/sentencepiece_tokenizer.py +0 -0
  335. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/libraries/tiktoken_tokenizer.py +0 -0
  336. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/models/__init__.py +0 -0
  337. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/models/bert_tokenizer.py +0 -0
  338. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/models/default_tokenizer.py +0 -0
  339. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/models/gpt_tokenizer.py +0 -0
  340. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/models/mamba_tokenizer.py +0 -0
  341. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/models/retro_tokenizer.py +0 -0
  342. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/models/t5_tokenizer.py +0 -0
  343. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/text_tokenizer.py +0 -0
  344. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/tokenizers/text/utils/build_tokenizer.py +0 -0
  345. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/__init__.py +0 -0
  346. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/custom_layers/__init__.py +0 -0
  347. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/custom_layers/transformer_engine.py +0 -0
  348. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/enums.py +0 -0
  349. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/fsdp_dtensor_checkpoint.py +0 -0
  350. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/heterogeneous/heterogeneous_config.py +0 -0
  351. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/heterogeneous/linear_replacements.py +0 -0
  352. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/identity_op.py +0 -0
  353. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/mlp.py +0 -0
  354. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/module.py +0 -0
  355. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/__init__.py +0 -0
  356. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/grouped_gemm_util.py +0 -0
  357. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/moe/upcycling_utils.py +0 -0
  358. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/spec_utils.py +0 -0
  359. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/torch_layer_norm.py +0 -0
  360. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/torch_norm.py +0 -0
  361. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/transformer_block.py +0 -0
  362. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron/core/transformer/utils.py +0 -0
  363. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron_core.egg-info/dependency_links.txt +0 -0
  364. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/megatron_core.egg-info/top_level.txt +0 -0
  365. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/setup.cfg +0 -0
  366. {megatron_core-0.16.0rc0.dev101543 → megatron_core-0.16.0rc0.dev101856}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: megatron-core
3
- Version: 0.16.0rc0.dev101543
3
+ Version: 0.16.0rc0.dev101856
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>
@@ -41,7 +41,7 @@ Requires-Dist: transformers; extra == "mlm"
41
41
  Provides-Extra: dev
42
42
  Requires-Dist: nvidia-modelopt[torch]; sys_platform != "darwin" and extra == "dev"
43
43
  Requires-Dist: transformer-engine[pytorch]<2.10.0,>=2.9.0a0; extra == "dev"
44
- Requires-Dist: nvidia-resiliency-ext<0.5.0,>=0.4.0a0; extra == "dev"
44
+ Requires-Dist: nvidia-resiliency-ext; extra == "dev"
45
45
  Requires-Dist: tqdm; extra == "dev"
46
46
  Requires-Dist: einops~=0.8; extra == "dev"
47
47
  Requires-Dist: tensorstore!=0.1.46,!=0.1.72,~=0.1; extra == "dev"
@@ -59,13 +59,20 @@ Requires-Dist: wget; extra == "dev"
59
59
  Requires-Dist: onnxscript; extra == "dev"
60
60
  Provides-Extra: lts
61
61
  Requires-Dist: tqdm; extra == "lts"
62
- Requires-Dist: einops; extra == "lts"
63
- Requires-Dist: tensorstore!=0.1.46,!=0.1.72; extra == "lts"
64
- Requires-Dist: nvtx; extra == "lts"
65
- Requires-Dist: transformers; extra == "lts"
66
- Requires-Dist: zarr; extra == "lts"
62
+ Requires-Dist: einops~=0.8; extra == "lts"
63
+ Requires-Dist: tensorstore!=0.1.46,!=0.1.72,~=0.1; extra == "lts"
64
+ Requires-Dist: nvtx~=0.2; extra == "lts"
65
+ Requires-Dist: multi-storage-client~=0.27; extra == "lts"
66
+ Requires-Dist: opentelemetry-api~=1.33.1; extra == "lts"
67
67
  Requires-Dist: setuptools<80.0.0; extra == "lts"
68
+ Requires-Dist: mamba-ssm~=2.2; extra == "lts"
69
+ Requires-Dist: causal-conv1d~=1.5; extra == "lts"
70
+ Requires-Dist: nv-grouped-gemm~=1.1; extra == "lts"
71
+ Requires-Dist: megatron-energon[av_decode]~=6.0; extra == "lts"
72
+ Requires-Dist: av<16.0.0; extra == "lts"
73
+ Requires-Dist: flashinfer-python; extra == "lts"
68
74
  Requires-Dist: wget; extra == "lts"
75
+ Requires-Dist: onnxscript; extra == "lts"
69
76
 
70
77
  <div align="center">
71
78
 
@@ -168,7 +175,7 @@ pip install --no-build-isolation .[mlm,dev]
168
175
 
169
176
  ```
170
177
  Megatron-LM/
171
- ├── megatron/
178
+ ├── megatron/
172
179
  │ ├── core/ # Megatron Core (kernels, parallelism, building blocks)
173
180
  │ │ ├── models/ # Transformer models
174
181
  │ │ ├── transformer/ # Transformer building blocks
@@ -197,7 +204,7 @@ Megatron-LM/
197
204
 
198
205
  - **Training state-of-the-art foundation models** at scale with cutting-edge performance on latest NVIDIA hardware
199
206
  - **Research teams** exploring new architectures and training techniques
200
- - **Learning distributed training** concepts and best practices
207
+ - **Learning distributed training** concepts and best practices
201
208
  - **Quick experimentation** with proven model configurations
202
209
 
203
210
  **What you get:**
@@ -206,7 +213,7 @@ Megatron-LM/
206
213
  - End-to-end examples from data prep to evaluation
207
214
  - Research-focused tools and utilities
208
215
 
209
- ### Megatron Core: Composable Library
216
+ ### Megatron Core: Composable Library
210
217
 
211
218
  **Composable library** with GPU-optimized building blocks for custom training frameworks.
212
219
 
@@ -239,7 +246,7 @@ Megatron-LM/
239
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
240
247
  - **[NeMo RL](https://github.com/NVIDIA-NeMo/RL)** - Scalable toolkit for efficient reinforcement learning with RLHF, DPO, and other post-training methods
241
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
242
- - **[TensorRT Model Optimizer (ModelOpt)](https://github.com/NVIDIA/TensorRT-Model-Optimizer)** - Model optimization toolkit for quantization, pruning, and distillation
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/).
243
250
 
244
251
  **Compatible with:** [Hugging Face Accelerate](https://github.com/huggingface/accelerate), [Colossal-AI](https://github.com/hpcaitech/ColossalAI), [DeepSpeed](https://github.com/microsoft/DeepSpeed)
245
252
 
@@ -326,7 +333,7 @@ Our codebase efficiently trains models from 2B to 462B parameters across thousan
326
333
  **Benchmark Configuration:**
327
334
 
328
335
  - **Vocabulary size**: 131,072 tokens
329
- - **Sequence length**: 4096 tokens
336
+ - **Sequence length**: 4096 tokens
330
337
  - **Model scaling**: Varied hidden size, attention heads, and layers to achieve target parameter counts
331
338
  - **Communication optimizations**: Fine-grained overlapping with DP (`--overlap-grad-reduce`, `--overlap-param-gather`), TP (`--tp-comm-overlap`), and PP (enabled by default)
332
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 distillation
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
 
@@ -1,11 +1,14 @@
1
1
  # Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved.
2
2
  import json
3
+ import logging
3
4
  from abc import ABC, abstractmethod
4
5
  from collections import OrderedDict
5
6
  from typing import Any
6
7
 
7
8
  import numpy
8
9
 
10
+ logger = logging.getLogger(__name__)
11
+
9
12
 
10
13
  class MegatronLegacyTokenizer(ABC):
11
14
  """Abstract class for tokenizer
@@ -20,6 +23,12 @@ class MegatronLegacyTokenizer(ABC):
20
23
  """
21
24
 
22
25
  def __init__(self, *tokenizer_paths: str, **tokenizer_options: Any):
26
+ # Deprecation warning
27
+ logger.warning(
28
+ "You’re using the legacy tokenizer system, which is deprecated "
29
+ "and will be removed in a future release. Please migrate to the new tokenizer system "
30
+ "(`megatron.core.tokenizers.MegatronTokenizer`)."
31
+ )
23
32
  self.unique_identifiers = OrderedDict()
24
33
  self.unique_identifiers["class"] = type(self).__name__
25
34
  self.unique_identifiers["tokenizer_path"] = list(tokenizer_paths)
@@ -898,9 +898,10 @@ class MegatronFSDP(torch.nn.Module):
898
898
 
899
899
  # Register pre state_dict hook to ensure that the module parameters are
900
900
  # distributed before saving the state_dict.
901
- self._state_dict_pre_hook = self.module.register_state_dict_pre_hook(
902
- lambda *args, **kwargs: self._replace_param_with_distributed_if_needed()
903
- )
901
+ for name, module in self.named_modules():
902
+ module.register_state_dict_pre_hook(
903
+ lambda *args, **kwargs: self._replace_param_with_distributed_if_needed()
904
+ )
904
905
 
905
906
  @contextmanager
906
907
  def no_sync(self):
@@ -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]
@@ -20,15 +20,17 @@ class ModelType(enum.Enum):
20
20
 
21
21
 
22
22
  class Fp8Recipe(str, enum.Enum):
23
- """FP8 recipe names: delayed, tensorwise, mxfp8, blockwise."""
23
+ """FP8 recipe names: delayed, tensorwise, mxfp8, blockwise, custom."""
24
24
 
25
25
  delayed = "delayed"
26
26
  tensorwise = "tensorwise"
27
27
  mxfp8 = "mxfp8"
28
28
  blockwise = "blockwise"
29
+ custom = "custom"
29
30
 
30
31
 
31
32
  class Fp4Recipe(str, enum.Enum):
32
- """FP4 recipe names: nvfp4."""
33
+ """FP4 recipe names: nvfp4, custom."""
33
34
 
34
35
  nvfp4 = "nvfp4"
36
+ custom = "custom"
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
1
+ # Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
2
 
3
3
  import warnings
4
4
  from typing import Optional, Tuple
@@ -7,6 +7,7 @@ from contextlib import nullcontext
7
7
  import torch
8
8
 
9
9
  from megatron.core.enums import Fp4Recipe
10
+ from megatron.core.fp8_utils import _get_custom_recipe
10
11
  from megatron.core.transformer.transformer_config import TransformerConfig
11
12
  from megatron.core.utils import is_te_min_version
12
13
 
@@ -47,6 +48,28 @@ def is_nvfp4tensor(tensor: torch.Tensor) -> bool:
47
48
  return HAVE_TE_FP4_TENSOR_CLASS and isinstance(tensor, FP4_TENSOR_CLASS)
48
49
 
49
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
+
50
73
  def dequantize_fp4_tensor(fp4_tensor: torch.Tensor) -> torch.Tensor:
51
74
  """Dequantize a fp4 tensor to a higher precision tensor."""
52
75
  if is_te_min_version("2.7.0.dev0"):
@@ -70,9 +93,11 @@ if HAVE_TE:
70
93
  Transformer Engine. Please make sure you are using TE version
71
94
  >= 2.7.0.dev0."""
72
95
  )
96
+ elif config.fp4_recipe == Fp4Recipe.custom:
97
+ fp4_recipe = _get_custom_recipe(config.fp4_quantizer_factory)
73
98
  else:
74
99
  raise ValueError(
75
- "NVFP4BlockScaling is the only supported FP4 recipe. "
100
+ "NVFP4BlockScaling and custom are the only supported FP4 recipes. "
76
101
  "Please make sure you are using a compatible TE version >= 2.7.0.dev0."
77
102
  )
78
103
  else:
@@ -2,14 +2,21 @@
2
2
 
3
3
  """Utility functions related to FP8 that are used throughout Megatron core"""
4
4
 
5
+ import importlib
5
6
  import weakref
6
7
  from contextlib import nullcontext
7
8
  from functools import wraps
8
- from typing import List, Optional
9
+ from typing import List, Optional, Union
9
10
 
10
11
  import torch
11
12
 
12
- from megatron.core.enums import Fp8Recipe
13
+ from megatron.core.enums import Fp4Recipe, Fp8Recipe
14
+ from megatron.core.tensor_parallel import (
15
+ ColumnParallelLinear,
16
+ RowParallelLinear,
17
+ gather_from_sequence_parallel_region,
18
+ reduce_scatter_to_sequence_parallel_region,
19
+ )
13
20
  from megatron.core.transformer.transformer_config import TransformerConfig
14
21
  from megatron.core.utils import get_te_version, is_te_min_version
15
22
 
@@ -104,6 +111,53 @@ def dequantize_fp8_tensor(fp8_tensor: torch.Tensor) -> torch.Tensor:
104
111
  return fp8_tensor.from_float8()
105
112
 
106
113
 
114
+ def _resolve_callable_from_python_import_path(dotted_path: str):
115
+ """Resolve a Python import path like 'pkg.mod.func' to a callable.
116
+
117
+ Raises ValueError with clear message on failure.
118
+ """
119
+ if not isinstance(dotted_path, str) or not dotted_path:
120
+ raise ValueError(
121
+ "fp8_quantizer_factory must be a non-empty string with format 'pkg.mod.func'."
122
+ )
123
+
124
+ parts = dotted_path.rsplit(".", 1)
125
+ if len(parts) == 1:
126
+ raise ValueError(f"Invalid fp8_quantizer_factory '{dotted_path}'. Expected 'pkg.mod.func'.")
127
+ module_path, attr = parts[0], parts[1]
128
+
129
+ try:
130
+ mod = importlib.import_module(module_path)
131
+ except Exception as exc:
132
+ raise ValueError(
133
+ f"Failed to import module '{module_path}' for fp8_quantizer_factory: {exc}"
134
+ ) from exc
135
+
136
+ fn = getattr(mod, attr, None)
137
+ if fn is None:
138
+ raise ValueError(
139
+ f"Attribute '{attr}' not found in module '{module_path}' for fp8_quantizer_factory."
140
+ )
141
+ if not callable(fn):
142
+ raise ValueError(
143
+ f"Resolved attribute '{module_path}.{attr}' is not callable for fp8_quantizer_factory."
144
+ )
145
+ return fn
146
+
147
+
148
+ def _get_custom_recipe(quantizer_factory_python_path: str) -> Union[Fp8Recipe, Fp4Recipe]:
149
+ quantizer_factory = _resolve_callable_from_python_import_path(quantizer_factory_python_path)
150
+ try:
151
+ custom_recipe = transformer_engine.common.recipe.CustomRecipe(qfactory=quantizer_factory)
152
+ except AttributeError:
153
+ raise ValueError(
154
+ """CustomRecipe recipe is not available in this version of
155
+ Transformer Engine. Please make sure you are using TE version
156
+ >= 2.9.0.dev0."""
157
+ )
158
+ return custom_recipe
159
+
160
+
107
161
  def get_fp8_align_size(fp8_recipe: Fp8Recipe) -> int:
108
162
  """Get the alignment size required for fp8 GEMM."""
109
163
  if fp8_recipe == Fp8Recipe.mxfp8:
@@ -112,6 +166,27 @@ def get_fp8_align_size(fp8_recipe: Fp8Recipe) -> int:
112
166
  return 16
113
167
 
114
168
 
169
+ def is_column_parallel_linear(module):
170
+ """Returns whether the given module is a ColumnParallelLinear layer."""
171
+ if HAVE_TE and (
172
+ isinstance(module, TEColumnParallelLinear)
173
+ or isinstance(module, TELayerNormColumnParallelLinear)
174
+ ):
175
+ return True
176
+ elif isinstance(module, ColumnParallelLinear):
177
+ return True
178
+ return False
179
+
180
+
181
+ def is_row_parallel_linear(module):
182
+ """Returns whether the given module is a RowParallelLinear layer."""
183
+ if HAVE_TE and isinstance(module, TERowParallelLinear):
184
+ return True
185
+ elif isinstance(module, RowParallelLinear):
186
+ return True
187
+ return False
188
+
189
+
115
190
  """
116
191
  The code below abstracts the functionalities needed for implementing "--fp8-param-gather" into
117
192
  several functions. It provides different implementations for each function based on different
@@ -466,6 +541,8 @@ if HAVE_TE:
466
541
  fp8_recipe = transformer_engine.common.recipe.MXFP8BlockScaling(
467
542
  fp8_format=fp8_format
468
543
  )
544
+ elif config.fp8_recipe == Fp8Recipe.custom:
545
+ fp8_recipe = _get_custom_recipe(config.fp8_quantizer_factory)
469
546
  else:
470
547
  raise ValueError(
471
548
  "Float8CurrentScaling, MXFP8BlockScaling, Float8BlockwiseScaling and "
@@ -587,6 +664,18 @@ if HAVE_TE:
587
664
  if not FP8GlobalStateManager.is_fp8_enabled():
588
665
  return original_forward(input_tensor, *args, **kwargs)
589
666
 
667
+ # With sequence parallelism we need to all-gather before padding
668
+ # and reduce-scatter after unpadding
669
+ if is_sequence_parallel := getattr(module, "sequence_parallel", False):
670
+ if is_column_parallel_linear(module):
671
+ input_tensor = gather_from_sequence_parallel_region(
672
+ input_tensor, group=module.tp_group
673
+ )
674
+
675
+ # Disable sequence parallelism on the module because we are handling the
676
+ # all-gather and reduce-scatter externally
677
+ module.sequence_parallel = False
678
+
590
679
  seq_len, batch_size, hidden_size = input_tensor.shape
591
680
  # Reshape to (S, B*H) to pad sequence dimension
592
681
  input_2d = input_tensor.reshape(seq_len, -1)
@@ -612,6 +701,16 @@ if HAVE_TE:
612
701
  unpadded_output_2d = _unpad_func(output_2d, [seq_len])
613
702
  unpadded_output = unpadded_output_2d.reshape(seq_len, batch_size, output_hidden_size)
614
703
 
704
+ if is_sequence_parallel:
705
+ # Reduce-scatter after unpadding
706
+ if is_row_parallel_linear(module):
707
+ unpadded_output = reduce_scatter_to_sequence_parallel_region(
708
+ unpadded_output, group=module.tp_group
709
+ )
710
+
711
+ # Reset sequence parallelism flag on the module
712
+ module.sequence_parallel = True
713
+
615
714
  if other_outputs:
616
715
  return (unpadded_output,) + other_outputs
617
716
  else:
@@ -9,6 +9,7 @@ import asyncio
9
9
  from typing import Any, AsyncGenerator, Callable, Optional, Type, Union
10
10
 
11
11
  from megatron.core.inference.inference_request import InferenceRequest
12
+ from megatron.core.utils import get_asyncio_loop
12
13
 
13
14
  STOP_ITERATION = Exception()
14
15
 
@@ -20,12 +21,17 @@ class AsyncStream:
20
21
  Adopted from https://github.com/vllm-project/vllm/blob/eb881ed006ca458b052905e33f0d16dbb428063a/vllm/v1/engine/async_stream.py # pylint: disable=line-too-long
21
22
  """
22
23
 
23
- def __init__(self, request_id: int, cancel: Callable[[str], None]) -> None:
24
+ def __init__(
25
+ self,
26
+ request_id: int,
27
+ cancel: Callable[[str], None],
28
+ loop: Optional[asyncio.AbstractEventLoop] = None,
29
+ ) -> None:
24
30
  self._request_id = request_id
25
31
  self._cancel = cancel
26
32
  self._queue: asyncio.Queue = asyncio.Queue()
27
33
  self._finished = False
28
- self._loop = asyncio.get_running_loop()
34
+ self._loop = get_asyncio_loop(loop)
29
35
 
30
36
  def put(self, item: Union[InferenceRequest, Exception]) -> None:
31
37
  """Adds a new value to the stream"""
@@ -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
- _is_cuda(tensor)
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
 
@@ -0,0 +1,106 @@
1
+ # Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+
3
+ import torch
4
+
5
+
6
+ class MambaMetadata:
7
+ """Manages the metadata tensors required for Mamba layers during inference."""
8
+
9
+ def __init__(self, max_requests: int):
10
+ """
11
+ Initializes the Mamba slot allocator.
12
+
13
+ Args:
14
+ max_requests (int): The maximum number of concurrent requests.
15
+ """
16
+ self.max_requests = max_requests
17
+
18
+ # Metadata for mapping requests to slots in the static Mamba state buffer
19
+ self.request_to_mamba_state_idx = torch.full(
20
+ (self.max_requests,), -1, dtype=torch.int32, device=torch.cuda.current_device()
21
+ )
22
+
23
+ # Separate mapping used only for CUDA graph compatibility
24
+ self.request_to_mamba_state_idx_cudagraph_only = torch.full(
25
+ (self.max_requests,), -1, dtype=torch.int32, device=torch.cuda.current_device()
26
+ )
27
+
28
+ # Allocator for Mamba state slots
29
+ self.mamba_state_free_slots = torch.arange(
30
+ self.max_requests, dtype=torch.int32, device=torch.cuda.current_device()
31
+ )
32
+ self.mamba_state_free_slot_count = self.max_requests
33
+
34
+ def reset(self) -> None:
35
+ """
36
+ Resets all Mamba states and frees all allocated slots.
37
+ """
38
+ self.request_to_mamba_state_idx.fill_(-1)
39
+ self.request_to_mamba_state_idx_cudagraph_only.fill_(-1)
40
+
41
+ # Re-initialize the free slot pool
42
+ self.mamba_state_free_slots = torch.arange(
43
+ self.max_requests, dtype=torch.int32, device=torch.cuda.current_device()
44
+ )
45
+ self.mamba_state_free_slot_count = self.max_requests
46
+
47
+ def reset_cudagraph_mapping(self) -> None:
48
+ """
49
+ Resets only the CUDA graph mapping tensor.
50
+ """
51
+ self.request_to_mamba_state_idx_cudagraph_only.fill_(-1)
52
+
53
+ def update_cudagraph_mapping(
54
+ self, active_mamba_indices: torch.Tensor, num_active_requests: int
55
+ ) -> None:
56
+ """
57
+ Updates the dedicated CUDA graph mapping tensor with the indices
58
+ of currently active requests.
59
+
60
+ Args:
61
+ active_mamba_indices (Tensor): Tensor containing the Mamba slot indices
62
+ for active requests.
63
+ num_active_requests (int): The number of active requests.
64
+ """
65
+ self.request_to_mamba_state_idx_cudagraph_only[0:num_active_requests] = active_mamba_indices
66
+
67
+ def allocate_slot(self) -> int:
68
+ """
69
+ Allocates a new slot for a request in the Mamba state buffers.
70
+
71
+ Returns:
72
+ int: The index of the allocated slot.
73
+ Returns None if no slots are available.
74
+ """
75
+ if self.mamba_state_free_slot_count == 0:
76
+ return None
77
+
78
+ # Get a free slot
79
+ self.mamba_state_free_slot_count -= 1
80
+ mamba_idx = self.mamba_state_free_slots[self.mamba_state_free_slot_count]
81
+
82
+ return mamba_idx
83
+
84
+ def free_slots(self, request_indices: torch.Tensor) -> None:
85
+ """
86
+ Frees the Mamba state slots associated with the given request indices.
87
+
88
+ Args:
89
+ request_indices (Tensor): A 1D tensor of request indices to free.
90
+ """
91
+ # Get the Mamba state indices for finished requests
92
+ mamba_indices_to_free = self.request_to_mamba_state_idx[request_indices]
93
+
94
+ # Filter out any invalid indices (e.g., -1)
95
+ mamba_indices_to_free = mamba_indices_to_free[mamba_indices_to_free != -1]
96
+ num_to_free = len(mamba_indices_to_free)
97
+
98
+ if num_to_free > 0:
99
+ # Add the freed indices back to the free slot pool
100
+ start_idx = self.mamba_state_free_slot_count
101
+ end_idx = start_idx + num_to_free
102
+ self.mamba_state_free_slots[start_idx:end_idx] = mamba_indices_to_free
103
+ self.mamba_state_free_slot_count = end_idx
104
+
105
+ # Invalidate the Mamba state index for the finished requests
106
+ self.request_to_mamba_state_idx[request_indices] = -1
@@ -0,0 +1,72 @@
1
+ # Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
2
+
3
+
4
+ class MetadataBase:
5
+ """
6
+ Base class for attention metadata.
7
+ High-performance attention kernels often require input metadata in specific
8
+ formats—such as cumulative query lengths, cumulative key/value lengths,
9
+ and similar structures. Moreover, when using CUDA Graphs, these metadata
10
+ buffers must be statically allocated. This class serves as a unified container
11
+ that manages all such metadata in one place.
12
+ """
13
+
14
+ def __init__(self):
15
+ """
16
+ Initialize the metadata.
17
+ """
18
+ self.state_data = {}
19
+
20
+ def update(self, *args, **kwargs):
21
+ """
22
+ Construct the metadata from request states.
23
+ """
24
+ pass
25
+
26
+ def reset(self):
27
+ """
28
+ Reset the metadata.
29
+ """
30
+ pass
31
+
32
+ def tensor_copy_and_pad(
33
+ self,
34
+ tensor_buf,
35
+ unpadded_tensor,
36
+ real_batch_size,
37
+ padded_batch_size,
38
+ is_cumulative_tensor=False,
39
+ pad_value=0,
40
+ ):
41
+ """
42
+ Copy the unpadded tensor to the tensor_buf,
43
+ pad the tensor_buf with zero or the last value of the tensor,
44
+ depending on whether the tensor is cumulative.
45
+ Args:
46
+ tensor_buf: The destination tensor, at least padded_batch_size long.
47
+ unpadded_tensor: The tensor to copy, at least real_batch_size long.
48
+ real_batch_size: The real batch size.
49
+ padded_batch_size: Padded boundary of the tensor.
50
+ is_cumulative_tensor: Whether the tensor is cumulative.
51
+ If True, we pad the tensor_buf with the last value of the unpadded_tensor.
52
+ pad_value: The value to pad the tensor_buf with when the tensor is not cumulative.
53
+ """
54
+ assert real_batch_size <= padded_batch_size
55
+ assert tensor_buf.shape[0] >= padded_batch_size
56
+ assert unpadded_tensor.shape[0] >= real_batch_size
57
+ if is_cumulative_tensor:
58
+ if real_batch_size == 0:
59
+ value = pad_value
60
+ else:
61
+ value = unpadded_tensor[real_batch_size - 1]
62
+ else:
63
+ value = pad_value
64
+ tensor_buf[0:real_batch_size] = unpadded_tensor[:real_batch_size]
65
+ tensor_buf[real_batch_size:padded_batch_size] = value
66
+ return tensor_buf
67
+
68
+ def __str__(self):
69
+ """
70
+ Return a string representation of the metadata.
71
+ """
72
+ return "\n".join([f"{key}: {value}" for key, value in self.state_data.items()])