Most implementations of machine learning algorithms are based on special-purpose frameworks such as TensorFlow or PyTorch. While these frameworks are convenient to use, they introduce multi-million lines of code dependency that one has to trust, understand and potentially modify. As an alternative, this paper investigates a direct implementation of a state of the art Convolutional Neural Network (CNN) in an array language. While our implementation requires 150 lines of code to define the special-purpose operators needed for CNNs, which are readily provided through frameworks such as TensorFlow and PyTorch, our implementation outperforms these frameworks by factors 2 and 3 on a fixed set of hardware — a 64-core GPU-accelerated machine. The resulting specification is written in a rank-polymorphic data-parallel style, and it can be immediately leveraged by optimising compilers. Indeed, array languages make neural networks fast.
Mon 21 JunDisplayed time zone: Eastern Time (US & Canada) change
13:30 - 16:15 | Session 2 (keynote) and 3 (applications)ARRAY at ARRAY Chair(s): Aggelos Biboudis Swisscom AG, Sandra Catalán | ||
13:30 75mKeynote | Keynote: Tilting at Windmills with the Humble Array ARRAY Tim Mattson Intel, USA File Attached | ||
15:15 30mTalk | Array Languages Make Neural Networks Fast ARRAY Artjoms Šinkarovs Heriot-Watt University, UK, Hans-Nikolai Vießmann Radboud University Nijmegen, Netherlands, Sven-Bodo Scholz Radboud University | ||
15:45 30mTalk | Acceleration of Lattice Models for Pricing Portfolios of Fixed-Income Derivatives ARRAY Wojciech Michal Pawlak University of Copenhagen, Denmark, Marek Hlava Department of Computer Science, University of Copenhagen, Martin Metaksov Department of Computer Science, University of Copenhagen, Cosmin Oancea University of Copenhagen, Denmark |