Accelerating Deep Learning by Optimising Communication and Computation Efficiency