Skip to content

[GSoC 2021] Implementing New Applications in Halide

Alex Reinking edited this page Feb 17, 2021 · 1 revision

Detailed Description

The apps folder in the Halide repository already contains a list of applications. This project seeks to expand the list of applications by including new image processing, computer vision, deep learning, and physics simulation pipelines. We want to use these applications for benchmarking the Halide compiler, training the cost model of our machine learning based autoschedulers, demonstrating the capability of Halide, and understanding our compiler passes.

We plan to implement a subset of the following algorithms in Halide:

The student will first study and understand the algorithms (all algorithms above have public code available), then implement the corresponding Halide algorithms. They are encouraged to discuss with Halide developers and come up with new algorithms to implement.

Expected Outcomes

  • Implement at least two of the above listed algorithms in Halide, along with baseline Halide CPU schedules.

Optional stretch goal(s):

  • Implement more algorithms.
  • Optimize the schedules for both CPUs and GPUs.
  • Test existing Halide autoschedulers on these algorithms and compare to manually written schedules.

Required Skills

Experience in either C++ or Python is required for learning Halide. The students will need to learn to program in Halide. Depending on the types of applications to implement, basic knowledge of computer vision, computer graphics, or linear algebra are preferred but not required.

Difficulty Level

Easy if the student is already familiar with the algorithms above. Medium if not.

Mentors