Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于pp时能否正确反映等待时间的疑问 #15

Open
191220042 opened this issue Nov 8, 2024 · 4 comments
Open

关于pp时能否正确反映等待时间的疑问 #15

191220042 opened this issue Nov 8, 2024 · 4 comments

Comments

@191220042
Copy link

您好,我在阅读代码之后好奇,比如说在pp组中的两个rank,在broadcast时rankB需要阻塞等待rankA的输出结果,请问用workload如何正确反映这种阻塞等待的时间呢,谢谢。

@zhouheyang-alibaba
Copy link
Collaborator

不知道你这里是否想问的是pp组中的send/recv需要阻塞等待,这个问题要分成两点来看:

  • 对于AICB物理打流来说,pp组中不同pp rank的workload是不一样的,workload会根据pp rank具体的生成isend irecv信息,运行时会实际调用torch.distributed去完成send/recv的阻塞等待。
  • 对于simAI仿真来说,目前没有考虑阻塞等待的时间,认为pp通信完全被overlap掉,即将到来的版本中会进一步考虑pp通信时间

@191220042
Copy link
Author

谢谢,例如说在物理打流中,rankA需要计算完成才能isend,rankBirecv,但是因为没有真实的计算(没有真实的gemm),这里的计算的时间是怎么模拟的呢

@191220042
Copy link
Author

我的意思使rankB是需要等待rankA的计算+isend,但是rankA没有真实的计算或者sleep相应的时间,是不是会导致rankB的等待时间偏短

@zhouheyang-alibaba
Copy link
Collaborator

如果你使用aicb纯通信的话,是的确实会导致rankB的等待时间偏短;
但我们有单独的aiob组件来模拟算子真实的计算时间,如果你开启了--aiob_enable 选项的话,会运行aiob仿真填充计算时间,在物理机上或者仿真运行时会等待那个算子的真实的计算时间的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants