UPSCALE: Unconstrained Channel Pruning
This work addresses the trade-off between accuracy and latency in model compression for deep learning practitioners, offering a generic solution to improve both aspects without being incremental.
The paper tackled the problem of channel pruning in neural networks causing inference-time memory copies that increase latency, by introducing a method to reorder channels at export time to reduce memory copies and remove pruning constraints. This approach improved ImageNet accuracy by 2.1 points on average and increased inference speeds by up to 2x over a baseline export.
As neural networks grow in size and complexity, inference speeds decline. To combat this, one of the most effective compression techniques -- channel pruning -- removes channels from weights. However, for multi-branch segments of a model, channel removal can introduce inference-time memory copies. In turn, these copies increase inference latency -- so much so that the pruned model can be slower than the unpruned model. As a workaround, pruners conventionally constrain certain channels to be pruned together. This fully eliminates memory copies but, as we show, significantly impairs accuracy. We now have a dilemma: Remove constraints but increase latency, or add constraints and impair accuracy. In response, our insight is to reorder channels at export time, (1) reducing latency by reducing memory copies and (2) improving accuracy by removing constraints. Using this insight, we design a generic algorithm UPSCALE to prune models with any pruning pattern. By removing constraints from existing pruners, we improve ImageNet accuracy for post-training pruned models by 2.1 points on average -- benefiting DenseNet (+16.9), EfficientNetV2 (+7.9), and ResNet (+6.2). Furthermore, by reordering channels, UPSCALE improves inference speeds by up to 2x over a baseline export.