Edge inference has become more widespread, as its diverse applications range from retail to wearable technology. Clusters of networked resource-constrained edge devices are becoming common, yet no system exists to split a DNN across these clusters while maximizing the inference throughput of the system. Additionally, no production-ready orchestration system exists for deploying said models over such edge networks which adopts the robustness and scalability of the cloud. We present an algorithm which partitions DNNs and distributes them across a set of edge devices with the goal of minimizing the bottleneck latency and therefore maximizing inference throughput. The system scales well to systems of different node memory capacities and numbers of nodes, while being node fault-tolerant. We find that we can reduce the bottleneck latency by 10x over a random algorithm and 35% over a greedy joint partitioning-placement algorithm, although the joint-partitioning algorithm outperforms our algorithm in most practical use-cases. Furthermore we find empirically that for the set of representative models we tested, the algorithm produces results within 9.2% of the optimal bottleneck latency. We then developed a standalone cluster network emulator on which we tested configurations of up to 20 nodes and found a steady increase in throughput and decrease in end-to-end latency as the cluster size scales. In these tests, we observed that our system has multi-node fault-tolerance as well as network and system IO fault-tolerance. We have implemented our framework in open-source software that is publicly available to the research community at https://github.com/ANRGUSC/SEIFER.
翻译:边缘推理已日益普及,其广泛应用涵盖零售到可穿戴技术等领域。由资源受限的边缘设备通过联网构成的集群正变得越来越常见,但目前尚不存在能够在此类集群上拆分深度神经网络(DNN)并最大化系统推理吞吐量的系统。此外,也没有一种能够采用云计算的鲁棒性和可扩展性、适用于此类边缘网络的生产就绪型编排系统来部署上述模型。本文提出一种算法,可将DNN划分并分配到一组边缘设备上,旨在最小化瓶颈延迟,从而最大化推理吞吐量。该算法对不同节点内存容量和节点数量的系统具有良好的可扩展性,同时具备节点容错能力。我们发现,与随机算法相比,瓶颈延迟可降低10倍;与贪婪联合划分-放置算法相比,可降低35%——尽管在大多数实际用例中,联合划分-放置算法的性能优于我们的算法。此外,通过实验我们得出,在我们测试的代表性模型集合中,该算法产生的结果与最优瓶颈延迟的偏差在9.2%以内。随后,我们开发了一个独立的集群网络仿真器,在最多20个节点的配置上进行了测试,发现随着集群规模扩大,吞吐量稳定提升,端到端延迟持续降低。在这些测试中,我们观察到系统具有多节点容错能力,以及网络和系统IO容错能力。我们已将该框架作为开源软件实现,并向研究社区公开,可通过https://github.com/ANRGUSC/SEIFER获取。