Skip to content

Commit e2e7c40

Browse files
authored
Merge branch 'master' into master
2 parents ad44687 + cb75efc commit e2e7c40

File tree

7 files changed

+92
-0
lines changed

7 files changed

+92
-0
lines changed

.github/actions/spelling/allow/names.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
Abdulrasool
2+
Abdelrhman
23
Abhigyan
34
Alexandru
45
Alja
@@ -16,6 +17,7 @@ Corlay
1617
Couet
1718
Dmitry
1819
Duswald
20+
Elrawy
1921
Foco
2022
Graenitz
2123
Guilherme
@@ -90,6 +92,7 @@ Yuquan
9092
Zarytskyi
9193
aaronj
9294
aaronjomyjoseph
95+
abdelrhman
9396
abhi
9497
acherjan
9598
acherjee
@@ -119,6 +122,7 @@ daemondzh
119122
davidlange
120123
dlange
121124
efremale
125+
elrawy
122126
fransham
123127
fsfod
124128
gargvaibhav

.github/actions/spelling/allow/terms.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ cytokines
3131
gitlab
3232
gridlay
3333
gsoc
34+
gpu
3435
llm
36+
llvm
37+
pushforward
3538
linkedin
3639
microenvironments
3740
pythonized

_data/contributors.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,29 @@
338338
proposal: /assets/docs/Rohan_Timmaraju_Proposal_2025.pdf
339339
mentors: Vassil Vassilev, David Lange, Jonas Rembser, Christina Koutsou
340340

341+
- name: Abdelrhman Elrawy
342+
photo: Abdelrhman.jpg
343+
info: "Google Summer of Code 2025 Contributor"
344+
345+
education: "Master of Applied Computing, Wilfrid Laurier University, Canada"
346+
github: "https://github.com/a-elrawy"
347+
active: 1
348+
linkedin: "https://www.linkedin.com/in/elrawy/"
349+
projects:
350+
- title: "Support usage of Thrust API in Clad"
351+
status: Ongoing
352+
description: |
353+
This project enhances Clad, a Clang-based automatic differentiation tool,
354+
by enabling it to support NVIDIA's Thrust library for GPU-parallel programming.
355+
The goal is to implement custom derivative rules for Thrust primitives like
356+
`thrust::transform` and `thrust::reduce`, making it possible to differentiate
357+
high-performance CUDA code automatically. This work bridges the gap between
358+
automatic differentiation and GPU acceleration, enabling efficient gradient
359+
computations in scientific computing and machine learning workloads.
360+
proposal: /assets/docs/Abdelrhman_Elrawy_Proposal_GSoC_2025.pdf
361+
mentors: Vassil Vassilev, Alexander Penev
362+
363+
341364
- name: "This could be you!"
342365
photo: rock.jpg
343366
info: See <a href="/careers">openings</a> for more info

_pages/team/abdelrhman-elrawy.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: "Compiler Research - Team - Abdelrhman Elrawy"
3+
layout: gridlay
4+
excerpt: "Compiler Research: Team members"
5+
sitemap: false
6+
permalink: /team/AbdelrhmanElrawy
7+
8+
---
9+
10+
{% include team-profile.html %}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
title: "Supporting Thrust API in Clad"
3+
layout: post
4+
excerpt: "This summer, I am working on adding support for Thrust API in Clad, enabling automatic differentiation of GPU-accelerated code. This work bridges the gap between high-performance CUDA parallelism and source-to-source AD transformation."
5+
sitemap: false
6+
author: Abdelrhman Elrawy
7+
permalink: blogs/gsoc25_/
8+
banner_image: /images/blog/gsoc-banner.png
9+
date: 2025-05-18
10+
tags: gsoc llvm clang automatic-differentiation gpu cuda thrust
11+
---
12+
13+
## About Me
14+
15+
Hi! I’m Abdelrhman Elrawy, a graduate student in Applied Computing specializing in Machine Learning and Parallel Programming. I’ll be working on enabling **Thrust API support in Clad**, bringing GPU-accelerated parallel computing to the world of automatic differentiation.
16+
17+
## Project Description
18+
19+
[Clad](https://github.com/vgvassilev/clad) is a Clang-based tool for source-to-source automatic differentiation (AD). It enables gradient computations by transforming C++ code at compile time.
20+
21+
However, many scientific and machine learning applications leverage **NVIDIA’s Thrust**, a C++ parallel algorithms library for GPUs, and currently, Clad doesn’t support differentiating through Thrust constructs. This limits the usability of Clad in high-performance CUDA code.
22+
23+
My project addresses this gap by enabling Clad to:
24+
25+
- Recognize and handle Thrust primitives like `thrust::transform` and `thrust::reduce`
26+
- Implement **custom pullback/pushforward rules** for GPU kernels
27+
- Ensure gradients maintain **parallel performance and correctness**
28+
- Benchmark and validate derivatives in real-world ML and HPC use cases
29+
30+
## Technical Approach
31+
32+
The project begins with a **proof-of-concept**: manually writing derivatives for common Thrust operations like `transform` and `reduce`. These are compared against finite differences to validate correctness.
33+
34+
Following that, I’ll integrate custom differentiation logic inside Clad, building:
35+
- A `ThrustBuiltins.h` header for recognizing Thrust calls
36+
- Visitor pattern extensions in Clad’s AST traversal (e.g., `VisitCallExpr`)
37+
- GPU-compatible derivative utilities (e.g., CUDA-aware `thrust::fill`, `transform`)
38+
39+
I'll also implement **unit tests**, real-world **mini-apps** (e.g., neural networks), and **benchmarks** to validate and demonstrate this feature.
40+
41+
## Expected Outcomes
42+
43+
By the end of GSoC 2025, Clad will be able to:
44+
- Differentiate through key Thrust primitives with GPU execution preserved
45+
- Provide documentation and tutorials for GPU-based automatic differentiation
46+
- Contribute a robust test suite and benchmarks to the Clad ecosystem
47+
48+
## Related Links
49+
50+
- [Clad GitHub](https://github.com/vgvassilev/clad)
51+
- [Project description](https://hepsoftwarefoundation.org/gsoc/2025/proposal_Clad-ThrustAPI.html)
52+
- [My GitHub](https://github.com/a-elrawy)
Binary file not shown.

images/team/Abdelrhman.jpg

197 KB
Loading

0 commit comments

Comments
 (0)