Codeplay will be participating in a packed schedule of events, co-located at the Gran Princess Sofia Hotel in Barcelona this March, at the International Symposium on Code Generation and Optimization (CGO), Principles and Practice of Parallel Programming (PPoPP), the International Symposium on High-Performance Computer Architecture (HPCA) (all 12-16 March), followed by the 25th International Conference on Compiler Construction (CC) and theEuropean LLVM Developers' Meeting (EuroLLVM) (17-18 March).
PPoPP is the forum for leading work on all aspects of parallel programming, including foundational and theoretical aspects, techniques, languages, compilers, runtime systems, tools, and practical experiences. In the context of the symposium, “parallel programming” encompasses work on concurrent and parallel systems (multicore, multithreaded, heterogeneous, clustered systems, distributed systems, grids, clouds, and large scale machines). Given the rise of parallel architectures into the consumer market (desktops, laptops, and mobile devices), PPoPP is particularly interested in work that addresses new parallel workloads, techniques, and tools that attempt to improve the productivity of parallel programming, and work towards improved synergy with such emerging architectures.
At this event, Codeplay's CEO, Andrew Richards will be delivering two keynote talks:
- "Working Together to Build the Heterogeneous Processing Ecosystem" at 2pm, Saturday 12 March.
- The keynote talk of SYCL 2016, a workshop organized by Codeplay on the SYCL™ open standard for heterogeneous computing. This workshop takes place on Sunday 13 March, starting at 9.00am. Further Codeplay talks at this workshop are :
- Developing a SYCL-based Computer Vision Framework for Heterogeneous and Embedded Architectures : Mehdi Goli, Ralph Potter, Andrew Richards, Naeem Ramzan
- SyclParallelSTL: A Parallel STL library for Heterogeneous Systems : Ruyman Reyes, Antonio Vilches (a former HiPEAC intern at Codeplay)
The International Symposium on Code Generation and Optimization provides a premier venue to bring together researchers and practitioners working at the interface of hardware and software on a wide range of optimization and code generation techniques and related issues. The conference spans the spectrum from purely static to fully dynamic approaches, including techniques ranging from pure software-based methods to architectural features and support.
Attending from Codeplay will be our engineers Lukas Kuklinek, Meenakshi Ravindran, and Alastair Murray.
The International Symposium on High-Performance Computer Architecture provides a high-quality forum for scientists and engineers to present their latest research findings in this rapidly-changing field.
Ruyman Reyes will also be attending this event.
The International Conference on Compiler Construction is interested in work on processing programs in the most general sense: analyzing, transforming and executing input that describes how a system operates, including traditional compiler construction as a special case. Topics of interest here will include:
- Compilation and interpretation techniques, including program representation, analysis, and transformation; code generation and optimization;
- Run-time techniques, including memory management, virtual machines, dynamic and just-in-time compilation;
- Programming tools, including refactoring editors, checkers, verifiers, compilers, debuggers, and profilers;
- Techniques for specific domains such as secure, parallel, distributed, embedded or mobile environments;
- Design and implementation of novel language constructs and programming models
Victor Lomuller, along with Ruyman Reyes, will be attending.
The developers' meeting serves as a forum for LLVM, Clang, LLDB and other LLVM project developers and users to get acquainted, learn how LLVM is used, and exchange ideas about LLVM and its (potential) applications. More broadly, the event is of particular interest to active developers of projects in the LLVM Umbrella, anyone interested in using these as part of another project, compiler, programming language, and runtime enthusiasts, as well as those interested in using compiler and toolchain technology in novel and interesting ways.
Codeplay will be delivering three presentations at this year's meeting:
- "Bringing RenderScript to LLDB" by Luke Drummond and Ewan Crawford : Thursday March 17 at 15.20h
RenderScript is Android's compute framework for parallel computation via heterogeneous acceleration. It supports multiple target architectures and uses a two-stage compilation process, with both off-line and on-line stages, using LLVM bitcode as its intermediate representation. This split allows code to be written and compiled once, before execution on multiple architectures transparently from the perspective of the programmer.
In this talk, we give a technical tour of our upstream RenderScript LLDB plugin, and how it interacts with Android applications executing RenderScript code. We provide a brief overview of RenderScript, before delving into the LLDB specifics. We will discuss some of the challenges that we encountered in connecting to the runtime, and present some of the specific implementation techniques we used to hook into it and inspect its state. In addition, we will describe how we tweaked LLDB's JIT compiler for expression evaluation, and how we added commands specific to RenderScript data objects. This talk will cover topics such as the plug-in architecture of LLDB, the debugger's powerful hook mechanism, remote debugging, and generating debug information with LLVM.
- "C++ on Accelerators: Supporting Single-Source SYCL and HSA Programming Models Using Clang" by Victor Lomuller, Ralph Potter and Uwe Dolinsky : Thursday March 17 at 14.20h .
Heterogeneous systems have been massively adopted across a wide range of devices. Multiple initiatives, such as OpenCL and HSA, have appeared to efficiently program these types of devices.
Recent initiatives attempt to bring modern C++ applications to heterogeneous devices. The Khronos Group published SYCL in mid-2015. SYCL offers a single-source C++ programming environment built on top of OpenCL. Codeplay and the University of Bath are currently collaborating on a C++ front-end for HSAIL (HSA Intermediate Language) from the HSA Foundation. Both models use a similar single-source C++ approach, in which the host and device kernel C++ code is interleaved. A kernel always starts using specific function calls, which take a functor object. To support the compilation of these two high-level programming models, Codeplay's compilers rely on a common engine based on Clang and LLVM to extract and manipulate those kernels.
In this presentation we will briefly present both programming models and then focus on Codeplay's usage of Clang to manage both models.
- and the tutorial session, "Adding Your Architecture to LLDB" by Deepak Panickal and Andrzej Warzynski : Friday March 18 at 13.50h
The tutorial explains how to get started with adding a new architecture to LLDB. It walks through all the major steps required and how LLDB's various plugins work together in making this a maintainable and easily approachable task. It will cover: basic definition of the architecture, implementing register read/write through adding a RegisterContext, manipulating breakpoints, single-stepping, adding an ABI for stack walking, adding support for disassembly of the architecture, memory read/write through modifying Process plugins, and everything else that is needed in order to provide a usable debugging experience. The required steps will be demonstrated for a RISC architecture not yet supported in LLDB, but simple enough so that no expert knowledge of the underlying target is required. Practical debugging tips, as well as solutions to common issues, will be given.
As well as the presenters, this year's EuroLLVM will also be attended by our engineers, Alastair Murray, Fraser Cormack, Jakub Chlanda, Pierre-Andre Saulais, and Lukas Kuklinek.
We’re always delighted to speak with anyone interested in what we’re doing, so please come and say “hello”. If you would like to arrange a meeting with us at the event, please use our contact form or follow us on @codeplaysoft and make contact! We are also currently recruiting for various positions in the company, so we would love to chat to anyone interested in working in our area of expertise.