Skip to content

Commit 22d4247

Browse files
Rabab AlomairyRabab Alomairy
authored andcommitted
update readme file
1 parent bfc8c07 commit 22d4247

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

parts/gpu/README.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,34 @@ If you're looking for an introductory overview of GPU programming in Julia or GP
1919

2020
## Heat Diffusion Simulation Using Julia
2121

22-
This [notebook](https://github.com/JuliaParallel/julia-hpc-tutorial-sc24/blob/main/parts/gpu/Heat_Diffusion.ipynb) introduces the heat diffusion problem using a finite difference method, demonstrating stencil computations optimized for GPU acceleration in Julia. It highlights performance gains from parallel computing, showcasing Julia's capabilities for efficient numerical simulations on GPUs.
22+
This [notebook](https://github.com/JuliaParallel/julia-hpc-tutorial-sc24/blob/main/parts/gpu/Heat_Diffusion.ipynb) demonstrates the implementation of a 2D heat diffusion model using Julia, showcasing GPU acceleration with CUDA.jl and support for both CPU and GPU execution using KernelAbstractions.jl. It highlights efficient solutions for partial differential equations (PDEs).
23+
24+
### Benchmarking Results
25+
26+
The notebook presents a series of benchmarks comparing execution times across different configurations:
27+
28+
1. **CPU Implementation**
29+
- Utilizes Julia's native array operations.
30+
- Serves as a baseline for performance comparison.
31+
32+
2. **GPU Implementation with `CUDA.jl`**
33+
- Employs `CUDA.jl` for direct GPU programming.
34+
- Demonstrates significant speedup over the CPU version.
35+
36+
3. **GPU Implementation with `KernelAbstractions.jl`**
37+
- Uses `KernelAbstractions.jl` to write code that can run on both CPU and GPU.
38+
- Offers flexibility with performance close to the `CUDA.jl` implementation.
39+
40+
41+
42+
### Key Takeaways
43+
44+
- **Performance Gains:** GPU implementations, both with `CUDA.jl` and `KernelAbstractions.jl`, exhibit substantial performance improvements over the CPU version, highlighting the advantages of GPU acceleration for computationally intensive tasks like heat diffusion.
45+
46+
- **Flexibility vs. Performance:** While `CUDA.jl` provides optimal performance for NVIDIA GPUs, `KernelAbstractions.jl` offers a more flexible approach, allowing code to run on multiple backends (CPU, GPU) with minimal changes, albeit with a slight performance trade-off.
47+
48+
- **Ease of Use:** Both packages integrate seamlessly with Julia, enabling efficient development of high-performance applications without sacrificing code readability or maintainability.
49+
2350

2451
## Gray-Scott Reaction-Diffusion Model Using Julia
2552
This [notebook](https://github.com/JuliaParallel/julia-hpc-tutorial-sc24/blob/main/parts/gpu/stencil.ipynb) introduces Gray-Scott Reaction-Diffusion model using Julia.

parts/gpu/img/benchmarking.png

33.5 KB
Loading

0 commit comments

Comments
 (0)