Fetching the latest programs, projects, and workspace data.
A language for fast, portable computation on images and tensors
Showing 2 of 2 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Jack FENG
<p>Create a web application that integrates with an existing buildbot infrastructure to fully automatically track the performance of many aspects of Halide over time, including but not limited to compile times, code size, memory footprint (RSS and stack usage), and execution speed for both the compiler proper and the optimized pipelines. When evaluating a pull request, a clear visualization can ensure you notice whether there is any metric changed at a glance.</p>
Mentors: Student: Evan Lee
<p>Halide is a programming language that facilitates writing high-performance image processing pipelines. Its compiler internally uses a Term Rewriting System (TRS) in order to simplify complex expressions, which comprises over a thousand handwritten rewrite rules added by human compiler engineers. In order to strengthen the TRS by finding new rules that can rewrite input expressions that the TRS currently fails to simplify, a synthesizer was used to automatically generate 4127 verifiably sound rules. Experiments have shown that adding these rules lowers peak memory usage by up to 50%, while having relatively insignificant impact on runtime performance. However, adding every such rule increases compile-time and compiler code size. This project aims to address this problem by incrementally testing and assessing each rule and subsets of the rules, while adding them to the compiler only if they necessarily contribute to the peak memory reductions shown in the experiment or other improvements in performance.</p>