Abstract
dc:description.abstractHigh performance computing requires not only writing highly efficient code, but also targeting multiple architectures (e.g. CPU, GPU, MPI). However, not only does bundling algorithm and optimization often obfuscate the code, but different architectures require different optimizations and programming tools. Tiramisu [3], an optimization framework, tries to solve this issue by separating algorithm, optimizations, and architecture details, and by targeting multiple architectures in a unified syntax. In this work, we highlight the implementation of a Julia interpreter that compiles a subset of the language to Tiramisu. We show that by adding simple Tiramisu optimization commands to Julia code, we can achieve up to 14x speedup. We also present an implementation of a CUDA backend for Tiramisu in order to target GPUs. We showcase a flexible Tiramisu CUDA API, as well as how common GPU usage patterns can be expressed in Tiramisu. We demonstrate that Tiramisu matches or outperforms the performance of the Halide GPU backend.
Degree
thesis:*- Department dc:contributor.department
- Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
- Grantor dc:publisher
- Massachusetts Institute of Technology
- Year dc:date.issued
- 2018
Author and committee
dc:creator, dc:contributor.*- Author dc:creator
-
- Ben Romdhane, Malek
- Advisor dc:contributor.advisor
-
- Saman P. Amarasinghe.
Subjects
dc:subject × 1Rights
dc:rights- Statement dc:rights
-
- MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.
- Licence dc:rights.uri
- Language dc:language.iso
- eng
Identifiers
dc:identifier.*- Handle dc:identifier.uri
- http://hdl.handle.net/1721.1/119545
- OAI identifier oai:identifier
- oai:dspace.mit.edu:1721.1/119545