- (CANCELLED) Distributing LLVM snapshots: Dogs chasing cars and jumping on them -Konrad Kleine
- The Road to Github Actions: Migrating LLVM’s CI -Aiden Grossman
- Multilib Configuration Files -Peter Smith
- Carbon's high-level semantic IR -Richard Smith
- Enabling Loop Vectorization for Compressing Store Pattern -Tejas Joshi
- Automatic Proxy App Generation through Input Capture and Generation -Johannes Doerfert, Ivan R. Ivanov
- How we use MLIR to test ReRAM cells -Maximilian Bartel
- Automatic Retuning of Floating-Point Precision -Ivan R. Ivanov, William S. Moses
- OpenSSF Scorecard - Do we need to improve our security practices? -Marius Brehler Distributing
(CANCELLED) LLVM snapshots: Dogs chasing cars and jumping on them - Konrad Kleine
The high level of automation paired with monitoring, build log analysis and issue tracking integration that we've established in building and distributing LLVM snapshots at Red Hat allows us to free up engineering time from packaging. We can experiment in parallel with various changes to our build pipeline that previously were nearly impossible. We can now move away from standalone builds to mono-repo builds, do bootstrapping and Profile Guided Optimization (PGO). And all the time we can build and distribute LLVM packages in public for Fedora and Red Hat Enterprise Linux operating systems on aarch64, i386, ppc64le, s390x, and x86_64 architectures.
The Road to Github Actions: Migrating LLVM’s CI - Aiden Grossman
Continuous integration is an incredibly useful tool for development, especially for a project on the scale of LLVM. Last year, LLVM migrated from precommit review using Phabricator to precommit review using Github Pull Requests. This has sparked significant interest around moving the precommit CI to Github Actions. Within this talk, we cover the recent efforts to move the existing precommit CI over to Github Actions, the engineering challenges involved, future directions, and how the community can get involved to help improve and adapt the CI infrastructure.
Multilib Configuration Files - Peter Smith
A description of the configuration file based multilib implementation and clang and our experience using it in an embedded toolchain.
Carbon's high-level semantic IR - Richard Smith
An introduction to the Carbon toolchain's Semantics IR. This talk will describe some of the challenges and benefits that come from using a linear execution-based model for the program representation during initial type-checking rather than a traditional tree-based approach as used by Clang.
Enabling Loop Vectorization for Compressing Store Pattern - Tejas Joshi
LLVM currently does not vectorize loops with compressing store patterns. We enable this vectorization which give performance improvements in several applications.
Automatic Proxy App Generation through Input Capture and Generation - Johannes Doerfert, Ivan R. Ivanov
Benchmarks and proxy apps are extremely important for machine learning applications in compilers and for exploration of new hardware architectures. We introduce a new framework that can capture LLVM IR function inputs from an existing run or generate synthetic input from IR only. Bundled with a simple driver, this allows for easily relocatable and reproducible runs on a variety of systems.
How we use MLIR to test ReRAM cells - Maximilian Bartel
Devices for neuromorphic computing are still prone to defects and limitations. However the impact those have on neural networks is not clear. In this talk I show how I used the linalg and transform dialect together with the Python execution engine in MLIR to test real devices on our lab equipment.
Automatic Retuning of Floating-Point Precision Ivan R. Ivanov, William S. Moses
The choice of a floating point representation is often key to the success of an algorithm's implementation. Using too large of a floating-point type can limit performance, whereas using too small a floating-point type reduces accuracy. This has been especially critical in machine learning applications, where manually tuning floating point type is required to ensure large language models do not overwhelm the available memory bandwidth. Typically, a programmer makes a choice of the floating operation in their application, and any changes require require extensive rewrites of the code. This both limits the ability of changing representation for any large codebases, and is especially restrictive if one wants to search over the space of available floating point sizes. Integrated as part of the Enzyme framework, we introduce a pass to automatically change the floating point precision in existing applications. This can be applied at both a whole-application level, as well as planned support for individual operations. A motivation for building this within an AD framework is to leverage the floating-point error results that can be generated by AD to automatically select which floating point computations can be changed without substantially changing the accuracy of the end program.
OpenSSF Scorecard - Do we need to improve our security practices? - Marius Brehler
Scorecard is an automated tool created by OpenSSF to help maintainers of open source software to improve their security best practices and to help consumers of open source software to assess whether their dependencies are safe. The scores can be used to identify areas that need to be improved in order to enhance the security of a project. With https://github.com/llvm/llvm-project/pull/69933 a OpenSSF Scorecard action and badge were added to the LLVM repository. This presentation gives a brief analysis of the current OpenSSF Scorecard report and points out which actions were and still can be taken to improve the score.
Maximilian Bartel
Marius Brehler
Johannes Doerfert
Aiden Grossman
Ivan Ivanov
Tejas Joshi
William Moses
Peter Smith
Richard Smith