-
Notifications
You must be signed in to change notification settings - Fork 166
Buddy Compiler Open Projects
Currently, we provide 4 open projects in the following two directions.
- Description
We want to introduce the following 3 domain-specific MLIR dialects in the buddy compiler: Digital Image Processing (DIP), Audio Signal Processing (ASP), and Point Cloud (PC). Participants can choose 1~2 operations in a specific dialect to contribute. All projects in this direction will have a similar workflow.
(1) Data Structure Definition: Participants should add domain-specific data structure to interoperate with MLIR memory reference C/C++ data structure. For example, the MemRef constructor can work with OpenCV's Mat data structure (see here for more details).
(2) Operation Implementation: Participants should define their chosen operations in the specific dialect and implement their respective lowering passes using MLIR.
(3) Evaluation: Participants should register their created operation's use case in buddy benchmark and evaluate end-to-end cases against SOTA works in their respective domain. For example, we compare the Buddy Corr2D and OpenCV Filter2D in our benchmark framework (see here for more details).
There are 7 morphological operations which can be implemented for this project: Erosion, Dilation, Opening, Closing, Morphological Gradient, Top Hat, and Black Hat.
- Expected outcomes: 1~2 morphological transformation operations and lowering passes.
- Skills required: Excellent C/C++ skills, basic understanding of MLIR, Image Processing domain knowledge
- Possible mentors: Hongbin Zhang, Prathamesh Tagore
- Duration: 175 hours for each operation
- Difficulty rating: Hard
Participants should add noise suppression operation and related end-to-end support for noise suppression cases.
- Expected outcomes: noise suppression operations and lowering passes.
- Skills required: Excellent C/C++ skills, basic understanding of MLIR, Audio Processing domain knowledge
- Possible mentors: Hongbin Zhang
- Duration: 175 hours for each operation
- Difficulty rating: Hard
Participants should add point cloud specific convolution operation and related end-to-end support.
-
Expected outcomes: point cloud specific convolution operation and lowering pass.
-
Skills required: Excellent C/C++ skills, basic understanding of MLIR, basic domain knowledge
-
Possible mentors: Hongbin Zhang
-
Duration: 175 hours for each operation
-
Difficulty rating: Hard
- Description: Optimize existing convolution and GEMM operations using vectorization. You can refer to the algorithm here.
- Expected outcomes: A vectorized convolution or a vectorized GEMM operation.
- Skills required: Good C++ coding skills, basic understanding of MLIR and vectorization.
- Possible mentors: Liutong Han, Hongbin Zhang
- Duration: 175 hours for each operator (convolution/GEMM), 350 hours for both
- Difficulty rating: Hard