You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In the Paddle framework, DeviceEvent are currently created using the cudaEventDefault flag. However, these events are exclusively used for synchronization purposes and not for timing measurements. Therefore, it would be more appropriate to create these events with the cudaEventDisableTiming flag. This PR is intended to correct the flag used during CUDA event creation. Additionally, the existing default flag for DeviceEvent is ambiguously set to 0. To improve clarity and prevent misunderstandings, this default flag has been removed. Instead, the flag is now explicitly generated using the GenerateDeviceEventFlag() function.
你的PR提交成功,感谢你对开源项目的贡献!
请关注后续CI自动化测试结果,详情请参考Paddle-CI手册。
Your PR has been submitted. Thanks for your contribution!
Please wait for the result of CI firstly. See Paddle CI Manual for details.
It was mentioned that once the CUDA_DEVICE_MAX_CONNECTIONS flag is set, overlapping operations become entirely unfeasible. This limitation arises from the blocking introduced by the use of cudaEventDefault, since there's an inherent conflict between CUDA_DEVICE_MAX_CONNECTIONS and cudaEventDefault. We can configure the event to utilize cudaEventDisableTiming, so we could use CUDA_DEVICE_MAX_CONNECTIONS.
Origin Timeline(use paddle.ones to make all_reduce(dx) occupying SM before matmul(dw))
Timeline with fix PR(remove paddle.ones, and export CUDA_DEVICE_MAX_CONNECTIONS=1)
It fixes the problem of mp_async_allreduce overlap failure.
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You have signed the CLA already but the status is still pending? Let us recheck it.
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution. 1 out of 2 committers have signed the CLA.
✅ eee4017 ❌ gongweibao
gongweibao seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it.
2023-09-23 00:18:56 FAILED: paddle/fluid/platform/CMakeFiles/device_event_test.dir/device_event_test.cc.o
...
2023-09-23 00:18:56 ../paddle/fluid/platform/device_event_test.cc: In member function 'virtual void DeviceEvent_CUDA_Test::TestBody()':
2023-09-23 00:18:56 ../paddle/fluid/platform/device_event_test.cc:89:26: error: no matching function for call to 'paddle::platform::DeviceEvent::DeviceEvent(phi::GPUPlace&)'
2023-09-23 00:18:56 DeviceEvent event(place);
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR types
Bug fixes
PR changes
Others
Description
In the Paddle framework,
DeviceEvent
are currently created using thecudaEventDefault
flag. However, these events are exclusively used for synchronization purposes and not for timing measurements. Therefore, it would be more appropriate to create these events with thecudaEventDisableTiming
flag. This PR is intended to correct the flag used during CUDA event creation. Additionally, the existing default flag forDeviceEvent
is ambiguously set to 0. To improve clarity and prevent misunderstandings, this default flag has been removed. Instead, the flag is now explicitly generated using theGenerateDeviceEventFlag()
function.