domain specific languages to high performance code
play

Domain-Specific Languages to High Performance: Code Generation and - PowerPoint PPT Presentation

Outline Software Overview Domain-Specific Languages to High Performance: Code Generation and Transformation in Python Part 1: Introduction Andreas Kl ockner Computer Science University of Illinois at Urbana-Champaign uiuc-logo.pdf


  1. Outline Software Overview Domain-Specific Languages to High Performance: Code Generation and Transformation in Python Part 1: Introduction Andreas Kl¨ ockner Computer Science University of Illinois at Urbana-Champaign uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

  2. Outline Software Overview Outline 1 Outline 2 Software Overview uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

  3. Outline Software Overview Setting High-performance code is challenging : designed to push machines, models, and methods to the limits of their capabilities often repurposed → high demands on flexibility uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

  4. Outline Software Overview Goals Recipe: Split ‘ math work ’ from ‘ performance work ’ Build Mathematically-oriented mini-languages (‘DSLs’) Apply domain-specific optimizations and transformations Leverage tools to generate GPU/multi-core code from DSL Create glue that ties components together uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

  5. Outline Software Overview Goals Recipe: Split ‘ math work ’ from ‘ performance work ’ Build Mathematically-oriented mini-languages (‘DSLs’) Apply domain-specific optimizations and transformations Leverage tools to generate GPU/multi-core code from DSL Create glue that ties components together Necessary consequence: The computation itself is now data that we will manipulate programmatically. uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

  6. Outline Software Overview Introduction Case studies IPython Python numpy : einsum UFL numpy Building languages Generating C Syntax trees Using templating engines Expression languages Types and hybrid code Operations on expression Structured code trees generation (ASTs) A first glimpse of code Code generation via Loopy generation Loop polyhedra OpenCL as a vehicle for Instructions and ordering code generation Loop transformation, and Execution model data layout OpenCL + Python Generating instructions High-performance from DSLs primitives uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

  7. Outline Software Overview Outline 1 Outline 2 Software Overview uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

  8. Outline Software Overview Getting the software Core packages: Python: https://www.python.org numpy: https://www.numpy.org pymbolic: https://github.com/inducer/pymbolic PyOpenCL: https://github.com/pyopencl/pyopencl loopy: https://github.com/inducer/loopy All open-source under MIT/BSD licenses. uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

  9. Outline Software Overview DEMO TIME uiuc-logo.pdf Andreas Kl¨ ockner DSL to High Performance

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend