Hi all, Working with great Graphite developers, I have finished this summer's GSoC project. So I think it's time to summarize this summer's work and plan next.
For details about autopar in Graphite, you could refer to this page: http://gcc.gnu.org/wiki/Graphite/Parallelization and this page: http://gcc.gnu.org/wiki/AutoparRelated I blog here for this project: http://summergraphite.blogspot.com/ Here is a short summary. * Current status: First step of autopar in Graphite has been done. You can trigger it by 2 flags -floop-parallelize-all -ftree-parallelize-loops=4. Both of them are needed, the first flag will trigger Graphite pass to mark loops that can be parallel and the second flag will trigger the code generation part. Now Autopar in Graphite can handle loops: 1. Common loops without dependency (Checking dependency under polyhedral model). 2. Loops with if statement. 3. Some of the triangle loops. * Limitations (To be enhanced) 1. Code generation only works for the innermost. 2. We can not handle all the triangle loops. 3. Missing reduction support. * Open projects 1. Heuristics for automatic parallelization. 2. Parallelize non innermost loops. 3. Handle reductions in graphite 4. Advanced automatic parallelization. (For details about these open projects, you could refer to this page: http://gcc.gnu.org/wiki/Graphite/Parallelization ) * Plan next This project is only the first step of my contribution to GCC communicy, so I will continue my working with Graphite developers for later works. It's really fun to work together, and discuss together, so if you also interested in Graphite development, just leave us a post in our maillist. To Graphite developers, I would say it's really great to work with you guys, and thanks for your great help. Let's keep our good working goes on. :) Cheers, Li