Swiss LLVM Compiler and Code Generation Social


Details
What:
Swiss LLVM Compiler and Code Generation Social! Talk about Compilers, Code Generation, and Programming Languages.
Tech-Talk:
Deep Learning is the Killer App for Polyhedral Compilation
Deep learning approaches are successfully applied to an increasingly large number of real-world problems, such as computer vision, speech or weather prediction. Their efficiency comes at a high computational and energy price. While the deep learning kernels are qualified as “embarrassingly parallel”, their implementations often fall short of exploiting the full power of modern parallel hardware. We propose Tensor Comprehensions, a new domain-specific language for deep learning workloads and a compilation flow combining more (LLVM) or less (polyhedral, in-process autotuning) conventional techniques. The language is restricted by design to the computations that can be effectively analyzed in the polyhedral model, yet it covers the vast majority of DL layers. Polyhedral transformation happens at a higher level than in existing tools, directly capturing the relevant information that otherwise would have to be extracted from a lower-level intermediate representation. Currently, Tensor Comprehensions targets NVidia GPUs through NVRTC or LLVM’s PTX backend, and modern CPUs with vectorization and optional parallelization through the Tapir extension of the LLVM IR. Initial evaluations show up to 4x speedups over vendor-provided libraries on computational kernels relevant to deep learning.
Oleksandr Zinenko is a research engineer at Inria and École Normale Supérieure in Paris, France working on usability and scalability of polyhedral compilation. He obtained his PhD from University Paris-Saclay for the work on interactive program restructuring. Oleksandr’s research interests include polyhedral compilation, program optimization and programming languages, all from a developer-centric viewpoint. He is a co-author of an interactive toolset to promote and disseminate polyhedral compilation techniques.
Where:
ETH Zurich, CAB, E72
Floorplan (http://www.rauminfo.ethz.ch/Rauminfo/grundrissplan.gif?region=Z&areal=Z&gebaeude=CAB&geschoss=E&raumNr=72)
The building closes at 19:00. If you are late, you need to write us to be let in.
What is LLVM:
LLVM (http://www.llvm.org/) is an open source project that provides a collection of modular compiler and toolchain technologies. It is centered around a modern SSA-based compiler around which an entire ecosystem of compiler technology was developed. Most well know is the clang C++ compiler, which is e.g. used to deploy iOS. Beyond this a diverse set of projects is developed under the umbrella of LLVM. These include code generators and assemblers for various interesting architectures, a jit compiler, a debugger, run-time libraries (C++ Standard Library, OpenMP, Opencl library), program sanity checkers, and many more. LLVM has itself grown out of a research project more than 10 years ago and is the base of many exciting research projects today:
https://scholar.google.ch/scholar?cites=7792455789532680075&as_sdt=2005&sciodt=0,5&hl=de
Contact:
Tobias Grosser (https://www.inf.ethz.ch/personal/tgrosser/)

Swiss LLVM Compiler and Code Generation Social