Communication-Optimal Convolutional Neural Nets

02/19/2018
by   James Demmel, et al.
0

Efficiently executing convolutional neural nets (CNNs) is important in many machine-learning tasks. Since the cost of moving a word of data, either between levels of a memory hierarchy or between processors over a network, is much higher than the cost of an arithmetic operation, minimizing data movement is critical to performance optimization. In this paper, we present both new lower bounds on data movement needed for CNNs, and optimal sequential algorithms that attain these lower bounds. In most common cases, our optimal algorithms can attain significantly more data reuse than matrix multiplication.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/18/2022

Communication Bounds for Convolutional Neural Networks

Convolutional neural networks (CNNs) are important in a wide variety of ...
research
11/15/2019

Automated Derivation of Parametric Data Movement Lower Bounds for Affine Programs

For most relevant computation, the energy and time needed for data movem...
research
12/31/2020

I/O Lower Bounds for Auto-tuning of Convolutions in CNNs

Convolution is the most time-consuming part in the computation of convol...
research
02/28/2020

Communication-Optimal Tilings for Projective Nested Loops with Arbitrary Bounds

Reducing communication - either between levels of a memory hierarchy or ...
research
07/21/2022

Communication Lower Bounds and Optimal Algorithms for Multiple Tensor-Times-Matrix Computation

Multiple Tensor-Times-Matrix (Multi-TTM) is a key computation in algorit...
research
01/13/2021

Convolutional Neural Nets: Foundations, Computations, and New Applications

We review mathematical foundations of convolutional neural nets (CNNs) w...
research
09/29/2020

Communication Lower-Bounds for Distributed-Memory Computations for Mass Spectrometry based Omics Data

Mass spectrometry based omics data analysis require significant time and...

Please sign up or login with your details

Forgot password? Click here to reset