Hey @lpolari, you are correct, when multiple networks are added the DAGs for each network are independent from each other. Physical resources are taken into account while adding a network so advanced partitioning may not be necessary.
When loading partitions onto a device the Glow Runtime will try to evenly distribute used space on the devices.
Example:
3 Devices with 10GB of memory
Network A Partitioned: A1[6GB], A2[5GB]
Network B Partitioned B1[4GB], B2[8GB]
Assuming you load A then B.
The device loading will looks like:
Dev1: A1, B1
Dev2: A2
Dev3: B2
The limitation here is that Glow decides one network at a time so you might end up with a less than optimal assignment of resources.
To get “optimal” will depend a bit on your use case. In general glow only partitions a network if it will not fit on a single device. So you usually won’t end up with many different networks loaded on a single device.
If you are running many smaller networks then partitioning shouldn’t be an issue but you will have contention for devices at inference time.