-
Notifications
You must be signed in to change notification settings - Fork 73
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
UNet end-to-end performance scales poorly in data parallel mode #12961
Comments
Copying a thread from slack. Evan was testing remote vs. mmio readback performance:
Latency:
Bandwidth:
|
Update: @tt-asaigal has provided a fix (similar to this) that significantly improves end-to-end scaling for multiple devices. This fix removes a bottleneck on host by making sure that worker and completion queue threads are on completely independent cores. Measuring the new end-to-end perf with this fix shows that performance scales much better when only using MMIO chips:
Poor scaling on remote devices hints that the main bottleneck is now likely on read/write to the remote chip |
Summary
On the current
main
(commit 861fb7e) - the single chip performance of UNet is approx. 329 fps. Running the same test except data parallel on N300 measures 246 fps. The performance does not change if we disable async. Similarly on T3K, we are only getting 443 fps end-to-end.We should investigate why this is the case.
Steps to reproduce
Using UNet Shallow
Build latest
main
and enable ethernet dispatch cores:export WH_ARCH_YAML=wormhole_b0_80_arch_eth_dispatch.yaml
.Run the following steps:
Using isolated test case
The behaviour is also present in the following test:
Viewing the profiler in tracy shows device 1 being slower than device 0:
Investigation
The text was updated successfully, but these errors were encountered: