Google Summer of Code Project

Welcome to our GSoC 2023 Project - GPU Acceleration for PDE Solvers.

Here we share updates and insights about Google Summer of Code 2023 and the development journey of our project. Stay tuned for the latest on our progress!

About Project

This project, supported by Julia and Google, focuses on accelerating the partial differential equation (PDE) discretization process by parallel programming. The project serves as a GPU accelerator for Trixi.jl, employing CUDA.jl (with support for AMDGPU.jl, OneAPI.jl, and Metal.jl incoming) to achieve high-performance computing.

  1. Recent Announcements
  2. Post-GSoC23
  3. GSoC23
  4. Pre-GSoC23
  5. Acknowledgments
  6. Contact Developer

Recent Announcements

Aug 5, 2024

After one year of development, the original project repository has been refactored into a dependent package named TrixiGPU.jl, primarily aimed at providing various GPU support for Trixi.jl. GPU-related tests are now conducted locally due to constrained resources. Once the package is transferred back to the trixi-framework organization, it will enable remote GPU CI testing using JuliaGPU Buildkite. The package is currently under active development and testing.

We welcome new developers. If you're interested, please contact us!

May 15, 2024

Based on the discussion, the original naive GPU implementation is planned to be optimized in the following general ways:

The primary challenge of optimization is about precision and performance (i.e., speed). Further research is required to determine how to achieve high precision and high performance at the same time.

Apr 28, 2024

GPU support requires type stability of Float32 to achieve better performance. However, type stability for Float32 is not supported in the upstream (i.e., Trixi.jl), which causes errors in some GPU kernels during compilation. We are now beginning to enhance Float32 support in the upstream:

Post-GSoC23

GSoC23

Pre-GSoC23

Acknowledgments

The entire project, along with this blog website, is developed and maintained by Huiyu(@huiyuxie). The whole project is under the guidance of two good professors, Hendrik(@ranocha) and Michael(@sloede), from trixi-framework community.

The project also received support from other Julia contributors, including Jesse(@jlchan) from trixi-framework community and Tim(@maleadt) from JuliaGPU community.

Big thanks to all those who have contributed to the development of this project!

Contact Developer

If you have questions, suggestions, or are interested in contributing, feel free to reach out our lead developer via email at huiyuxie.sde@gmail.com.