High GPU usage when EXO Dashboard is open in browser (increases with node count)
Description
The EXO Dashboard consumes significant GPU resources when active in a browser tab. The GPU load appears to scale linearly with the number of nodes in the network. I have verified this behavior on both Safari and Chrome with similar results.
Environment
- EXO Version: 1.0.60
- Device: 2 x Mac Studio (M-series chips)
- OS: macOS
-
Monitoring Tool:
macmon
Reproduce Steps
- Start EXO on the first machine: Launch the EXO app (v1.0.60) on the first Mac Studio without running any model instances.
GPU usage (via macmon) is idle at approximately 2%.
-
Open the Dashboard:
Access the dashboard at
http://localhost:8000. Observed that the first node's GPU usage immediately jumps to about 10%.
macmon reflects this significant increase in GPU load.
- Add a second node to the network: Join a second EXO node to the network while keeping the first node's dashboard open. The GPU usage on the first node now spikes to over 20%.
macmon confirms the elevated GPU usage.
- Minimize the browser window: Once the dashboard tab/window is minimized, the GPU usage immediately drops back to the idle state (~2%).
Additional Observations
- The issue is reproducible in both Safari and Google Chrome.
- The GPU usage seems tied to the dashboard's rendering/UI updates, as minimizing the window mitigates the issue.
Expected Behavior
The dashboard UI should be optimized to use minimal GPU resources, especially when just displaying node status, and should not scale so aggressively with the number of nodes.
Thanks for flagging this.
Currently we are not using svelte optimally. I believe we are trigger a full re-render of the page every time we fetch the state, which shouldn't be necessary. With svelte, only the parts of the page that changed should re-render.
We'll address this.