qwen3.6-27B在8XH800上训练报错
- 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