Session Type
Quick Talks
Date & Time
Tuesday, November 8, 2022, 11:00 AM - 12:15 PM
Name
Quick Talk
Description
1) CUDA-OMP — Or, Breaking the Vendor Lock - Joseph Huber, Johannes Doerfert
2) Thoughts on GPUs as First-Class Citizens - Johannes Doerfert
3) Approximating at Scale: How strto<float> in LLVM’s libc is faster - Michael Jones
4) Interactive Crashlogs in LLDB - Med Ismail Bennani
5) clang-extract-api: Clang support for API information generation in JSON - Zixu Wang
6) MIR support in llvm-reduce - Matthew Arsenault
7) Link-Time Attributes for LTO: Incorporating linker knowledge into the LTO recompile - Todd Snider
Speakers
Abstract/s
1) CUDA-OMP — Or, Breaking the Vendor Lock - Joseph Huber, Johannes Doerfert
In this talk we show that performance portability and interoperability are achievable goals even for existing (HPC) software. Through compiler and runtime augmentation, we can run off-the-shelf CUDA programs efficiently on AMD GPUs and further debug them on the host, all without modifications of the original source code.
As a side-effect, a modern LLVM/Clang will provide a compilation environment in which CUDA and OpenMP offload are fully interoperable, allowing the use of both in the same project, even the same kernel, without intrinsic overheads.
2) Thoughts on GPUs as First-Class Citizens - Johannes Doerfert
In this short talk we will ramble about some of the discrepancies between GPU and CPU targets as well as the accompanying infrastructure. While we briefly mention ongoing efforts to rectify some of the problems, we'll mainly focus on the areas where solutions are sparse and efforts are required.
3) Approximating at Scale: How strto in LLVM’s libc is faster - Michael Jones
The string to float conversion functions are deceptively simple. You pass them a string of digits, and they return the floating point value closest to that string. The process of finding that value as quickly as possible is very complex, and in this talk I will describe how the implementation in LLVM’s libc works. The focus will be mainly on the three conversion algorithms used, specifically W.D Clinger’s Fast Path, the Eisel-Lemire fast_float algorithm, and Nigel Tao’s Simple Decimal Conversion. I will explain the overview of how they work and how they fit together to create a complete strto implementation. Finally, I’ll demonstrate how this mak ites faster than existing libc implementations, specifically about 15% faster than glibc.
4) Interactive Crashlogs in LLDB - Med Ismail Bennani
While we'd all prefer if programs never crashed, the logs captured from those crashes can help troubleshoot bugs and get your program up and running again. At Apple, diagnostic data gets captured into a crash report: a detailed textual representation of the program's state when it crashed. Thanks to the addition of interactive crashlogs, developers can now load crash reports into LLDB and interact with them like a regular lldb session, using all the techniques they're already familiar with to debug the issue.
5) clang-extract-api: Clang support for API information generation in JSON - Zixu Wang
This talk introduces clang-extract-api, a new tool to collect and serialize API information from header files, that enables downstream tooling, like documentation generation, to inspect API symbols without having to understand the clang AST.
6) MIR support in llvm-reduce - Matthew Arsenault
Bugpoint has long existed to assist in reducing LLVM IR testcases, but lacked an equivalent tool for reducing code generation passes. Recently llvm-reduce gained support for reducing MIR. This talk will discuss the current status and future improvements, difficulties MIR presents compared to the higher level IR, and my experience using it to reduce register allocation failures in large test cases.
7) Link-Time Attributes for LTO: Incorporating linker knowledge into the LTO recompile - Todd Snider
Embedded-application systems have limited memory, so user control over placement of functions and variables is important. The programmer uses a linker script to define a memory configuration and specify placement constraints on input sections that contain function and variable definitions. With LTO enabled, it is critical that the compiler incorporate link-time placement information into the LTO recompile (Edler von Koch - LLVM 2017). This talk discusses a compiler and linker implementation that roughly follows the ideas presented in Edler von Koch, highlighting differences in our implementation that offer significant advantages.
Location Name
Hayes Ballroom - Main Level