deepseek-ai / deepseek-ai/DeepEP

illegal memory on low_latency_dispatch when test dataset

Open
#152 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Cuda
Stars
10.1k
Forks
1.4k
Avg merge
4d 1h
Merged PRs (30d)
2

Description

你好,deepep的作者们,我成功在h20上把deepep集成到我们的项目中,目前internode, intranode的dispatch 和combine kernel都能正常运行, 但是在实际运行low_latency_dispatch kernel时, 会在成功运行一些数据之后报错illegal memory, 如下图

![Image](https://github.com/user-attachments/assets/a0c7e1e9-2817-41d0-966a-ace690b6353f)

我们直接调用了c++接口,对于你们的代码我只做了下面的修改, 把low_latency_mode 下的dispatch 和combine 的kNumWrapGroups和 kNumWrapPerGroup 变量改成了8 和 4,防止h20报sm不足的错误。以及在初始化时设置了相关环境变量

![Image](https://github.com/user-attachments/assets/69e21997-19e3-4240-bcf6-8fd68406223d)

![Image](https://github.com/user-attachments/assets/452badd6-c55a-4b0d-9182-0d7e88825100)

排查过程中我尝试在internode_ll.cu 的dispatch kernel中加了一些打印, 我发现出错时rdma_recv_count 获取到的值是异常值,之前的代码中应该是使用该地址进行nvshmem通信,我怀疑是rank之间进行rdma_recv_count 通信时发生了异常。
我在单机8卡和多机多卡上都会碰到这个问题,我可以确定我传入的数据是对的,因为出错的数据单独跑都能正常运行,只有在运行数据集时会发生错误,一般跑几条数据就会报错。会不会是实际运行过程中每次num_max_dispatch_token_per_rank 不同导致的。
:单机8卡机时我的local_experts_per_rank = 33 [256 /8 + 1]

![Image](https://github.com/user-attachments/assets/852ee56b-cc47-4baa-a19d-9d1bef84cc9d)

![Image](https://github.com/user-attachments/assets/598046f7-0cb8-4a07-984a-eb1676f498bb)

请问有什么排查的思路吗,这个问题已经困扰我好几天了,十分感谢。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the low_latency_dispatch path in internode_ll.cu and inspect how rdma_recv_count is exchanged and consumed across ranks. Reproduce the dataset-only failure on the reported single-node or multi-node setup, varying num_max_dispatch_token_per_rank; done means identifying and correcting the cause of the illegal-memory access and confirming repeated dataset execution completes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
distributed-systems, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.