megatron-core 0.16.0rc0.dev101856__tar.gz → 0.16.0rc0.dev102154__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 (362) hide show
  1. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/PKG-INFO +1 -1
  2. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_pad_routing_map.py +4 -1
  3. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/attention_context/mamba_metadata.py +21 -1
  4. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/dynamic_block_allocator.py +2 -2
  5. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/dynamic_context.py +52 -63
  6. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/engines/dynamic_engine.py +96 -72
  7. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/engines/static_engine.py +7 -2
  8. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/utils.py +55 -0
  9. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/package_info.py +1 -1
  10. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/parallel_state.py +1 -0
  11. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/ssm/mamba_block.py +1 -55
  12. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/ssm/mamba_layer.py +2 -0
  13. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/ssm/mamba_mixer.py +12 -10
  14. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/attention.py +26 -3
  15. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/moe_utils.py +8 -3
  16. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/router.py +14 -6
  17. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/token_dispatcher.py +3 -1
  18. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/utils.py +122 -0
  19. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron_core.egg-info/PKG-INFO +1 -1
  20. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/MANIFEST.in +0 -0
  21. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/README.md +0 -0
  22. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/README.md +0 -0
  23. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/__init__.py +0 -0
  24. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/activations.py +0 -0
  25. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/config.py +0 -0
  26. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/config_logger.py +0 -0
  27. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/__init__.py +0 -0
  28. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/bert_dataset.py +0 -0
  29. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/blended_dataset.py +0 -0
  30. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/blended_megatron_dataset_builder.py +0 -0
  31. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/blended_megatron_dataset_config.py +0 -0
  32. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/gpt_dataset.py +0 -0
  33. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/helpers.cpp +0 -0
  34. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/helpers.py +0 -0
  35. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/indexed_dataset.py +0 -0
  36. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/masked_dataset.py +0 -0
  37. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/megatron_dataset.py +0 -0
  38. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/megatron_tokenizer.py +0 -0
  39. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/multimodal_dataset.py +0 -0
  40. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/object_storage_utils.py +0 -0
  41. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/__init__.py +0 -0
  42. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/config/__init__.py +0 -0
  43. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/config/bert_embedders.py +0 -0
  44. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/config/config.py +0 -0
  45. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/config/gpt_chunk_datasets.py +0 -0
  46. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/config/tokenizers.py +0 -0
  47. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/db/__init__.py +0 -0
  48. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/db/build.py +0 -0
  49. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/db/dataset.py +0 -0
  50. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/db/utils.py +0 -0
  51. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/external_libs.py +0 -0
  52. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/__init__.py +0 -0
  53. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/build.py +0 -0
  54. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/factory.py +0 -0
  55. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/index.py +0 -0
  56. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/indexes/__init__.py +0 -0
  57. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/indexes/faiss_base.py +0 -0
  58. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/indexes/faiss_par_add.py +0 -0
  59. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/utils.py +0 -0
  60. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/index/validate.py +0 -0
  61. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/query/__init__.py +0 -0
  62. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/query/gpt_chunk_dataset.py +0 -0
  63. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/query/multi_split_gpt_dataset.py +0 -0
  64. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/query/query.py +0 -0
  65. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/query/retro_dataset.py +0 -0
  66. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/query/utils.py +0 -0
  67. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/retro/utils.py +0 -0
  68. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/t5_dataset.py +0 -0
  69. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/utils.py +0 -0
  70. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/datasets/utils_s3.py +0 -0
  71. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/__init__.py +0 -0
  72. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/core.py +0 -0
  73. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/dict_utils.py +0 -0
  74. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/exchange_utils.py +0 -0
  75. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/mapping.py +0 -0
  76. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/optimizer.py +0 -0
  77. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/serialization.py +0 -0
  78. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/state_dict_utils.py +0 -0
  79. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/__init__.py +0 -0
  80. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/async_utils.py +0 -0
  81. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/base.py +0 -0
  82. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/cached_metadata_filesystem_reader.py +0 -0
  83. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/checkpointable.py +0 -0
  84. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/common.py +0 -0
  85. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/filesystem_async.py +0 -0
  86. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/fully_parallel.py +0 -0
  87. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/resharding.py +0 -0
  88. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/state_dict_saver.py +0 -0
  89. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/tensorstore.py +0 -0
  90. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/torch.py +0 -0
  91. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/two_stage.py +0 -0
  92. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/strategies/zarr.py +0 -0
  93. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/tensor_aware_state_dict.py +0 -0
  94. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/utils.py +0 -0
  95. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/dist_checkpointing/validation.py +0 -0
  96. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/__init__.py +0 -0
  97. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/data_parallel_base.py +0 -0
  98. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/distributed_data_parallel.py +0 -0
  99. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/distributed_data_parallel_config.py +0 -0
  100. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/finalize_model_grads.py +0 -0
  101. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/__init__.py +0 -0
  102. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/mcore_fsdp_adapter.py +0 -0
  103. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/__init__.py +0 -0
  104. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/megatron_fsdp/__init__.py +0 -0
  105. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/megatron_fsdp/distributed_data_parallel_config.py +0 -0
  106. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/megatron_fsdp/fully_shard.py +0 -0
  107. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/megatron_fsdp/megatron_fsdp.py +0 -0
  108. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/megatron_fsdp/package_info.py +0 -0
  109. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/megatron_fsdp/param_and_grad_buffer.py +0 -0
  110. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/megatron_fsdp/uneven_dtensor.py +0 -0
  111. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/fsdp/src/megatron_fsdp/utils.py +0 -0
  112. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/param_and_grad_buffer.py +0 -0
  113. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/reduce_scatter_with_fp32_accumulation.py +0 -0
  114. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/torch_fully_sharded_data_parallel.py +0 -0
  115. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/distributed/torch_fully_sharded_data_parallel_config.py +0 -0
  116. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/energy_monitor.py +0 -0
  117. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/enums.py +0 -0
  118. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/__init__.py +0 -0
  119. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/data_type.py +0 -0
  120. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/export_config.py +0 -0
  121. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/model_type.py +0 -0
  122. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/__init__.py +0 -0
  123. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/engine_builder/__init__.py +0 -0
  124. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/engine_builder/trtllm_engine_builder.py +0 -0
  125. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/model_to_trllm_mapping/__init__.py +0 -0
  126. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/model_to_trllm_mapping/default_conversion_dict.py +0 -0
  127. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/trt_model_config.py +0 -0
  128. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/trt_model_type.py +0 -0
  129. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/trtllm_helper.py +0 -0
  130. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/trtllm_layers.py +0 -0
  131. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/trtllm_weights_converter/__init__.py +0 -0
  132. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/trtllm_weights_converter/distributed_trtllm_model_weights_converter.py +0 -0
  133. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/trtllm_weights_converter/single_device_trtllm_model_weights_converter.py +0 -0
  134. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/export/trtllm/trtllm_weights_converter/utils.py +0 -0
  135. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/extensions/__init__.py +0 -0
  136. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/extensions/kitchen.py +0 -0
  137. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/extensions/transformer_engine.py +0 -0
  138. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/extensions/transformer_engine_spec_provider.py +0 -0
  139. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fp4_utils.py +0 -0
  140. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fp8_utils.py +0 -0
  141. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/full_cuda_graph.py +0 -0
  142. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/__init__.py +0 -0
  143. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_bias_dropout.py +0 -0
  144. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_bias_geglu.py +0 -0
  145. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_bias_gelu.py +0 -0
  146. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_bias_swiglu.py +0 -0
  147. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_cross_entropy.py +0 -0
  148. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_indices_converter.py +0 -0
  149. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_layer_norm.py +0 -0
  150. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_mla_yarn_rope_apply.py +0 -0
  151. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_softmax.py +0 -0
  152. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/fusions/fused_weighted_squared_relu.py +0 -0
  153. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/hyper_comm_grid.py +0 -0
  154. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/__init__.py +0 -0
  155. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/async_stream.py +0 -0
  156. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/common_inference_params.py +0 -0
  157. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/communication_utils.py +0 -0
  158. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/__init__.py +0 -0
  159. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/attention_context/metadata_base.py +0 -0
  160. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/attention_context/mha_metadata.py +0 -0
  161. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/base_context.py +0 -0
  162. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/fused_kv_append_kernel.py +0 -0
  163. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/contexts/static_context.py +0 -0
  164. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/data_parallel_inference_coordinator.py +0 -0
  165. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/engines/__init__.py +0 -0
  166. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/engines/abstract_engine.py +0 -0
  167. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/engines/mcore_engine.py +0 -0
  168. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/headers.py +0 -0
  169. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/inference_client.py +0 -0
  170. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/inference_request.py +0 -0
  171. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/model_inference_wrappers/__init__.py +0 -0
  172. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/model_inference_wrappers/abstract_model_inference_wrapper.py +0 -0
  173. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/model_inference_wrappers/gpt/__init__.py +0 -0
  174. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/model_inference_wrappers/gpt/gpt_inference_wrapper.py +0 -0
  175. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/model_inference_wrappers/inference_wrapper_config.py +0 -0
  176. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/model_inference_wrappers/multimodal/vlm_inference_wrapper.py +0 -0
  177. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/model_inference_wrappers/t5/__init__.py +0 -0
  178. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/model_inference_wrappers/t5/t5_inference_wrapper.py +0 -0
  179. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/sampling_params.py +0 -0
  180. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/scheduler.py +0 -0
  181. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_controllers/__init__.py +0 -0
  182. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_controllers/encoder_decoder_text_generation_controller.py +0 -0
  183. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_controllers/simple_text_generation_controller.py +0 -0
  184. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_controllers/text_generation_controller.py +0 -0
  185. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_controllers/vlm_text_generation_controller.py +0 -0
  186. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_server/__init__.py +0 -0
  187. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_server/endpoints/common.py +0 -0
  188. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_server/endpoints/completions.py +0 -0
  189. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_server/run_mcore_engine.py +0 -0
  190. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_server/text_generation_server.py +0 -0
  191. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/text_generation_server/tokenization.py +0 -0
  192. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference/unified_memory.py +0 -0
  193. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/inference_params.py +0 -0
  194. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/jit.py +0 -0
  195. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/model_parallel_config.py +0 -0
  196. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/T5/__init__.py +0 -0
  197. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/T5/t5_model.py +0 -0
  198. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/T5/t5_spec.py +0 -0
  199. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/__init__.py +0 -0
  200. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/backends.py +0 -0
  201. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/bert/__init__.py +0 -0
  202. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/bert/bert_layer_specs.py +0 -0
  203. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/bert/bert_lm_head.py +0 -0
  204. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/bert/bert_model.py +0 -0
  205. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/bert/pooler.py +0 -0
  206. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/__init__.py +0 -0
  207. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/embeddings/__init__.py +0 -0
  208. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/embeddings/language_model_embedding.py +0 -0
  209. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/embeddings/relative_pos_embedding.py +0 -0
  210. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/embeddings/rope_utils.py +0 -0
  211. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/embeddings/rotary_pos_embedding.py +0 -0
  212. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/embeddings/yarn_rotary_pos_embedding.py +0 -0
  213. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/language_module/__init__.py +0 -0
  214. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/language_module/language_module.py +0 -0
  215. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/model_chunk_schedule_plan.py +0 -0
  216. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/vision_module/__init__.py +0 -0
  217. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/common/vision_module/vision_module.py +0 -0
  218. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/gpt/__init__.py +0 -0
  219. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/gpt/fine_grained_callables.py +0 -0
  220. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/gpt/gpt_layer_specs.py +0 -0
  221. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/gpt/gpt_model.py +0 -0
  222. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/gpt/heterogeneous/heterogeneous_layer_specs.py +0 -0
  223. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/gpt/moe_module_specs.py +0 -0
  224. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/huggingface/__init__.py +0 -0
  225. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/huggingface/clip_model.py +0 -0
  226. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/huggingface/module.py +0 -0
  227. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/huggingface/qwen_model.py +0 -0
  228. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mamba/__init__.py +0 -0
  229. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mamba/mamba_layer_specs.py +0 -0
  230. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mamba/mamba_model.py +0 -0
  231. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mimo/__init__.py +0 -0
  232. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mimo/config/__init__.py +0 -0
  233. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mimo/config/base_configs.py +0 -0
  234. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mimo/model/__init__.py +0 -0
  235. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mimo/model/base.py +0 -0
  236. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mimo/submodules/audio.py +0 -0
  237. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mimo/submodules/base.py +0 -0
  238. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/mimo/submodules/vision.py +0 -0
  239. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/multimodal/__init__.py +0 -0
  240. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/multimodal/context_parallel.py +0 -0
  241. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/multimodal/llava_model.py +0 -0
  242. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/multimodal/llava_spec.py +0 -0
  243. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/__init__.py +0 -0
  244. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/base_attention.py +0 -0
  245. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/config.py +0 -0
  246. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/decoder_attention.py +0 -0
  247. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/decoder_spec.py +0 -0
  248. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/encoder_attention.py +0 -0
  249. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/encoder_spec.py +0 -0
  250. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/model.py +0 -0
  251. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/retro/utils.py +0 -0
  252. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/vision/__init__.py +0 -0
  253. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/vision/clip_vit_model.py +0 -0
  254. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/vision/multimodal_projector.py +0 -0
  255. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/vision/radio.py +0 -0
  256. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/models/vision/vit_layer_specs.py +0 -0
  257. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/msc_utils.py +0 -0
  258. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/nccl_allocator.py +0 -0
  259. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/num_microbatches_calculator.py +0 -0
  260. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer/__init__.py +0 -0
  261. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer/clip_grads.py +0 -0
  262. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer/cpu_offloading/__init__.py +0 -0
  263. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer/cpu_offloading/hybrid_optimizer.py +0 -0
  264. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer/distrib_optimizer.py +0 -0
  265. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer/grad_scaler.py +0 -0
  266. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer/optimizer.py +0 -0
  267. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer/optimizer_config.py +0 -0
  268. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/optimizer_param_scheduler.py +0 -0
  269. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/packed_seq_params.py +0 -0
  270. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/pipeline_parallel/__init__.py +0 -0
  271. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/pipeline_parallel/bridge_communicator.py +0 -0
  272. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/pipeline_parallel/combined_1f1b.py +0 -0
  273. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/pipeline_parallel/p2p_communication.py +0 -0
  274. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/pipeline_parallel/schedules.py +0 -0
  275. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/pipeline_parallel/utils.py +0 -0
  276. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/post_training/__init__.py +0 -0
  277. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/post_training/modelopt/__init__.py +0 -0
  278. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/post_training/modelopt/gpt/__init__.py +0 -0
  279. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/post_training/modelopt/gpt/model_specs.py +0 -0
  280. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/post_training/modelopt/gpt/state_dict_hooks.py +0 -0
  281. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/post_training/modelopt/layers.py +0 -0
  282. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/post_training/modelopt/mamba/__init__.py +0 -0
  283. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/post_training/modelopt/mamba/model_specs.py +0 -0
  284. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/process_groups_config.py +0 -0
  285. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/quantization/__init__.py +0 -0
  286. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/quantization/quant_config.py +0 -0
  287. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/quantization/utils.py +0 -0
  288. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/requirements.txt +0 -0
  289. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/rerun_state_machine.py +0 -0
  290. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/safe_globals.py +0 -0
  291. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/ssm/__init__.py +0 -0
  292. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/ssm/mamba_context_parallel.py +0 -0
  293. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/ssm/mamba_hybrid_layer_allocation.py +0 -0
  294. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/ssm/mlp_layer.py +0 -0
  295. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/ssm/triton_cache_manager.py +0 -0
  296. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tensor_parallel/__init__.py +0 -0
  297. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tensor_parallel/cross_entropy.py +0 -0
  298. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tensor_parallel/data.py +0 -0
  299. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tensor_parallel/inference_layers.py +0 -0
  300. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tensor_parallel/layers.py +0 -0
  301. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tensor_parallel/mappings.py +0 -0
  302. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tensor_parallel/random.py +0 -0
  303. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tensor_parallel/utils.py +0 -0
  304. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/timers.py +0 -0
  305. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/__init__.py +0 -0
  306. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/base_tokenizer.py +0 -0
  307. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/megatron_tokenizer.py +0 -0
  308. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/__init__.py +0 -0
  309. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/__init__.py +0 -0
  310. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/abstract_tokenizer.py +0 -0
  311. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/bytelevel_tokenizer.py +0 -0
  312. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/chat_template.py +0 -0
  313. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/huggingface_tokenizer.py +0 -0
  314. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/megatron_hf_tokenizer.py +0 -0
  315. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/null_tokenizer.py +0 -0
  316. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/sentencepiece_tokenizer.py +0 -0
  317. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/libraries/tiktoken_tokenizer.py +0 -0
  318. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/models/__init__.py +0 -0
  319. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/models/bert_tokenizer.py +0 -0
  320. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/models/default_tokenizer.py +0 -0
  321. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/models/gpt_tokenizer.py +0 -0
  322. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/models/mamba_tokenizer.py +0 -0
  323. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/models/retro_tokenizer.py +0 -0
  324. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/models/t5_tokenizer.py +0 -0
  325. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/text_tokenizer.py +0 -0
  326. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/tokenizers/text/utils/build_tokenizer.py +0 -0
  327. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/__init__.py +0 -0
  328. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/cuda_graphs.py +0 -0
  329. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/custom_layers/__init__.py +0 -0
  330. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/custom_layers/transformer_engine.py +0 -0
  331. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/dot_product_attention.py +0 -0
  332. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/enums.py +0 -0
  333. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/fsdp_dtensor_checkpoint.py +0 -0
  334. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/heterogeneous/heterogeneous_config.py +0 -0
  335. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/heterogeneous/linear_replacements.py +0 -0
  336. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/identity_op.py +0 -0
  337. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/mlp.py +0 -0
  338. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/module.py +0 -0
  339. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/__init__.py +0 -0
  340. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/experts.py +0 -0
  341. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/fused_a2a.py +0 -0
  342. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/grouped_gemm_util.py +0 -0
  343. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/moe_layer.py +0 -0
  344. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/shared_experts.py +0 -0
  345. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/moe/upcycling_utils.py +0 -0
  346. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/multi_latent_attention.py +0 -0
  347. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/multi_token_prediction.py +0 -0
  348. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/pipeline_parallel_layer_layout.py +0 -0
  349. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/spec_utils.py +0 -0
  350. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/torch_layer_norm.py +0 -0
  351. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/torch_norm.py +0 -0
  352. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/transformer_block.py +0 -0
  353. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/transformer_config.py +0 -0
  354. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/transformer_layer.py +0 -0
  355. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron/core/transformer/utils.py +0 -0
  356. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron_core.egg-info/SOURCES.txt +0 -0
  357. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron_core.egg-info/dependency_links.txt +0 -0
  358. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron_core.egg-info/requires.txt +0 -0
  359. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/megatron_core.egg-info/top_level.txt +0 -0
  360. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/pyproject.toml +0 -0
  361. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/setup.cfg +0 -0
  362. {megatron_core-0.16.0rc0.dev101856 → megatron_core-0.16.0rc0.dev102154}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: megatron-core
3
- Version: 0.16.0rc0.dev101856
3
+ Version: 0.16.0rc0.dev102154
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>
@@ -1,9 +1,11 @@
1
- # Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
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
 
8
+ from megatron.core.jit import jit_fuser
7
9
  from megatron.core.utils import experimental_fn, null_decorator
8
10
 
9
11
  try:
@@ -69,6 +71,7 @@ def _pad_routing_map_kernel(
69
71
 
70
72
 
71
73
  @experimental_fn(introduced_with_version="0.13.0")
74
+ @jit_fuser
72
75
  def fused_pad_routing_map(routing_map: torch.Tensor, pad_multiple: int) -> torch.Tensor:
73
76
  """Fused version of pad_routing_map.
74
77
  Args:
@@ -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
 
@@ -21,11 +21,11 @@ class BlockAllocator:
21
21
  space for paused requests that live on the CPU.
22
22
  """
23
23
 
24
- def __init__(self, context: "DynamicInferenceContext", active_count: int):
24
+ def __init__(self, context: "DynamicInferenceContext", total_count: int):
25
25
 
26
26
  self.context = context
27
27
 
28
- active_count -= 1 # -1 for dummy_block_idx (see below)
28
+ active_count = (total_count - 1) // 2 # -1 for dummy_block_idx (see below)
29
29
  active_count = max(1, active_count) # need at least one block
30
30
  self.total_count = 2 * active_count + 1 # +1 for dummy_block_idx
31
31
  self.total_avail = self.total_count - 1 # -1 for dummy_block_idx
@@ -24,14 +24,11 @@ from megatron.core.inference.unified_memory import (
24
24
  from megatron.core.inference.utils import tensor_swap
25
25
  from megatron.core.models.common.embeddings.rope_utils import apply_rotary_pos_emb
26
26
  from megatron.core.package_info import __version__ as mcore_version
27
- from megatron.core.ssm.mamba_hybrid_layer_allocation import (
28
- Symbols,
29
- get_layer_maps_from_layer_type_list,
30
- )
27
+ from megatron.core.ssm.mamba_hybrid_layer_allocation import get_layer_maps_from_layer_type_list
31
28
  from megatron.core.transformer import TransformerConfig
32
29
  from megatron.core.utils import divide as core_divide
33
30
 
34
- from .attention_context.mamba_metadata import MambaMetadata
31
+ from .attention_context.mamba_metadata import MambaInferenceStateConfig, MambaMetadata
35
32
  from .attention_context.mha_metadata import GraphedMHAMetadata, NonGraphedMHAMetadata
36
33
  from .base_context import BaseInferenceContext
37
34
  from .dynamic_block_allocator import BlockAllocator
@@ -202,37 +199,23 @@ class DynamicInferenceContext(BaseInferenceContext):
202
199
  arbitrary sequence length may be added, paused, or removed from the context
203
200
  at any step. The only constraint is the maximum number of requests or tokens
204
201
  that the context is defined to support. For the block-level KV cache, a memory
205
- buffer is allocated up front (size `2 * active_buffer_size_gb`), that is
202
+ buffer is allocated up front (size `buffer_size_gb` if `unified_memory_level`
203
+ == 0, or `2 * buffer_size_gb` if `unified_memory_level` == 1), that is
206
204
  divided into blocks and dynamically assigned to requests. At any given step,
207
205
  any unassigned blocks equate to unused space.
208
206
 
209
- Additionally, a fraction of the memory buffer (`gtd_request_fraction`, i.e.,
210
- the 'guaranteed' request fraction) is reserved for guaranteeing that a
211
- minimum number of active requests may continue to generate tokens on any step.
212
- The reason for this is that the context manages two pools of requests: 1)
213
- active requests, and 2) paused requests. Paused requests are requests where
214
- insufficient memory blocks remain for future assignment, and these requests
215
- are set aside until enough memory blocks are available. Active requests are
216
- requests that have sufficient memory blocks to proceed with their generations.
217
-
218
- The situation can arise where all requests eventually become paused due to all
219
- memory blocks being assigned. In this case, there are no active requests and
220
- thus no progress can be made. To handle this case, a fraction of the memory
221
- buffer is reserved that only allows active requests, and no paused requests.
222
- This fraction must be carefully tuned, as it can have an order of magnitude
223
- impact on overall latency.
224
-
225
207
  Args:
226
208
  params_dtype (torch.dtype): Dtype used for KV cache.
227
- num_layers (int): Number of layers.
209
+ num_layers (int): Number of layers on this pipeline parallel rank.
228
210
  kv_channels (int): Hidden dimension per attention head.
229
211
  num_attention_heads (int): Number of attention heads.
230
212
  max_sequence_length (int): Max possible sequence length (prompt + output)
231
213
  that will occur.
232
- active_buffer_size_gb (float): Buffer size reserved for active requests
233
- that live on the GPU. The total buffer size (stored in unified memory)
234
- is 2x this value, with the the other half of the buffer reserved for
235
- paused requests that live on the CPU.
214
+ buffer_size_gb (float): Buffer size reserved on the GPU for the KV cache.
215
+ if `unified_memory_level` >= 1, then CPU memory is additionally
216
+ utilized, resulting in a total buffer size of `2 * buffer_size_gb`.
217
+ Regardless of total buffer size, the KV cache is conceptually divided
218
+ into 50% active requests and 50% paused requests.
236
219
  max_tokens (int): Max number of tokens to use for forward passes. This is
237
220
  primarily limited by prefill activation memory usage. (Defaults to
238
221
  16384).
@@ -245,14 +228,8 @@ class DynamicInferenceContext(BaseInferenceContext):
245
228
  materialize_only_last_token_logits (Optional[bool]): Whether to only
246
229
  materialize logits for the last token. This should be set to False
247
230
  if returning log probs.
248
- layer_type_list (Optional[List[str]]): A list of strings that indicates
249
- the layer type (Mamba / Attention / MLP) for each layer.
250
- See `megatron/core/ssm/mamba_hybrid_layer_allocation.py` for the list
251
- of symbols. This must be provided for hybrid models.
252
- mamba_conv_states_shape: (Optional[Tuple[int]]): Mamba conv states shape per request.
253
- This must be provided for hybrid models.
254
- mamba_ssm_states_shape: (Optional[Tuple[int]]): Mamba ssm states shape per request.
255
- This must be provided for hybrid models.
231
+ mamba_inference_state_config (Optional[MambaInferenceStateConfig]): The Mamba
232
+ inference state config if the model is a hybrid model.
256
233
  use_cuda_graphs_for_non_decode_steps (bool): If True, use cuda graphs for non-decode
257
234
  engine steps.
258
235
  unified_memory_level (Optional[int]): Set unified memory usage within the
@@ -279,7 +256,7 @@ class DynamicInferenceContext(BaseInferenceContext):
279
256
  kv_channels: int,
280
257
  num_attention_heads: int,
281
258
  max_sequence_length: int,
282
- active_buffer_size_gb: float,
259
+ buffer_size_gb: float,
283
260
  max_tokens: int = DEFAULT_MAX_TOKENS,
284
261
  block_size_tokens: int = 256,
285
262
  tensor_model_parallel_size: Optional[int] = None,
@@ -288,9 +265,7 @@ class DynamicInferenceContext(BaseInferenceContext):
288
265
  qk_pos_emb_head_dim: Optional[int] = None,
289
266
  num_cuda_graphs: Optional[int] = None,
290
267
  materialize_only_last_token_logits: Optional[bool] = True,
291
- layer_type_list: Optional[List[str]] = None,
292
- mamba_conv_states_shape: Optional[Tuple[int]] = None,
293
- mamba_ssm_states_shape: Optional[Tuple[int]] = None,
268
+ mamba_inference_state_config: Optional[MambaInferenceStateConfig] = None,
294
269
  use_cuda_graphs_for_non_decode_steps: bool = True,
295
270
  use_flashinfer_fused_rope: bool = False,
296
271
  unified_memory_level: Optional[int] = 1,
@@ -317,8 +292,10 @@ class DynamicInferenceContext(BaseInferenceContext):
317
292
  self.num_attention_heads_per_partition = core_divide(num_attention_heads, tp_size)
318
293
 
319
294
  # Mamba states.
320
- self.is_hybrid_model = layer_type_list is not None and Symbols.MAMBA in layer_type_list
295
+ self.is_hybrid_model = mamba_inference_state_config is not None
321
296
  if self.is_hybrid_model:
297
+ mamba_conv_states_shape = mamba_inference_state_config.mamba_conv_states_shape
298
+ mamba_ssm_states_shape = mamba_inference_state_config.mamba_ssm_states_shape
322
299
  assert (
323
300
  mamba_conv_states_shape is not None
324
301
  ), "`mamba_conv_states_shape` must be specified for hybrid models"
@@ -333,7 +310,7 @@ class DynamicInferenceContext(BaseInferenceContext):
333
310
  # corresponding attention layer index or Mamba layer index depending on the
334
311
  # layer type.
335
312
  attention_layer_map, mamba_layer_map, _, _ = get_layer_maps_from_layer_type_list(
336
- layer_type_list
313
+ mamba_inference_state_config.layer_type_list
337
314
  )
338
315
  self.num_attention_layers = len(attention_layer_map)
339
316
  self.num_mamba_layers = len(mamba_layer_map)
@@ -359,7 +336,10 @@ class DynamicInferenceContext(BaseInferenceContext):
359
336
  # one vector c_t (rank) + optional RoPE phase slice
360
337
  self.kv_reduced_dim = kv_lora_rank + qk_pos_emb_head_dim
361
338
  self.block_size_bytes = (
362
- dtype_size_bytes * num_layers * self.block_size_tokens * self.kv_reduced_dim
339
+ dtype_size_bytes
340
+ * num_attention_layers
341
+ * self.block_size_tokens
342
+ * self.kv_reduced_dim
363
343
  )
364
344
  else:
365
345
  self.block_size_bytes = (
@@ -379,14 +359,29 @@ class DynamicInferenceContext(BaseInferenceContext):
379
359
  mamba_states_memory_per_request *= self.num_mamba_layers
380
360
  mamba_states_memory_per_request *= dtype_size_bytes
381
361
 
362
+ # Unified memory.
363
+ self.unified_memory_level = unified_memory_level
364
+ if unified_memory_level > 0:
365
+ try:
366
+ self.unified_memory_mempool = create_unified_mempool()
367
+ except UnifiedMemoryUnsupportedError:
368
+ if torch.distributed.get_rank() == 0:
369
+ warnings.warn(
370
+ "Unified memory requested but not available; defaulting to GPU memory."
371
+ )
372
+ self.unified_memory_level = 0
373
+
382
374
  # Initialize block allocator.
383
- active_buffer_size_bytes = int(active_buffer_size_gb * 1024**3)
384
- active_block_count_total = active_buffer_size_bytes // (
375
+ buffer_size_bytes = int(buffer_size_gb * 1024**3)
376
+ block_count_total = buffer_size_bytes // (
385
377
  self.block_size_bytes + mamba_states_memory_per_request
386
378
  )
387
- self.block_allocator = BlockAllocator(context=self, active_count=active_block_count_total)
388
- del active_block_count_total # use self.block_allocator.active_count
389
- active_buffer_size_bytes = self.block_allocator.active_count * self.block_size_bytes
379
+ self.block_allocator = BlockAllocator(
380
+ context=self,
381
+ total_count=(
382
+ block_count_total if self.unified_memory_level == 0 else 2 * block_count_total
383
+ ),
384
+ )
390
385
 
391
386
  # Set max_total_requests, max_active_requests, max_tokens.
392
387
  self.max_total_requests = self.block_allocator.total_count - 1 # -1 for dummy block
@@ -408,18 +403,6 @@ class DynamicInferenceContext(BaseInferenceContext):
408
403
  self.params_dtype = params_dtype
409
404
  self.max_sequence_length = max_sequence_length
410
405
 
411
- # Unified memory.
412
- self.unified_memory_level = unified_memory_level
413
- if unified_memory_level > 0:
414
- try:
415
- self.unified_memory_mempool = create_unified_mempool()
416
- except UnifiedMemoryUnsupportedError:
417
- if torch.distributed.get_rank() == 0:
418
- warnings.warn(
419
- "Unified memory requested but not available; defaulting to GPU memory."
420
- )
421
- self.unified_memory_level = 0
422
-
423
406
  # Request and token counts.
424
407
  self.total_request_count = 0
425
408
  self.active_token_count = 0
@@ -513,7 +496,10 @@ class DynamicInferenceContext(BaseInferenceContext):
513
496
  # Print info.
514
497
  logging.info(
515
498
  "DynamicInferenceContext: allocated context with active buffer size %s (%d blocks)."
516
- % (get_mem_size_str(active_buffer_size_bytes), self.block_allocator.active_count)
499
+ % (
500
+ get_mem_size_str(self.block_allocator.active_count * self.block_size_bytes),
501
+ self.block_allocator.active_count,
502
+ )
517
503
  )
518
504
 
519
505
  def allocate_all_tensors(self, *, is_init: bool) -> None:
@@ -731,8 +717,9 @@ class DynamicInferenceContext(BaseInferenceContext):
731
717
  inference_config: InferenceWrapperConfig,
732
718
  model,
733
719
  max_batch_size: int,
734
- active_buffer_size_gb: float = 40,
720
+ buffer_size_gb: float = 40,
735
721
  num_cuda_graphs: int = None,
722
+ mamba_inference_state_config: Optional[MambaInferenceStateConfig] = None,
736
723
  ):
737
724
  """
738
725
  Instantiate a `DynamicInferenceContext` from a `TransformerConfig` and an `InferenceWrapperConfig`.
@@ -746,14 +733,15 @@ class DynamicInferenceContext(BaseInferenceContext):
746
733
  max_sequence_length = max(max_sequence_length, max_batch_size)
747
734
  return cls(
748
735
  params_dtype=inference_config.params_dtype,
749
- num_layers=model_config.num_layers,
736
+ num_layers=model_config.num_layers // model_config.pipeline_model_parallel_size,
750
737
  kv_channels=model_config.kv_channels,
751
738
  num_attention_heads=model_config.num_query_groups,
752
739
  max_sequence_length=inference_config.inference_max_seq_length,
753
- active_buffer_size_gb=active_buffer_size_gb,
740
+ buffer_size_gb=buffer_size_gb,
754
741
  materialize_only_last_token_logits=False,
755
742
  num_cuda_graphs=num_cuda_graphs,
756
743
  use_flashinfer_fused_rope=None,
744
+ mamba_inference_state_config=mamba_inference_state_config,
757
745
  )
758
746
 
759
747
  @classmethod
@@ -894,6 +882,7 @@ class DynamicInferenceContext(BaseInferenceContext):
894
882
  to blocks within the block-level memory buffer.
895
883
  """
896
884
  attention_layer_number = self.layer_map[layer_number - 1]
885
+
897
886
  if self.cache_mla_latent:
898
887
  return (
899
888
  self.memory_buffer[attention_layer_number],
@@ -4,11 +4,13 @@ import asyncio
4
4
  import logging
5
5
  import multiprocessing
6
6
  import os
7
+ import socket
7
8
  import struct
8
9
  import time
9
10
  import warnings
10
11
  from collections import deque
11
12
  from contextlib import contextmanager
13
+ from dataclasses import dataclass
12
14
  from datetime import datetime
13
15
  from itertools import repeat
14
16
  from typing import Dict, List, Optional, Tuple, Union
@@ -94,6 +96,14 @@ def format_mem_bytes(mem_bytes):
94
96
  return "%d bytes" % mem_bytes
95
97
 
96
98
 
99
+ @dataclass(kw_only=True)
100
+ class RequestEntry:
101
+ """Entry in the engine's `self.requests` dict."""
102
+
103
+ record: DynamicInferenceRequestRecord
104
+ future: asyncio.Future
105
+
106
+
97
107
  # pylint: disable=line-too-long
98
108
  class DynamicInferenceEngine(AbstractEngine):
99
109
  """The dynamic inference engine.
@@ -214,8 +224,7 @@ class DynamicInferenceEngine(AbstractEngine):
214
224
  self.waiting_request_ids = deque()
215
225
  self.failed_request_ids = [] # deque()
216
226
  self.request_counter = Counter()
217
- self.request_records: Dict[int, DynamicInferenceRequestRecord] = {}
218
- self.request_completion_futures: Dict[int, asyncio.Future] = {}
227
+ self.requests: Dict[int, RequestEntry] = {}
219
228
  self.step_start_event = torch.cuda.Event(enable_timing=True)
220
229
  self.step_end_event = torch.cuda.Event(enable_timing=True)
221
230
  self.paused = False
@@ -338,6 +347,7 @@ class DynamicInferenceEngine(AbstractEngine):
338
347
  async def start_listening_to_data_parallel_coordinator(
339
348
  self,
340
349
  inference_coordinator_port: int,
350
+ inference_mp_coordinator_port: int = 20000,
341
351
  launch_inference_coordinator: bool = True,
342
352
  verbose: bool = False,
343
353
  *,
@@ -351,15 +361,15 @@ class DynamicInferenceEngine(AbstractEngine):
351
361
  based on the rank's role within the distributed topology.
352
362
 
353
363
  The setup involves two primary roles within each data-parallel group:
354
- 1. **TP Coordinator (TP_rank=0, PP_rank=0)**: This rank connects directly
364
+ 1. **MP Coordinator (TP_rank=0, PP_rank=0)**: This rank connects directly
355
365
  to the central coordinator via a ZMQ `DEALER` socket. It receives
356
366
  requests and uses a ZMQ `PUB` (publisher) socket to broadcast them
357
- to all other ranks within its tensor-parallel (TP) group.
358
- 2. **TP Workers (all other ranks)**: These ranks use ZMQ `SUB` (subscriber)
359
- sockets to listen for requests broadcast by their local TP Coordinator.
367
+ to all other ranks within its model-parallel (MP) group.
368
+ 2. **MP Workers (all other ranks)**: These ranks use ZMQ `SUB` (subscriber)
369
+ sockets to listen for requests broadcast by their local MP Coordinator.
360
370
 
361
- This architecture uses fast Inter-Process Communication (`ipc`) sockets for
362
- intra-node broadcasts within a TP group.
371
+ This architecture uses TCP sockets for both inter-node and intra-node broadcasts
372
+ within an MP group.
363
373
 
364
374
  Finally, after setting up the communication channels and ensuring all ranks
365
375
  are synchronized, this method starts the main engine processing loop
@@ -368,16 +378,13 @@ class DynamicInferenceEngine(AbstractEngine):
368
378
  Args:
369
379
  inference_coordinator_port (int): The network port where the central
370
380
  `InferenceCoordinator` is or will be listening.
381
+ inference_mp_coordinator_port (int): The base network port where each model parallel
382
+ coordinator will broadcast messages from. Each MP group will compute an independent
383
+ port offset from this base port.
371
384
  launch_inference_coordinator (bool, optional): If True, the global rank 0
372
385
  process will spawn and manage the `InferenceCoordinator`
373
386
  process. Defaults to True.
374
387
  verbose (bool): Whether to run in verbose mode.
375
-
376
- Note:
377
- The current implementation uses `ipc` sockets for broadcasting requests
378
- within a Tensor Parallel group, which limits each TP group to a single
379
- physical node. For example, if you have 8 GPUs per node, then this will only
380
- work with TP=[1,2,4,8]
381
388
  """
382
389
 
383
390
  assert HAVE_ZMQ, (
@@ -404,8 +411,31 @@ class DynamicInferenceEngine(AbstractEngine):
404
411
  # Todo [Siddharth]: can we move this code to another file?
405
412
  self.zmq_context = zmq.Context()
406
413
  self.zmq_sockets = [] # keep track of all sockets created by this engine
414
+
415
+ # We need to broadcast the hostname of the (TP=0, PP=0) rank
416
+ # to all other ranks in the same model parallel group.
417
+ tp_rank = parallel_state.get_tensor_model_parallel_rank()
418
+ pp_rank = parallel_state.get_pipeline_model_parallel_rank()
419
+
420
+ hostname_list = [None]
421
+ if tp_rank == 0 and pp_rank == 0:
422
+ hostname_list[0] = socket.gethostname()
423
+
424
+ # Find the global rank of the (TP=0, PP=0) rank in our MP group
425
+ src_global_rank = parallel_state.get_model_parallel_src_rank()
426
+
427
+ torch.distributed.broadcast_object_list(
428
+ hostname_list, src=src_global_rank, group=parallel_state.get_model_parallel_group()
429
+ )
430
+ bcast_hostname = hostname_list[0]
431
+
432
+ # We need unique ports for each MP group, so we compute an offset using the DP rank.
433
+ dp_rank = parallel_state.get_data_parallel_rank()
434
+ req_port = inference_mp_coordinator_port + (dp_rank * 2)
435
+ len_port = inference_mp_coordinator_port + (dp_rank * 2) + 1
436
+
407
437
  ip_address_of_dp_coordinator = os.getenv('MASTER_ADDR', '127.0.0.1')
408
- identity = f'tp-coord-{parallel_state.get_data_parallel_rank()}'
438
+ identity = f'mp-coord-{parallel_state.get_data_parallel_rank()}'
409
439
  if (
410
440
  parallel_state.get_tensor_model_parallel_rank() == 0
411
441
  and parallel_state.get_pipeline_model_parallel_rank() == 0
@@ -423,37 +453,33 @@ class DynamicInferenceEngine(AbstractEngine):
423
453
  self.socket_for_receiving_requests.send(b"")
424
454
 
425
455
  # 2. Create a publisher socket. This is used to publish or broadcast
426
- # requests within the tensor parallel group
427
- self.tensor_parallel_publisher_socket = self.zmq_context.socket(zmq.PUB)
428
- self.tensor_parallel_publisher_socket.bind(f"ipc:///tmp/{identity}-tp-bcast-socket-req")
456
+ # requests within the model parallel group
457
+ self.model_parallel_publisher_socket = self.zmq_context.socket(zmq.PUB)
458
+ self.model_parallel_publisher_socket.bind(f"tcp://*:{req_port}")
429
459
 
430
460
  # 3. Create another publisher socket to broadcast the number of messages to receive.
431
- self.tensor_parallel_num_msgs_publisher_socket = self.zmq_context.socket(zmq.PUB)
432
- self.tensor_parallel_num_msgs_publisher_socket.bind(
433
- f"ipc:///tmp/{identity}-tp-bcast-socket-len"
434
- )
461
+ self.model_parallel_num_msgs_publisher_socket = self.zmq_context.socket(zmq.PUB)
462
+ self.model_parallel_num_msgs_publisher_socket.bind(f"tcp://*:{len_port}")
435
463
  self.zmq_sockets += [
436
464
  self.socket_for_receiving_requests,
437
- self.tensor_parallel_num_msgs_publisher_socket,
438
- self.tensor_parallel_publisher_socket,
465
+ self.model_parallel_num_msgs_publisher_socket,
466
+ self.model_parallel_publisher_socket,
439
467
  ]
440
- # All TP ranks subscribe to the two publisher sockets
441
- self.tensor_parallel_subscriber_socket = self.zmq_context.socket(zmq.SUB)
442
- self.tensor_parallel_subscriber_socket.connect(f"ipc:///tmp/{identity}-tp-bcast-socket-req")
443
- self.tensor_parallel_subscriber_socket.setsockopt_string(zmq.SUBSCRIBE, "")
444
-
445
- self.tensor_parallel_num_msgs_subscriber_socket = self.zmq_context.socket(zmq.SUB)
446
- self.tensor_parallel_num_msgs_subscriber_socket.connect(
447
- f"ipc:///tmp/{identity}-tp-bcast-socket-len"
448
- )
449
- self.tensor_parallel_num_msgs_subscriber_socket.setsockopt_string(zmq.SUBSCRIBE, "")
468
+ # All MP ranks subscribe to the two publisher sockets
469
+ self.model_parallel_subscriber_socket = self.zmq_context.socket(zmq.SUB)
470
+ self.model_parallel_subscriber_socket.connect(f"tcp://{bcast_hostname}:{req_port}")
471
+ self.model_parallel_subscriber_socket.setsockopt_string(zmq.SUBSCRIBE, "")
472
+
473
+ self.model_parallel_num_msgs_subscriber_socket = self.zmq_context.socket(zmq.SUB)
474
+ self.model_parallel_num_msgs_subscriber_socket.connect(f"tcp://{bcast_hostname}:{len_port}")
475
+ self.model_parallel_num_msgs_subscriber_socket.setsockopt_string(zmq.SUBSCRIBE, "")
450
476
 
451
477
  self.zmq_sockets += [
452
- self.tensor_parallel_subscriber_socket,
453
- self.tensor_parallel_num_msgs_subscriber_socket,
478
+ self.model_parallel_subscriber_socket,
479
+ self.model_parallel_num_msgs_subscriber_socket,
454
480
  ]
455
481
 
456
- torch.distributed.barrier(parallel_state.get_tensor_model_parallel_group())
482
+ torch.distributed.barrier(parallel_state.get_model_parallel_group())
457
483
 
458
484
  if launch_inference_coordinator and torch.distributed.get_rank() == 0:
459
485
  await await_process_event(coordinator_ready_event, self.inference_coordinator_process)
@@ -549,13 +575,13 @@ class DynamicInferenceEngine(AbstractEngine):
549
575
 
550
576
  # Maintain references to requests before reset.
551
577
  waiting_request_ids = list(self.waiting_request_ids)
552
- active_request_ids = set(self.request_records.keys()) - set(waiting_request_ids)
578
+ active_request_ids = set(self.requests.keys()) - set(waiting_request_ids)
553
579
  self.resume_request_ids = [*active_request_ids, *waiting_request_ids]
554
580
  self.waiting_request_ids.clear()
555
581
 
556
582
  # Suspend requests objects.
557
583
  for request_id in active_request_ids:
558
- self.request_records[request_id].suspend(self.controller.tokenizer)
584
+ self.requests[request_id].record.suspend(self.controller.tokenizer)
559
585
 
560
586
  def resume(self):
561
587
  """Resume engine by reallocating context's GPU state."""
@@ -632,7 +658,7 @@ class DynamicInferenceEngine(AbstractEngine):
632
658
  Returns:
633
659
  (DynamicInferenceRequest) The most recent request in the record.
634
660
  """
635
- return self.request_records[request_id][-1]
661
+ return self.requests[request_id].record[-1]
636
662
 
637
663
  def _add_request(
638
664
  self, request: DynamicInferenceRequest
@@ -640,10 +666,13 @@ class DynamicInferenceEngine(AbstractEngine):
640
666
 
641
667
  request_id = request.request_id
642
668
 
643
- # Add request to self.request_records. If the engine has previously been
669
+ # Add request to self.requests. If the engine has previously been
644
670
  # suspended, then the request may already exist.
645
- if request_id not in self.request_records:
646
- self.request_records[request_id] = DynamicInferenceRequestRecord.from_request(request)
671
+ if request_id not in self.requests:
672
+ self.requests[request_id] = RequestEntry(
673
+ record=DynamicInferenceRequestRecord.from_request(request),
674
+ future=self._loop.create_future(),
675
+ )
647
676
 
648
677
  if request.status is None:
649
678
  request.status = Status.ACTIVE_AND_GENERATING_TOKENS
@@ -686,13 +715,7 @@ class DynamicInferenceEngine(AbstractEngine):
686
715
  if request.status != Status.FAILED:
687
716
  self.waiting_request_ids.append(request_id)
688
717
 
689
- # Create a new asyncio Future to notify the user when the request has
690
- # completed. If the engine has previously been suspended, then the future
691
- # may already exist.
692
- if request_id not in self.request_completion_futures:
693
- self.request_completion_futures[request_id] = self._loop.create_future()
694
-
695
- return self.request_completion_futures[request_id]
718
+ return self.requests[request_id].future
696
719
 
697
720
  def add_request(
698
721
  self,
@@ -813,8 +836,8 @@ class DynamicInferenceEngine(AbstractEngine):
813
836
  if request_id in finished_request_ids:
814
837
  request.generated_length = len(request.generated_tokens)
815
838
  request.status = Status.COMPLETED
816
- finished_request_record = self.request_records.pop(request_id)
817
- finished_request = finished_request_record[-1]
839
+ finished_entry = self.requests.pop(request_id)
840
+ finished_request = finished_entry.record[-1]
818
841
  if finished_request.prompt is None:
819
842
  finished_request.prompt = self.controller.tokenizer.detokenize(
820
843
  finished_request.prompt_tokens.tolist()
@@ -823,8 +846,8 @@ class DynamicInferenceEngine(AbstractEngine):
823
846
  finished_request.generated_text = self.controller.tokenizer.detokenize(
824
847
  finished_request.generated_tokens
825
848
  )
826
- finished_request_records.append(finished_request_record)
827
- self.request_completion_futures[request_id].set_result(finished_request_record)
849
+ finished_request_records.append(finished_entry.record)
850
+ finished_entry.future.set_result(finished_entry.record)
828
851
  else:
829
852
  active_request_ids.append(request_id)
830
853
  else:
@@ -1007,12 +1030,12 @@ class DynamicInferenceEngine(AbstractEngine):
1007
1030
 
1008
1031
  # Failed requests.
1009
1032
  for failed_request_id in self.failed_request_ids:
1010
- failed_request_record = self.request_records.pop(failed_request_id)
1011
- failed_request = failed_request_record[-1]
1033
+ failed_entry = self.requests.pop(failed_request_id)
1034
+ failed_request = failed_entry.record[-1]
1012
1035
  failed_request.status = Status.FAILED
1013
1036
  failed_request.add_event_fail()
1014
- finished_request_records.append(failed_request_record)
1015
- self.request_completion_futures[failed_request_id].set_result(failed_request_record)
1037
+ finished_request_records.append(failed_entry.record)
1038
+ failed_entry.future.set_result(failed_entry.record)
1016
1039
  self.failed_request_ids.clear()
1017
1040
 
1018
1041
  # Log KV cache utilization stats to W&B
@@ -1154,16 +1177,16 @@ class DynamicInferenceEngine(AbstractEngine):
1154
1177
  """Drains the ZMQ socket for a batch of requests and adds them to the engine.
1155
1178
 
1156
1179
  This method is a collective and synchronous operation that must be called
1157
- by all ranks in a Tensor Parallel (TP) group at the same time. It ensures
1180
+ by all ranks in a Model Parallel (MP) group at the same time. It ensures
1158
1181
  that all ranks process the exact same batch of incoming requests and
1159
1182
  control signals.
1160
1183
 
1161
1184
  The synchronization works as follows:
1162
- 1. The TP rank 0 drains all pending messages from its subscriber socket
1185
+ 1. The MP rank 0 drains all pending messages from its subscriber socket
1163
1186
  in a non-blocking manner.
1164
- 2. TP rank 0 then broadcasts the number of messages it received to all other
1165
- ranks in its TP group using a dedicated publisher socket.
1166
- 3. The other TP ranks wait to receive this count, and then receive exactly
1187
+ 2. MP rank 0 then broadcasts the number of messages it received to all other
1188
+ ranks in its MP group using a dedicated publisher socket.
1189
+ 3. The other MP ranks wait to receive this count, and then receive exactly
1167
1190
  that many messages from their subscriber sockets.
1168
1191
 
1169
1192
  Once all ranks have the same batch of messages, they are unpacked and
@@ -1173,7 +1196,7 @@ class DynamicInferenceEngine(AbstractEngine):
1173
1196
 
1174
1197
  Note:
1175
1198
  This function is synchronous and must be called collectively by all
1176
- ranks in a TP group. It should not be launched in a separate coroutine
1199
+ ranks in a MP group. It should not be launched in a separate coroutine
1177
1200
  to ensure all ranks execute it in lockstep before proceeding to the
1178
1201
  next engine step.
1179
1202
 
@@ -1181,10 +1204,11 @@ class DynamicInferenceEngine(AbstractEngine):
1181
1204
  int: The number of messages that were received and processed in this batch.
1182
1205
  """
1183
1206
 
1184
- rank = parallel_state.get_tensor_model_parallel_rank()
1207
+ tp_rank = parallel_state.get_tensor_model_parallel_rank()
1208
+ pp_rank = parallel_state.get_pipeline_model_parallel_rank()
1185
1209
  torch.cuda.nvtx.range_push("drain_zmq_socket")
1186
1210
  all_messages = []
1187
- if rank == 0:
1211
+ if tp_rank == 0 and pp_rank == 0:
1188
1212
  while True:
1189
1213
  try:
1190
1214
  # Receive messages in a non-blocking way.
@@ -1196,22 +1220,22 @@ class DynamicInferenceEngine(AbstractEngine):
1196
1220
  # First publish the number of messages to dequeue.
1197
1221
  # This is important because we want all tensor parallel ranks
1198
1222
  # to dequeue the same number of messages.
1199
- self.tensor_parallel_num_msgs_publisher_socket.send(
1223
+ self.model_parallel_num_msgs_publisher_socket.send(
1200
1224
  struct.pack('!i', messages_to_dequeue)
1201
1225
  )
1202
- # Now publish the actual messages to all tensor parallel ranks
1226
+ # Now publish the actual messages to all model parallel ranks
1203
1227
  for message in all_messages:
1204
- self.tensor_parallel_publisher_socket.send(message)
1228
+ self.model_parallel_publisher_socket.send(message)
1205
1229
  else:
1206
- # First, receive the number of messages to dequeue from tp-rank 0
1230
+ # First, receive the number of messages to dequeue from mp-rank 0
1207
1231
  messages_to_dequeue = struct.unpack(
1208
- '!i', self.tensor_parallel_num_msgs_subscriber_socket.recv()
1232
+ '!i', self.model_parallel_num_msgs_subscriber_socket.recv()
1209
1233
  )[0]
1210
1234
  # Now, dequeue the same number of messages from the subscriber socket.
1211
1235
  # Note that these receives are blocking, because the messages
1212
1236
  # are guaranteed to be available after the tp-rank 0 has sent them.
1213
1237
  for _ in range(messages_to_dequeue):
1214
- all_messages.append(self.tensor_parallel_subscriber_socket.recv())
1238
+ all_messages.append(self.model_parallel_subscriber_socket.recv())
1215
1239
 
1216
1240
  torch.cuda.nvtx.range_pop()
1217
1241
  for message in all_messages: