mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[GH-ISSUE #426] cached_notify Slowdown When Offloading Activations to CPU #287
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/DeepEP#287
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @yellow-banjo on GitHub (Sep 24, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/426
Hello, DeepEP team! Thank you for your great project!
I've encountered a significant slowdown in the cached_notify operation within internode_combine when offloading dispatch activations to the CPU.
My setup uses 8 H100 nodes with 8 GPUs each.
Here are the results from three runs:
Baseline: No activations are saved during the forward pass; all are recomputed during the backward pass.
Async CPU Offload: Dispatch activations are asynchronously offloaded to pinned CPU memory using a separate copy stream, and then reloaded to the GPU during the backward pass.
Sync CPU Offload: The tensors are offloaded to the CPU synchronously (not asynchronously).
The slowdown is noticeable even when offloading is done synchronously, and it occurs significantly before the internode_combine step.
Could you please advise on what might be causing this performance degradation?
@sphish commented on GitHub (Sep 24, 2025):
cached_notifycontains asyncoperation, so its execution time will include the gap between different ranks. I recommend checking the profiles of all ranks to see if theDtoHon some ranks is significantly slower than on others (in my experience, this is quite likely to happen).@yellow-banjo commented on GitHub (Sep 24, 2025):
Thank you for your response!
In the case of synchronous offloading, the varying execution time of the DtoH copy could indeed affect the timing of cached_notify.
Could you please explain how the DtoH operation influences cached_notify even when the offloading is done asynchronously?
@sphish commented on GitHub (Sep 26, 2025):
This will need to be evaluated alongside your profiling results. My guess is that the primary reason is that asynchronous DtoH transfers affect the performance of dispatch/combine, since they compete for PCIe bandwidth.
@yellow-banjo commented on GitHub (Sep 26, 2025):
Thank you for your response!