megatron-core 0.16.0rc0.dev101399__tar.gz → 0.16.0rc0.dev101484__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/PKG-INFO +1 -1
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_indices_converter.py +2 -1
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_mla_yarn_rope_apply.py +3 -1
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_pad_routing_map.py +2 -1
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/dynamic_block_allocator.py +0 -5
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/dynamic_context.py +8 -4
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/data_parallel_inference_coordinator.py +2 -48
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/engines/dynamic_engine.py +10 -38
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/headers.py +1 -3
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/inference_client.py +19 -67
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/unified_memory.py +15 -51
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/embeddings/rope_utils.py +25 -26
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/embeddings/yarn_rotary_pos_embedding.py +4 -7
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer/distrib_optimizer.py +1 -2
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer/optimizer.py +0 -1
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/package_info.py +1 -1
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/timers.py +6 -15
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/dot_product_attention.py +2 -8
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/fsdp_dtensor_checkpoint.py +23 -44
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/transformer_config.py +2 -2
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/utils.py +3 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/utils.py +2 -9
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron_core.egg-info/PKG-INFO +1 -1
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/MANIFEST.in +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/README.md +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/README.md +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/activations.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/config_logger.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/bert_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/blended_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/blended_megatron_dataset_builder.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/blended_megatron_dataset_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/gpt_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/helpers.cpp +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/helpers.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/indexed_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/masked_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/megatron_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/megatron_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/multimodal_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/object_storage_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/config/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/config/bert_embedders.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/config/config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/config/gpt_chunk_datasets.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/config/tokenizers.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/db/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/db/build.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/db/dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/db/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/external_libs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/build.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/factory.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/index.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/indexes/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/indexes/faiss_base.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/indexes/faiss_par_add.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/index/validate.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/query/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/query/gpt_chunk_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/query/multi_split_gpt_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/query/query.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/query/retro_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/query/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/retro/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/t5_dataset.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/datasets/utils_s3.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/core.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/dict_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/exchange_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/mapping.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/optimizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/serialization.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/state_dict_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/async_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/base.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/cached_metadata_filesystem_reader.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/checkpointable.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/common.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/filesystem_async.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/fully_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/resharding.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/state_dict_saver.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/tensorstore.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/torch.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/two_stage.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/strategies/zarr.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/tensor_aware_state_dict.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/dist_checkpointing/validation.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/data_parallel_base.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/distributed_data_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/distributed_data_parallel_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/finalize_model_grads.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/mcore_fsdp_adapter.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/megatron_fsdp/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/megatron_fsdp/distributed_data_parallel_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/megatron_fsdp/fully_shard.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/megatron_fsdp/megatron_fsdp.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/megatron_fsdp/package_info.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/megatron_fsdp/param_and_grad_buffer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/megatron_fsdp/uneven_dtensor.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/fsdp/src/megatron_fsdp/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/param_and_grad_buffer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/reduce_scatter_with_fp32_accumulation.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/torch_fully_sharded_data_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/distributed/torch_fully_sharded_data_parallel_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/energy_monitor.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/enums.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/data_type.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/export_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/model_type.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/engine_builder/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/engine_builder/trtllm_engine_builder.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/model_to_trllm_mapping/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/model_to_trllm_mapping/default_conversion_dict.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/trt_model_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/trt_model_type.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/trtllm_helper.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/trtllm_layers.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/trtllm_weights_converter/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/trtllm_weights_converter/distributed_trtllm_model_weights_converter.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/trtllm_weights_converter/single_device_trtllm_model_weights_converter.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/export/trtllm/trtllm_weights_converter/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/extensions/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/extensions/kitchen.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/extensions/transformer_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/extensions/transformer_engine_spec_provider.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fp4_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fp8_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/full_cuda_graph.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_bias_dropout.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_bias_geglu.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_bias_gelu.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_bias_swiglu.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_cross_entropy.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_layer_norm.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_softmax.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/fusions/fused_weighted_squared_relu.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/hyper_comm_grid.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/async_stream.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/common_inference_params.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/communication_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/attention_context/mamba_metadata.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/attention_context/metadata_base.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/attention_context/mha_metadata.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/base_context.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/fused_kv_append_kernel.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/contexts/static_context.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/engines/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/engines/abstract_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/engines/mcore_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/engines/static_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/inference_request.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/model_inference_wrappers/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/model_inference_wrappers/abstract_model_inference_wrapper.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/model_inference_wrappers/gpt/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/model_inference_wrappers/gpt/gpt_inference_wrapper.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/model_inference_wrappers/inference_wrapper_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/model_inference_wrappers/multimodal/vlm_inference_wrapper.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/model_inference_wrappers/t5/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/model_inference_wrappers/t5/t5_inference_wrapper.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/sampling_params.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/scheduler.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_controllers/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_controllers/encoder_decoder_text_generation_controller.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_controllers/simple_text_generation_controller.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_controllers/text_generation_controller.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_controllers/vlm_text_generation_controller.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_server/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_server/endpoints/common.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_server/endpoints/completions.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_server/run_mcore_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_server/text_generation_server.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/text_generation_server/tokenization.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/inference_params.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/jit.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/model_parallel_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/T5/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/T5/t5_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/T5/t5_spec.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/backends.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/bert/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/bert/bert_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/bert/bert_lm_head.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/bert/bert_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/bert/pooler.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/embeddings/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/embeddings/language_model_embedding.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/embeddings/relative_pos_embedding.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/embeddings/rotary_pos_embedding.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/language_module/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/language_module/language_module.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/model_chunk_schedule_plan.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/vision_module/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/common/vision_module/vision_module.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/gpt/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/gpt/fine_grained_callables.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/gpt/gpt_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/gpt/gpt_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/gpt/heterogeneous/heterogeneous_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/gpt/moe_module_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/huggingface/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/huggingface/clip_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/huggingface/module.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/huggingface/qwen_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mamba/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mamba/mamba_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mamba/mamba_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mimo/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mimo/config/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mimo/config/base_configs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mimo/model/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mimo/model/base.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mimo/submodules/audio.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mimo/submodules/base.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/mimo/submodules/vision.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/multimodal/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/multimodal/context_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/multimodal/llava_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/multimodal/llava_spec.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/base_attention.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/decoder_attention.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/decoder_spec.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/encoder_attention.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/encoder_spec.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/retro/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/vision/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/vision/clip_vit_model.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/vision/multimodal_projector.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/vision/radio.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/models/vision/vit_layer_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/msc_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/nccl_allocator.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/num_microbatches_calculator.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer/clip_grads.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer/cpu_offloading/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer/cpu_offloading/hybrid_optimizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer/grad_scaler.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer/optimizer_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/optimizer_param_scheduler.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/packed_seq_params.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/parallel_state.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/pipeline_parallel/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/pipeline_parallel/bridge_communicator.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/pipeline_parallel/combined_1f1b.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/pipeline_parallel/p2p_communication.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/pipeline_parallel/schedules.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/pipeline_parallel/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/post_training/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/post_training/modelopt/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/post_training/modelopt/gpt/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/post_training/modelopt/gpt/model_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/post_training/modelopt/gpt/state_dict_hooks.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/post_training/modelopt/layers.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/post_training/modelopt/mamba/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/post_training/modelopt/mamba/model_specs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/process_groups_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/quantization/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/quantization/quant_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/quantization/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/requirements.txt +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/rerun_state_machine.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/safe_globals.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/ssm/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/ssm/mamba_block.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/ssm/mamba_context_parallel.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/ssm/mamba_hybrid_layer_allocation.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/ssm/mamba_layer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/ssm/mamba_mixer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/ssm/mlp_layer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/ssm/triton_cache_manager.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tensor_parallel/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tensor_parallel/cross_entropy.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tensor_parallel/data.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tensor_parallel/inference_layers.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tensor_parallel/layers.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tensor_parallel/mappings.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tensor_parallel/random.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tensor_parallel/utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/base_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/megatron_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/abstract_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/bytelevel_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/chat_template.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/huggingface_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/megatron_hf_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/null_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/sentencepiece_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/libraries/tiktoken_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/models/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/models/bert_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/models/default_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/models/gpt_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/models/mamba_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/models/retro_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/models/t5_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/text_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/tokenizers/text/utils/build_tokenizer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/attention.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/cuda_graphs.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/custom_layers/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/custom_layers/transformer_engine.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/enums.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/heterogeneous/heterogeneous_config.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/heterogeneous/linear_replacements.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/identity_op.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/mlp.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/module.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/__init__.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/experts.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/fused_a2a.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/grouped_gemm_util.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/moe_layer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/moe_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/router.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/shared_experts.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/token_dispatcher.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/moe/upcycling_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/multi_latent_attention.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/multi_token_prediction.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/pipeline_parallel_layer_layout.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/spec_utils.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/torch_layer_norm.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/torch_norm.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/transformer_block.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron/core/transformer/transformer_layer.py +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron_core.egg-info/SOURCES.txt +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron_core.egg-info/dependency_links.txt +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron_core.egg-info/requires.txt +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/megatron_core.egg-info/top_level.txt +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/pyproject.toml +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/setup.cfg +0 -0
- {megatron_core-0.16.0rc0.dev101399 → megatron_core-0.16.0rc0.dev101484}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: megatron-core
|
|
3
|
-
Version: 0.16.0rc0.
|
|
3
|
+
Version: 0.16.0rc0.dev101484
|
|
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>
|
|
@@ -6,7 +6,7 @@ from unittest.mock import MagicMock
|
|
|
6
6
|
import torch
|
|
7
7
|
from packaging import version
|
|
8
8
|
|
|
9
|
-
from megatron.core.utils import null_decorator
|
|
9
|
+
from megatron.core.utils import experimental_fn, null_decorator
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
import triton
|
|
@@ -279,6 +279,7 @@ class IndicesToMultihot(torch.autograd.Function):
|
|
|
279
279
|
return None, grad_probs_indices, None, None
|
|
280
280
|
|
|
281
281
|
|
|
282
|
+
@experimental_fn(introduced_with_version='0.11.0rc0')
|
|
282
283
|
def fused_indices_to_multihot(indices, probs_indices, num_of_local_experts):
|
|
283
284
|
"""Convert moe topk indices to multihot representation.
|
|
284
285
|
|
|
@@ -6,7 +6,7 @@ from unittest.mock import MagicMock
|
|
|
6
6
|
import torch
|
|
7
7
|
from packaging import version
|
|
8
8
|
|
|
9
|
-
from megatron.core.utils import null_decorator
|
|
9
|
+
from megatron.core.utils import experimental_fn, null_decorator
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
import triton
|
|
@@ -324,6 +324,7 @@ class ApplyMLARotaryEmbQ(torch.autograd.Function):
|
|
|
324
324
|
return grad, None, None, None, None, None, None, None, None
|
|
325
325
|
|
|
326
326
|
|
|
327
|
+
@experimental_fn(introduced_with_version="0.13.0")
|
|
327
328
|
def fused_apply_mla_rope_for_q(
|
|
328
329
|
t: torch.Tensor,
|
|
329
330
|
cos: torch.Tensor,
|
|
@@ -732,6 +733,7 @@ class ApplyMLARotaryEmbKV(torch.autograd.Function):
|
|
|
732
733
|
return d_kv, d_emb, None, None, None, None, None, None, None, None, None
|
|
733
734
|
|
|
734
735
|
|
|
736
|
+
@experimental_fn(introduced_with_version="0.13.0")
|
|
735
737
|
def fused_apply_mla_rope_for_kv(
|
|
736
738
|
kv: torch.Tensor,
|
|
737
739
|
k_pos_emb: torch.Tensor,
|
|
@@ -6,7 +6,7 @@ import torch
|
|
|
6
6
|
from packaging import version
|
|
7
7
|
|
|
8
8
|
from megatron.core.jit import jit_fuser
|
|
9
|
-
from megatron.core.utils import null_decorator
|
|
9
|
+
from megatron.core.utils import experimental_fn, null_decorator
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
import triton
|
|
@@ -70,6 +70,7 @@ def _pad_routing_map_kernel(
|
|
|
70
70
|
tl.store(output_row_ptr + token_indices, output_row, mask=token_mask)
|
|
71
71
|
|
|
72
72
|
|
|
73
|
+
@experimental_fn(introduced_with_version="0.13.0")
|
|
73
74
|
@jit_fuser
|
|
74
75
|
def fused_pad_routing_map(routing_map: torch.Tensor, pad_multiple: int) -> torch.Tensor:
|
|
75
76
|
"""Fused version of pad_routing_map.
|
|
@@ -115,9 +115,4 @@ class BlockAllocator:
|
|
|
115
115
|
This resets the available block count to the entire memory pool
|
|
116
116
|
(except for the dummy block).
|
|
117
117
|
"""
|
|
118
|
-
# Reset block bag to so we start consuming
|
|
119
|
-
# from the beginning of the pool for UVM performance
|
|
120
|
-
self.block_bag = torch.arange(
|
|
121
|
-
self.total_count, dtype=torch.int32, device=torch.cuda.current_device()
|
|
122
|
-
)
|
|
123
118
|
self.total_avail = self.total_count - 1
|
|
@@ -578,18 +578,19 @@ class DynamicInferenceContext(BaseInferenceContext):
|
|
|
578
578
|
"""Allocate the memory buffer. This function is called below within
|
|
579
579
|
`with ctx_manager:`."""
|
|
580
580
|
if self.cache_mla_latent:
|
|
581
|
-
self.memory_buffer = torch.
|
|
581
|
+
self.memory_buffer = torch.full(
|
|
582
582
|
(
|
|
583
583
|
self.num_attention_layers,
|
|
584
584
|
self.block_allocator.total_count,
|
|
585
585
|
self.block_size_tokens,
|
|
586
586
|
self.kv_reduced_dim,
|
|
587
587
|
),
|
|
588
|
+
-1,
|
|
588
589
|
dtype=self.params_dtype,
|
|
589
590
|
device=torch.cuda.current_device(),
|
|
590
591
|
)
|
|
591
592
|
else:
|
|
592
|
-
self.memory_buffer = torch.
|
|
593
|
+
self.memory_buffer = torch.full(
|
|
593
594
|
(
|
|
594
595
|
2, # key and value
|
|
595
596
|
self.num_attention_layers,
|
|
@@ -598,6 +599,7 @@ class DynamicInferenceContext(BaseInferenceContext):
|
|
|
598
599
|
self.num_attention_heads_per_partition,
|
|
599
600
|
self.hidden_size_per_attention_head,
|
|
600
601
|
),
|
|
602
|
+
-1,
|
|
601
603
|
dtype=self.params_dtype,
|
|
602
604
|
device=torch.cuda.current_device(),
|
|
603
605
|
)
|
|
@@ -608,12 +610,12 @@ class DynamicInferenceContext(BaseInferenceContext):
|
|
|
608
610
|
`with ctx_manager:`."""
|
|
609
611
|
if self.is_hybrid_model:
|
|
610
612
|
self.mamba_metadata = MambaMetadata(max_requests=self.max_total_requests)
|
|
611
|
-
self.mamba_conv_states = torch.
|
|
613
|
+
self.mamba_conv_states = torch.zeros(
|
|
612
614
|
(self.num_mamba_layers, self.max_total_requests) + self.mamba_conv_states_shape,
|
|
613
615
|
dtype=self.params_dtype,
|
|
614
616
|
device=torch.cuda.current_device(),
|
|
615
617
|
)
|
|
616
|
-
self.mamba_ssm_states = torch.
|
|
618
|
+
self.mamba_ssm_states = torch.zeros(
|
|
617
619
|
(self.num_mamba_layers, self.max_total_requests) + self.mamba_ssm_states_shape,
|
|
618
620
|
dtype=self.params_dtype,
|
|
619
621
|
device=torch.cuda.current_device(),
|
|
@@ -998,6 +1000,8 @@ class DynamicInferenceContext(BaseInferenceContext):
|
|
|
998
1000
|
def reset_mamba_state(self) -> None:
|
|
999
1001
|
"""Reset state used within Mamba layers."""
|
|
1000
1002
|
if self.is_hybrid_model:
|
|
1003
|
+
self.mamba_conv_states.fill_(0)
|
|
1004
|
+
self.mamba_ssm_states.fill_(0)
|
|
1001
1005
|
self.mamba_metadata.reset()
|
|
1002
1006
|
|
|
1003
1007
|
def using_cuda_graph_this_step(self) -> bool:
|
|
@@ -109,8 +109,6 @@ class DataParallelInferenceCoordinator:
|
|
|
109
109
|
self.identities_of_data_parallel_ranks.append(identity)
|
|
110
110
|
logging.info("Inference Coordinator: Connected with data parallel ranks...")
|
|
111
111
|
self.data_parallel_rank_iterator = cycle(self.identities_of_data_parallel_ranks)
|
|
112
|
-
self.data_parallel_pause_acks = set()
|
|
113
|
-
self.data_parallel_stop_acks = set()
|
|
114
112
|
|
|
115
113
|
self.request_id_to_client_id = {}
|
|
116
114
|
self.request_id_to_client_request_id = {}
|
|
@@ -153,7 +151,7 @@ class DataParallelInferenceCoordinator:
|
|
|
153
151
|
# print(f"New client connected: {sender_identity}")
|
|
154
152
|
known_clients.add(sender_identity)
|
|
155
153
|
self.router_socket.send_multipart(
|
|
156
|
-
[sender_identity, msgpack.packb([Headers.
|
|
154
|
+
[sender_identity, msgpack.packb([Headers.ACK.value], use_bin_type=True)]
|
|
157
155
|
)
|
|
158
156
|
|
|
159
157
|
elif header == Headers.SUBMIT_REQUEST:
|
|
@@ -210,50 +208,6 @@ class DataParallelInferenceCoordinator:
|
|
|
210
208
|
self.router_socket.send_multipart(
|
|
211
209
|
[data_parallel_rank_id, msgpack.packb([header.value], use_bin_type=True)]
|
|
212
210
|
)
|
|
213
|
-
if header == Headers.UNPAUSE:
|
|
214
|
-
self.data_parallel_pause_acks = set()
|
|
215
|
-
elif header == Headers.PAUSE_ACK:
|
|
216
|
-
# control signal ack from the engine
|
|
217
|
-
assert sender_identity in self.identities_of_data_parallel_ranks
|
|
218
|
-
assert sender_identity not in self.data_parallel_pause_acks
|
|
219
|
-
self.data_parallel_pause_acks.add(sender_identity)
|
|
220
|
-
# route to all clients only once we have gotten an ack from all data parallel ranks
|
|
221
|
-
if len(self.data_parallel_pause_acks) == self.data_parallel_size:
|
|
222
|
-
for client_id in known_clients:
|
|
223
|
-
self.router_socket.send_multipart(
|
|
224
|
-
[
|
|
225
|
-
client_id,
|
|
226
|
-
msgpack.packb([header.value, sender_identity], use_bin_type=True),
|
|
227
|
-
]
|
|
228
|
-
)
|
|
229
|
-
for data_parallel_rank_id in self.identities_of_data_parallel_ranks:
|
|
230
|
-
self.router_socket.send_multipart(
|
|
231
|
-
[
|
|
232
|
-
data_parallel_rank_id,
|
|
233
|
-
msgpack.packb([Headers.PAUSE_ACK.value], use_bin_type=True),
|
|
234
|
-
]
|
|
235
|
-
)
|
|
236
|
-
elif header == Headers.STOP_ACK:
|
|
237
|
-
# control signal ack from the engine
|
|
238
|
-
assert sender_identity in self.identities_of_data_parallel_ranks
|
|
239
|
-
assert sender_identity not in self.data_parallel_stop_acks
|
|
240
|
-
self.data_parallel_stop_acks.add(sender_identity)
|
|
241
|
-
# route to all clients only once we have gotten an ack from all data parallel ranks
|
|
242
|
-
if len(self.data_parallel_stop_acks) == self.data_parallel_size:
|
|
243
|
-
for client_id in known_clients:
|
|
244
|
-
self.router_socket.send_multipart(
|
|
245
|
-
[
|
|
246
|
-
client_id,
|
|
247
|
-
msgpack.packb([header.value, sender_identity], use_bin_type=True),
|
|
248
|
-
]
|
|
249
|
-
)
|
|
250
|
-
for data_parallel_rank_id in self.identities_of_data_parallel_ranks:
|
|
251
|
-
self.router_socket.send_multipart(
|
|
252
|
-
[
|
|
253
|
-
data_parallel_rank_id,
|
|
254
|
-
msgpack.packb([Headers.STOP_ACK.value], use_bin_type=True),
|
|
255
|
-
]
|
|
256
|
-
)
|
|
257
211
|
elif header == Headers.ENGINE_REPLY:
|
|
258
212
|
# This is the output of a single engine step on some data parallel rank.
|
|
259
213
|
assert sender_identity in self.identities_of_data_parallel_ranks
|
|
@@ -270,7 +224,7 @@ class DataParallelInferenceCoordinator:
|
|
|
270
224
|
[
|
|
271
225
|
client_identity,
|
|
272
226
|
msgpack.packb(
|
|
273
|
-
[
|
|
227
|
+
[client_request_identity, finished_request_record],
|
|
274
228
|
use_bin_type=True,
|
|
275
229
|
),
|
|
276
230
|
]
|
|
@@ -168,6 +168,7 @@ class DynamicInferenceEngine(AbstractEngine):
|
|
|
168
168
|
self.enable_chunked_prefill = enable_chunked_prefill
|
|
169
169
|
self.inference_logging_step_interval = inference_logging_step_interval
|
|
170
170
|
self.unified_memory_level = context.unified_memory_level
|
|
171
|
+
self.capture_stats = None # pass CI
|
|
171
172
|
|
|
172
173
|
if enable_cuda_graph is not None:
|
|
173
174
|
self.cuda_graph_impl = "local" if enable_cuda_graph else "none"
|
|
@@ -228,11 +229,8 @@ class DynamicInferenceEngine(AbstractEngine):
|
|
|
228
229
|
# Runtime state.
|
|
229
230
|
self._loop = get_asyncio_loop(getattr(self, "_loop", None))
|
|
230
231
|
self._cond = asyncio.Condition()
|
|
231
|
-
self.
|
|
232
|
-
self.
|
|
233
|
-
self.stopped = asyncio.Event()
|
|
234
|
-
self.received_pause: bool = False
|
|
235
|
-
self.received_stop: bool = False
|
|
232
|
+
self.paused = False
|
|
233
|
+
self.stopped = False
|
|
236
234
|
self.suspend_signal = False
|
|
237
235
|
self.is_suspended = False
|
|
238
236
|
self.resume_request_ids = None
|
|
@@ -1316,41 +1314,14 @@ class DynamicInferenceEngine(AbstractEngine):
|
|
|
1316
1314
|
for message in all_messages:
|
|
1317
1315
|
data = msgpack.unpackb(message, raw=False)
|
|
1318
1316
|
header = Headers(data[0])
|
|
1319
|
-
|
|
1320
|
-
if self.received_stop:
|
|
1321
|
-
assert (
|
|
1322
|
-
header == Headers.STOP_ACK
|
|
1323
|
-
), "Engine is shutting down. No other messages allowed except STOP_ACK."
|
|
1324
|
-
|
|
1325
1317
|
if header == Headers.SUBMIT_REQUEST:
|
|
1326
1318
|
request_id, prompt, sampling_params = data[1:]
|
|
1327
1319
|
sampling_params = SamplingParams.deserialize(sampling_params)
|
|
1328
1320
|
self.add_request(request_id, prompt, sampling_params)
|
|
1329
1321
|
elif header == Headers.PAUSE:
|
|
1330
|
-
|
|
1331
|
-
self.received_pause = True
|
|
1332
|
-
self.running.clear()
|
|
1333
|
-
# Send PAUSE_ACK back to coordinator.
|
|
1334
|
-
if self.is_mp_coordinator:
|
|
1335
|
-
payload = msgpack.packb([Headers.PAUSE_ACK.value], use_bin_type=True)
|
|
1336
|
-
self.socket_for_receiving_requests.send(payload)
|
|
1337
|
-
elif header == Headers.STOP:
|
|
1338
|
-
# Stop thyself.
|
|
1339
|
-
self.received_stop = True
|
|
1340
|
-
self.running.clear()
|
|
1341
|
-
# Send STOP_ACK back to coordinator.
|
|
1342
|
-
if self.is_mp_coordinator:
|
|
1343
|
-
payload = msgpack.packb([Headers.STOP_ACK.value], use_bin_type=True)
|
|
1344
|
-
self.socket_for_receiving_requests.send(payload)
|
|
1345
|
-
elif header == Headers.PAUSE_ACK:
|
|
1346
|
-
self.paused.set()
|
|
1347
|
-
self.received_pause = False
|
|
1348
|
-
elif header == Headers.STOP_ACK:
|
|
1349
|
-
self.stopped.set()
|
|
1350
|
-
self.stop()
|
|
1322
|
+
self.paused = True
|
|
1351
1323
|
elif header == Headers.UNPAUSE:
|
|
1352
|
-
self.paused
|
|
1353
|
-
self.running.set()
|
|
1324
|
+
self.paused = False
|
|
1354
1325
|
elif header == Headers.SUSPEND:
|
|
1355
1326
|
self.suspend_signal = True
|
|
1356
1327
|
elif header == Headers.RESUME:
|
|
@@ -1411,10 +1382,11 @@ class DynamicInferenceEngine(AbstractEngine):
|
|
|
1411
1382
|
try:
|
|
1412
1383
|
while True:
|
|
1413
1384
|
self.schedule_requests()
|
|
1414
|
-
if self.stopped
|
|
1415
|
-
|
|
1385
|
+
if self.stopped:
|
|
1386
|
+
self.stop()
|
|
1387
|
+
return
|
|
1416
1388
|
|
|
1417
|
-
# for the cases below (
|
|
1389
|
+
# for the cases below (engine is paused or no active requests),
|
|
1418
1390
|
# do not use asyncio.sleep(0)
|
|
1419
1391
|
# as tp-rank=0 will flood the num_messages publisher
|
|
1420
1392
|
# with "0" repeatedly. This causes some packets to drop.
|
|
@@ -1426,7 +1398,7 @@ class DynamicInferenceEngine(AbstractEngine):
|
|
|
1426
1398
|
|
|
1427
1399
|
# todo [Siddharth]: Can this hardcoded sleep be avoided
|
|
1428
1400
|
# with asyncio zmq sockets?
|
|
1429
|
-
if self.paused
|
|
1401
|
+
if self.paused:
|
|
1430
1402
|
await asyncio.sleep(0.02)
|
|
1431
1403
|
continue
|
|
1432
1404
|
|
|
@@ -9,16 +9,14 @@ class Headers(Enum):
|
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
CONNECT = auto()
|
|
12
|
-
|
|
12
|
+
ACK = auto()
|
|
13
13
|
SUBMIT_REQUEST = auto()
|
|
14
14
|
ENGINE_REPLY = auto()
|
|
15
15
|
PAUSE = auto()
|
|
16
|
-
PAUSE_ACK = auto()
|
|
17
16
|
UNPAUSE = auto()
|
|
18
17
|
SUSPEND = auto()
|
|
19
18
|
RESUME = auto()
|
|
20
19
|
STOP = auto()
|
|
21
|
-
STOP_ACK = auto()
|
|
22
20
|
|
|
23
21
|
|
|
24
22
|
class UnknownHeaderError(Exception):
|
|
@@ -4,7 +4,7 @@ import asyncio
|
|
|
4
4
|
import logging
|
|
5
5
|
import os
|
|
6
6
|
import time
|
|
7
|
-
from typing import
|
|
7
|
+
from typing import List, Union
|
|
8
8
|
|
|
9
9
|
from megatron.core.inference.inference_request import DynamicInferenceRequestRecord
|
|
10
10
|
from megatron.core.inference.sampling_params import SamplingParams
|
|
@@ -73,11 +73,6 @@ class InferenceClient:
|
|
|
73
73
|
inference_coordinator_address = os.getenv('MASTER_ADDR', '127.0.0.1')
|
|
74
74
|
socket.connect(f"tcp://{inference_coordinator_address}:{inference_coordinator_port}")
|
|
75
75
|
|
|
76
|
-
self._loop = None
|
|
77
|
-
self.running = asyncio.Event()
|
|
78
|
-
self.paused = asyncio.Event()
|
|
79
|
-
self.stopped = asyncio.Event()
|
|
80
|
-
|
|
81
76
|
self.socket = socket
|
|
82
77
|
self.completion_futures = {}
|
|
83
78
|
self.request_submission_times = {}
|
|
@@ -103,49 +98,35 @@ class InferenceClient:
|
|
|
103
98
|
asyncio.Future: A future that will be resolved with a
|
|
104
99
|
`DynamicInferenceRequestRecord` object containing the completed result.
|
|
105
100
|
"""
|
|
106
|
-
if not self.running.is_set():
|
|
107
|
-
raise RuntimeError("InferenceClient is not currently running.")
|
|
108
101
|
request_id = self.next_request_id
|
|
109
102
|
self.next_request_id += 1
|
|
110
103
|
payload = [Headers.SUBMIT_REQUEST.value, request_id, prompt, sampling_params.serialize()]
|
|
111
104
|
payload_serialized = msgpack.packb(payload, use_bin_type=True)
|
|
112
105
|
self.socket.send(payload_serialized)
|
|
113
106
|
assert request_id not in self.completion_futures
|
|
114
|
-
self.completion_futures[request_id] =
|
|
107
|
+
self.completion_futures[request_id] = get_asyncio_loop().create_future()
|
|
115
108
|
self.request_submission_times[request_id] = time.perf_counter()
|
|
116
109
|
return self.completion_futures[request_id]
|
|
117
110
|
|
|
118
111
|
@trace_async_exceptions
|
|
119
|
-
async def
|
|
112
|
+
async def _listen_for_completed_requests(self):
|
|
120
113
|
"""
|
|
121
114
|
Listens for completed inference requests from the coordinator.
|
|
122
115
|
|
|
123
116
|
This coroutine runs in an infinite loop, continuously polling the socket
|
|
124
|
-
for
|
|
125
|
-
When a request reply is received, it unpacks the message, finds the
|
|
117
|
+
for replies. When a reply is received, it unpacks the message, finds the
|
|
126
118
|
corresponding Future using the request ID, and sets the result.
|
|
127
|
-
Other control packets are handled appropriately.
|
|
128
119
|
|
|
129
120
|
This method is started as a background task by the `start()` method.
|
|
130
121
|
"""
|
|
131
122
|
while True:
|
|
132
123
|
try:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
)
|
|
140
|
-
completion_future = self.completion_futures.pop(request_id)
|
|
141
|
-
if completion_future.done():
|
|
142
|
-
logging.warning(f"Client: The future for {request_id} has been cancelled!")
|
|
143
|
-
continue
|
|
144
|
-
completion_future.set_result(DynamicInferenceRequestRecord.deserialize(reply))
|
|
145
|
-
elif header == Headers.PAUSE_ACK:
|
|
146
|
-
self.paused.set()
|
|
147
|
-
elif header == Headers.STOP_ACK:
|
|
148
|
-
self.stopped.set()
|
|
124
|
+
request_id, reply = msgpack.unpackb(self.socket.recv(flags=zmq.NOBLOCK), raw=False)
|
|
125
|
+
reply['latency'] = time.perf_counter() - self.request_submission_times.pop(
|
|
126
|
+
request_id
|
|
127
|
+
)
|
|
128
|
+
completion_future = self.completion_futures.pop(request_id)
|
|
129
|
+
completion_future.set_result(DynamicInferenceRequestRecord.deserialize(reply))
|
|
149
130
|
except zmq.Again:
|
|
150
131
|
await asyncio.sleep(0.005)
|
|
151
132
|
continue
|
|
@@ -156,15 +137,15 @@ class InferenceClient:
|
|
|
156
137
|
"""
|
|
157
138
|
Performs the initial handshake with the inference coordinator.
|
|
158
139
|
|
|
159
|
-
Sends a CONNECT signal and waits for
|
|
140
|
+
Sends a CONNECT signal and waits for an ACK reply to ensure the
|
|
160
141
|
connection is established and acknowledged by the coordinator.
|
|
161
142
|
"""
|
|
162
143
|
payload = [Headers.CONNECT.value]
|
|
163
144
|
self.socket.send(msgpack.packb(payload, use_bin_type=True))
|
|
164
145
|
reply = msgpack.unpackb(self.socket.recv(), raw=False)[0]
|
|
165
|
-
assert Headers(reply) == Headers.
|
|
146
|
+
assert Headers(reply) == Headers.ACK
|
|
166
147
|
|
|
167
|
-
async def start(self
|
|
148
|
+
async def start(self):
|
|
168
149
|
"""
|
|
169
150
|
Connects to the coordinator and starts the background listener task.
|
|
170
151
|
|
|
@@ -173,12 +154,8 @@ class InferenceClient:
|
|
|
173
154
|
coroutine.
|
|
174
155
|
"""
|
|
175
156
|
logging.info("Client: Connecting to InferenceCoordinator...")
|
|
176
|
-
self._loop = get_asyncio_loop(loop)
|
|
177
|
-
self.running.set()
|
|
178
|
-
self.paused.clear()
|
|
179
|
-
self.stopped.clear()
|
|
180
157
|
self._connect_with_inference_coordinator()
|
|
181
|
-
self.listener_task =
|
|
158
|
+
self.listener_task = asyncio.create_task(self._listen_for_completed_requests())
|
|
182
159
|
|
|
183
160
|
def _send_signal_to_engines(self, signal):
|
|
184
161
|
"""
|
|
@@ -191,25 +168,12 @@ class InferenceClient:
|
|
|
191
168
|
payload_serialized = msgpack.packb(payload, use_bin_type=True)
|
|
192
169
|
self.socket.send(payload_serialized)
|
|
193
170
|
|
|
194
|
-
def pause_engines(self)
|
|
195
|
-
"""Sends a signal to pause all inference engines.
|
|
196
|
-
|
|
197
|
-
The signal first propagates thru the coordinator to all engines.
|
|
198
|
-
All engines acknowledge this signal and clear their `running` flags.
|
|
199
|
-
The coordinator awaits all acknowledgements before forwarding the ACK
|
|
200
|
-
back to the client, as well as to the engines.
|
|
201
|
-
The engines set their `paused` flags upon seeing the ACK.
|
|
202
|
-
|
|
203
|
-
Returns:
|
|
204
|
-
Awaitable: An awaitable that resolves when all engines have paused.
|
|
205
|
-
"""
|
|
171
|
+
def pause_engines(self):
|
|
172
|
+
"""Sends a signal to pause all inference engines."""
|
|
206
173
|
self._send_signal_to_engines(Headers.PAUSE)
|
|
207
|
-
return self.paused.wait()
|
|
208
174
|
|
|
209
|
-
def unpause_engines(self)
|
|
175
|
+
def unpause_engines(self):
|
|
210
176
|
"""Sends a signal to unpause all inference engines."""
|
|
211
|
-
self.paused.clear()
|
|
212
|
-
self.running.set()
|
|
213
177
|
self._send_signal_to_engines(Headers.UNPAUSE)
|
|
214
178
|
|
|
215
179
|
def suspend_engines(self):
|
|
@@ -222,21 +186,9 @@ class InferenceClient:
|
|
|
222
186
|
self._send_signal_to_engines(Headers.RESUME)
|
|
223
187
|
self._send_signal_to_engines(Headers.UNPAUSE)
|
|
224
188
|
|
|
225
|
-
def stop_engines(self)
|
|
226
|
-
"""Sends a signal to gracefully stop all inference engines.
|
|
227
|
-
|
|
228
|
-
The signal first propagates thru the coordinator to all engines.
|
|
229
|
-
All engines acknowledge this signal and clear their `running` flags.
|
|
230
|
-
The coordinator awaits all acknowledgements before forwarding the ACK
|
|
231
|
-
back to the client, as well as to the engines.
|
|
232
|
-
The engines set their `stopped` flags upon seeing the ACK.
|
|
233
|
-
|
|
234
|
-
Returns:
|
|
235
|
-
Awaitable: An awaitable that resolves when all engines have stopped.
|
|
236
|
-
"""
|
|
189
|
+
def stop_engines(self):
|
|
190
|
+
"""Sends a signal to gracefully stop all inference engines."""
|
|
237
191
|
self._send_signal_to_engines(Headers.STOP)
|
|
238
|
-
self.running.clear()
|
|
239
|
-
return self.stopped.wait()
|
|
240
192
|
|
|
241
193
|
def stop(self):
|
|
242
194
|
"""
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
|
-
import signal
|
|
5
4
|
import warnings
|
|
6
|
-
from contextlib import contextmanager
|
|
7
5
|
from enum import Enum, auto
|
|
8
6
|
from pathlib import Path
|
|
9
7
|
|
|
@@ -30,45 +28,16 @@ class CompilationState(Enum):
|
|
|
30
28
|
SUCCESS = auto() # Compilation attempted, and succeeded.
|
|
31
29
|
|
|
32
30
|
|
|
33
|
-
class UnifiedMemoryUnsupportedError(Exception):
|
|
34
|
-
"""Unified memory is not supported on this system."""
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
class UnifiedMemoryCompileTimeoutError(UnifiedMemoryUnsupportedError):
|
|
38
|
-
"""Unified memory compilation timed out."""
|
|
39
|
-
|
|
40
|
-
|
|
41
31
|
# Compilation vars.
|
|
42
32
|
_compilation_state = CompilationState.UNATTEMPTED
|
|
43
33
|
_alloc = None # must remain global until process exit.
|
|
44
34
|
_mod = None # must remain global until process exit.
|
|
45
35
|
|
|
46
36
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"""Context manager to timeout compilation.
|
|
50
|
-
|
|
51
|
-
Args:
|
|
52
|
-
timeout_s (int): Timeout in seconds.
|
|
53
|
-
"""
|
|
54
|
-
|
|
55
|
-
def _handler(signum, frame):
|
|
56
|
-
raise UnifiedMemoryCompileTimeoutError(
|
|
57
|
-
"Unified memory compilation has been forcefully timed out. "
|
|
58
|
-
"This is almost certainly due to stale lock files associated with your Unix user. "
|
|
59
|
-
"The official PyTorch advice is to resolve this issue with the following command:\n"
|
|
60
|
-
"`rm -rf /tmp/torch_extensions/`\n"
|
|
61
|
-
"Alternately, the TORCH_EXTENSIONS_DIR env var may be set to a different path. "
|
|
62
|
-
"Please clean up your stale cache and try again."
|
|
63
|
-
)
|
|
37
|
+
class UnifiedMemoryUnsupportedError(Exception):
|
|
38
|
+
"""Unified memory is not supported on this system."""
|
|
64
39
|
|
|
65
|
-
|
|
66
|
-
try:
|
|
67
|
-
signal.alarm(timeout_s)
|
|
68
|
-
yield
|
|
69
|
-
finally:
|
|
70
|
-
signal.alarm(0)
|
|
71
|
-
signal.signal(signal.SIGALRM, curr_handler)
|
|
40
|
+
pass
|
|
72
41
|
|
|
73
42
|
|
|
74
43
|
def compile_allocator():
|
|
@@ -136,9 +105,6 @@ def compile_allocator():
|
|
|
136
105
|
}
|
|
137
106
|
"""
|
|
138
107
|
|
|
139
|
-
# Define a timeout of 30s for how long the build is allowed to run.
|
|
140
|
-
timeout_s = 30
|
|
141
|
-
|
|
142
108
|
# Build the .so upon import; this avoids issues.
|
|
143
109
|
if _has_mem_pool:
|
|
144
110
|
_extra_ldflags = ["-lcudart"]
|
|
@@ -147,20 +113,18 @@ def compile_allocator():
|
|
|
147
113
|
if os.path.isdir(_cuda_lib):
|
|
148
114
|
_extra_ldflags = [f"-L{_cuda_lib}", "-lcudart"]
|
|
149
115
|
try:
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
_compilation_state = CompilationState.SUCCESS
|
|
163
|
-
except (RuntimeError, ImportError, OSError, UnifiedMemoryCompileTimeoutError) as e:
|
|
116
|
+
_mod = load_inline(
|
|
117
|
+
name="managed_alloc_runtime",
|
|
118
|
+
cpp_sources=[_mempool_c_src],
|
|
119
|
+
functions=[],
|
|
120
|
+
with_cuda=True,
|
|
121
|
+
extra_ldflags=_extra_ldflags,
|
|
122
|
+
verbose=True,
|
|
123
|
+
)
|
|
124
|
+
_so_path = Path(_mod.__file__).as_posix()
|
|
125
|
+
_alloc = CUDAPluggableAllocator(_so_path, "managed_malloc", "managed_free").allocator()
|
|
126
|
+
_compilation_state = CompilationState.SUCCESS
|
|
127
|
+
except (RuntimeError, ImportError, OSError) as e:
|
|
164
128
|
warnings.warn(f"Failed to create unified memory mempool: '{e}'.")
|
|
165
129
|
_compilation_state = CompilationState.FAILURE
|
|
166
130
|
|
|
@@ -268,21 +268,20 @@ def apply_rotary_pos_emb(
|
|
|
268
268
|
if config.apply_rope_fusion:
|
|
269
269
|
if cu_seqlens is None:
|
|
270
270
|
# NOTE: TE backends do not support mRoPE in bshd format when bs > 1.
|
|
271
|
-
use_unfused = False
|
|
272
271
|
if config.mrope_section is not None and freqs.shape[1] > 1:
|
|
273
272
|
# TODO: Add a check in TransformerConfig and remove this unfused implementation.
|
|
274
273
|
warnings.warn(
|
|
275
274
|
"apply_rope_fusion does not support mRoPE in bshd format when bs > 1. "
|
|
276
275
|
"Please set apply_rope_fusion to false. This will become an error in v0.16."
|
|
277
276
|
)
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
277
|
+
return _apply_rotary_pos_emb_bshd(
|
|
278
|
+
t,
|
|
279
|
+
freqs,
|
|
280
|
+
rotary_interleaved=config.rotary_interleaved,
|
|
281
|
+
multi_latent_attention=config.multi_latent_attention,
|
|
282
|
+
mscale=mscale,
|
|
283
283
|
)
|
|
284
|
-
|
|
285
|
-
if not use_unfused:
|
|
284
|
+
else:
|
|
286
285
|
assert fused_apply_rotary_pos_emb is not None, "apply_rope_fusion is not available."
|
|
287
286
|
return fused_apply_rotary_pos_emb(t, freqs, interleaved=config.rotary_interleaved)
|
|
288
287
|
else:
|
|
@@ -290,25 +289,25 @@ def apply_rotary_pos_emb(
|
|
|
290
289
|
return fused_apply_rotary_pos_emb_thd(
|
|
291
290
|
t, cu_seqlens, freqs, cp_size=cp_group.size(), cp_rank=cp_group.rank()
|
|
292
291
|
)
|
|
293
|
-
# use unfused implementation
|
|
294
|
-
if cu_seqlens is None:
|
|
295
|
-
return _apply_rotary_pos_emb_bshd(
|
|
296
|
-
t,
|
|
297
|
-
freqs,
|
|
298
|
-
rotary_interleaved=config.rotary_interleaved,
|
|
299
|
-
multi_latent_attention=config.multi_latent_attention,
|
|
300
|
-
mscale=mscale,
|
|
301
|
-
)
|
|
302
292
|
else:
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
293
|
+
if cu_seqlens is None:
|
|
294
|
+
return _apply_rotary_pos_emb_bshd(
|
|
295
|
+
t,
|
|
296
|
+
freqs,
|
|
297
|
+
rotary_interleaved=config.rotary_interleaved,
|
|
298
|
+
multi_latent_attention=config.multi_latent_attention,
|
|
299
|
+
mscale=mscale,
|
|
300
|
+
)
|
|
301
|
+
else:
|
|
302
|
+
return _apply_rotary_pos_emb_thd(
|
|
303
|
+
t,
|
|
304
|
+
cu_seqlens,
|
|
305
|
+
freqs,
|
|
306
|
+
rotary_interleaved=config.rotary_interleaved,
|
|
307
|
+
multi_latent_attention=config.multi_latent_attention,
|
|
308
|
+
mscale=mscale,
|
|
309
|
+
cp_group=cp_group,
|
|
310
|
+
)
|
|
312
311
|
|
|
313
312
|
|
|
314
313
|
def apply_rotary_pos_emb_with_cos_sin(
|