Keynote: Automating Retargetable Compiler Construction with Hydride
Modern retargetable compiler systems like LLVM and GCC do not provide robust support for compiling to fast-evolving instruction sets, such as for complex vector, matrix and tensor architectures. Consequently, domain specific languages and higher-level compilers, like Halide, TVM, etc., while using LLVM for code generation, take on the burden of generating target-specific code (e.g., via LLVM intrinsics), which makes them difficult to retarget and unable to leverage shared investment in effective machine code generators. In the Hydride project, we are developing a novel approach to compiling for complex, emerging architectures. Given the vendor-defined pseudocode specification of (multiple) target ISAs, Hydride automatically generates AutoLLVM IR, which consists of (formally defined) language-independent and target-independent LLVM IR instructions to support those ISAs. AutoLLVM IR supports the full functionality of the target ISAs, provides a full formal semantics of the compiler IR, and enables a front-end compiler to use program synthesis with complete target ISA coverage (instead of brittle and incomplete pattern matching) to compile source programs to the target ISAs, often generating more efficient code. The Hydride infrastructure is fully language-independent and target-independent, relying only on a source language formal semantics, target ISA pseudocode specifications, and parsers for the latter. Our results show that Hydride is able to represent over 2300 machine instructions in x86 + AVX-512 and Hexagon HVX combined using only 235 AutoLLVM IR instructions. A Halide compiler implemented fully automatically using Hydride for both x86+AVX-512 and HVX, given only a formal semantics of the Halide front-end IR, is able to outperform a mature, well-tuned production compiler for Halide on both X86 and HVX across a wide range of benchmarks. In the process, we uncovered a semantic mismatch indicating a bug in both Halide’s code generator for HVX and in another recent Halide compiler targeting HVX.
Sat 25 FebDisplayed time zone: Eastern Time (US & Canada) change
09:00 - 10:00 | |||
09:00 60mKeynote | Keynote: Automating Retargetable Compiler Construction with Hydride Research Papers |