PICO: Pipeline Inference Framework for Versatile CNNs on Diverse Mobile Devices
Xiang Yang, Zikang Xu, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao, Song Guo
TL;DR
PICO tackles the challenge of distributed CNN inference on heterogeneous mobile devices by transforming complex CNN graphs into a pipeline of stages and solving a many-to-many device assignment. It introduces a graph-partitioning algorithm to produce fine-grained pieces and a dynamic-programming-based approach to configure stages, adapting to heterogeneity with greedy refinements. The framework reduces redundant computation and cross-device communication, achieving substantial throughput gains (up to $6.8\times$ in experiments with Raspberry-Pi clusters) and lower memory/energy footprints compared to baselines. This approach enables scalable, real-time CNN inference on edge devices without retraining, offering practical benefits for smart cameras, edge AI, and distributed vision tasks.
Abstract
Distributing the inference of convolutional neural network (CNN) to multiple mobile devices has been studied in recent years to achieve real-time inference without losing accuracy. However, how to map CNN to devices remains a challenge. On the one hand, scheduling the workload of state-of-the-art CNNs with multiple devices is NP-Hard because the structures of CNNs are directed acyclic graphs (DAG) rather than simple chains. On the other hand, distributing the inference workload suffers from expensive communication and unbalanced computation due to the wireless environment and heterogeneous devices. This paper presents PICO, a pipeline cooperation framework to accelerate the inference of versatile CNNs on diverse mobile devices. At its core, PICO features: (1) a generic graph partition algorithm that considers the characteristics of any given CNN and orchestrates it into a list of model pieces with suitable granularity, and (2) a many-to-many mapping algorithm that produces the best pipeline configuration for heterogeneous devices. In our experiment with 2 ~ 8 Raspberry-Pi devices, the throughput can be improved by 1.8 ~ 6.8x under different CPU frequencies.
