Commit 2d2fce4
authored
[Fix] fix te version compatibility (#25)
**Fix TransformerEngine version string compatibility**
`get_te_version()` failed to correctly parse TE version strings in the
format `0.1.0+te2.9.0`, which is common when TE is installed from
non-standard sources. `PkgVersion` treats `+te2.9.0` as a local version
identifier, causing version comparisons like `>= 2.9` to silently
produce wrong results.
**Changes:**
Added a `parse_te_version_str()` helper that uses a regex to extract the
actual version number from the `+te` suffix (e.g. `0.1.0+te2.9.0` →
`2.9.0`) before passing it to `PkgVersion`, ensuring version-gated code
paths behave correctly.
**Scope:** `megatron/core/utils.py` — TE version detection only, no
functional behavior change.
**Raw error log**
> [default0]:[rank0]: Traceback (most recent call last):
[default5]:[rank5]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/model_provider.py",
line 67, in model_provider
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/train_gpt.py",
line 247, in <module>
[default3]:[rank3]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/transformer_engine/pytorch/cpu_offload.py",
line 700, in get_cpu_offload_context
[default0]:[rank0]: pretrain(
[default5]:[rank5]: return model_builder(args, pre_process,
post_process, vp_stage, config=config, pg_collection=pg_collection)
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/training/training.py",
line 911, in pretrain
[default5]:[rank5]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[default0]:[rank0]: model, optimizer, opt_param_scheduler =
setup_model_and_optimizer(
[default3]:[rank3]: raise ValueError(
[default0]:[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/training/training.py",
line 1423, in setup_model_and_optimizer
[default3]:[rank3]: ValueError: CPU Offloading is enabled while it is
not mentioned what to offload (weights/activations)
[default0]:[rank0]: model = get_model(model_provider_func, model_type)
[default5]:[rank5]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/gpt_builders.py",
line 88, in gpt_builder
[default0]:[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/training/training.py",
line 1193, in get_model
[default0]:[rank0]: model = build_model()
[default0]:[rank0]: ^^^^^^^^^^^^^
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/training/training.py",
line 1185, in build_model
[default5]:[rank5]: model = GPTModel(
[default5]:[rank5]: ^^^^^^^^^
[default0]:[rank0]: model = model_provider_func(pre_process=pre_process,
post_process=post_process)
[default5]:[rank5]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/megatron/core/models/gpt/gpt_model.py",
line 204, in __init__
[default5]:[rank5]: self.decoder = TransformerBlock(
[default5]:[rank5]: ^^^^^^^^^^^^^^^^^
[default5]:[rank5]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/megatron/core/transformer/transformer_block.py",
line 321, in __init__
[default5]:[rank5]: get_cpu_offload_context(
[default0]:[rank0]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[default5]:[rank5]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/megatron/core/extensions/transformer_engine.py",
line 1928, in get_cpu_offload_context
[default5]:[rank5]: context, sync_func = _get_cpu_offload_context(
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/model_provider.py",
line 67, in model_provider
[default5]:[rank5]: ^^^^^^^^^^^^^^^^^^^^^^^^^
[default5]:[rank5]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/transformer_engine/pytorch/cpu_offload.py",
line 700, in get_cpu_offload_context
[default0]:[rank0]: return model_builder(args, pre_process,
post_process, vp_stage, config=config, pg_collection=pg_collection)
[default5]:[rank5]: raise ValueError(
[default5]:[rank5]: ValueError: CPU Offloading is enabled while it is
not mentioned what to offload (weights/activations)
[default0]:[rank0]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/flagscale/train/megatron/gpt_builders.py",
line 88, in gpt_builder
[default0]:[rank0]: model = GPTModel(
[default0]:[rank0]: ^^^^^^^^^
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/megatron/core/models/gpt/gpt_model.py",
line 204, in __init__
[default0]:[rank0]: self.decoder = TransformerBlock(
[default0]:[rank0]: ^^^^^^^^^^^^^^^^^
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/megatron/core/transformer/transformer_block.py",
line 321, in __init__
[default0]:[rank0]: get_cpu_offload_context(
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/megatron/core/extensions/transformer_engine.py",
line 1928, in get_cpu_offload_context
[default0]:[rank0]: context, sync_func = _get_cpu_offload_context(
[default0]:[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^
[default0]:[rank0]: File
"/root/miniconda3/envs/flagscale-train/lib/python3.12/site-packages/transformer_engine/pytorch/cpu_offload.py",
line 700, in get_cpu_offload_context
[default0]:[rank0]: raise ValueError(
[default0]:[rank0]: ValueError: CPU Offloading is enabled while it is
not mentioned what to offload (weights/activations)1 parent e6afd8e commit 2d2fce4
2 files changed
Lines changed: 14 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
13 | | - | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
327 | 327 | | |
328 | 328 | | |
329 | 329 | | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
330 | 339 | | |
331 | 340 | | |
332 | | - | |
| 341 | + | |
333 | 342 | | |
334 | 343 | | |
335 | 344 | | |
| |||
0 commit comments