Communication Optimal Convolutional Neural Networks in Parallel This is the final project for CS267 Applications of parallel computers in spring 2019 at UC Berkeley A multi-processor implementation of convolutional neural network that favors least communication cost based on CUDA and OpenMP