alibaba / alibaba/ROLL

qwen3.6-27B在8XH800上训练报错

Open
#459 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
3.4k
Forks
312
Avg merge
1h 2m
Merged PRs (30d)
2

Description

qwen3.6-27B 用了 GatedDeltaNet(Mamba 类 SSM)混合注意力层, 这些层里的 TransformerEngine 模块持有内部 C++
_extra_state(缓存指向 TensorImpl/Storage 的指针);ROLL 的 offload 机制把参数 flatten 进一块 CPU buffer 再把 tensor.data 重绑到
buffer 切片,原来的 C++ Storage 被剥离 → TE 缓存的指针悬空 → 下一次 forward 段错误:
Cannot access data pointer of Tensor that doesn't have storage(在 TE forward 内抛出)

尝试修改遇到下面问题:
- tensor.set_() 跨设备在现代 PyTorch 被禁;
- tensor.data=... 能用但会丢掉 TE 那些按 C++ 对象身份挂的 hook;
- clear_cublas_workspaces() 只清 PyTorch 的 cuBLAS workspace,清不了 TE 自己的;
- 真修要么改 Megatron 的 offload_megatron_no_grad_module,要么全程关闭参数 offload(8×80GB
单节点显存不够,而省显存的 distributed-optim 分片本身又依赖 offload——死循环)。
- 官方 ROLL 27B 例子用的是 32 卡 / 4 节点(TP=4 PP=2 DP=4),显存宽松到根本不触发那条 offload 路径;我们只有单节点 8×H800,被迫 offload
→ 必然踩雷。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by inspecting Megatron's offload_megatron_no_grad_module and the TransformerEngine forward path described in the report. Reproduce the qwen3.6-27B training configuration on 8×H800 with parameter offload and identify where the invalid storage pointer appears. Done means the configuration completes its forward pass without the storage-pointer error while retaining the required memory savings.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems, machine-learning
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.