Latest Posts

Enable Automatic Differentiation of OpenMP Programs with Clad

Jiayang Li Jiayang Li • May 26, 2025 • 1 min read

This project introduces OpenMP support to Clad, enabling automatic differentiation of multi-threaded C++ programs.

gsoc llvm clad openmp automatic-differentiation

Implementing Debugging Support for xeus-cpp

Abhinav Kumar Abhinav Kumar • May 22, 2025 • 3 min read

A GSoC 2025 project aiming at integration of debugger into the xeus-cpp kernel for Jupyter using LLDB and its Debug Adapter Protocol (lldb-dap).

gsoc c++ debugger dap clang jupyter

Implement and improve an efficient, layered tape with prefetching capabilities

Aditi Milind Joshi Aditi Milind Joshi • May 22, 2025 • 4 min read

A GSoC 2025 project focussing on optimizing Clad's tape data structure for reverse-mode automatic differentiation, introducing slab-based memory, thread safety, multilayer storage, and future support for CPU-GPU transfers.

gsoc clad clang c++

Enhancing LLM Training Efficiency with Clad for Automatic Differentiation

Rohan Timmaraju Rohan Timmaraju • May 21, 2025 • 3 min read

This GSoC project leverages Clad to optimize LLM training in C++, aiming to boost efficiency by developing a custom tensor library and integrating Clad for compiler-level gradient calculations.

gsoc c++ clang clad llm

Supporting Thrust API in Clad

Abdelrhman Elrawy Abdelrhman Elrawy • May 18, 2025 • 1 min read

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.

gsoc llvm clang automatic-differentiation gpu cuda thrust

Supporting STL Concurrency Primitives in CLAD

Petro Mozil Petro Mozil • May 18, 2025 • 2 min read

Support for STL concurrency features in CLAD is a useful feature for applications utilizing cpu threads. Many applications of autodifferentiation benefit from parallel or concurrent processing, and support for some STL concurrency primitives such as threads and basic synchronization primitives may considerably simplify the user's design.

gsoc llvm clang auto-differentiation

Advanced symbol resolution and re-optimization for Clang-Repl

Sahil Patidar Sahil Patidar • May 18, 2025 • 3 min read

Advanced symbol resolution and re-optimization for Clang-Repl is a Google Summer of Code 2025 project. It aims to improve Clang-Repl and ORC JIT by adding support for automatically loading dynamic libraries when symbols are missing. This removes the need for users to load libraries manually and makes things work more...

gsoc LLVM clang-repl ORC-JIT auto-loading

Agent-Based Simulation of CAR-T Cell Therapy Using BioDynaMo

Salvador de la Torre Gonzalez Salvador de la Torre Gonzalez • May 14, 2025 • 2 min read

This GSoC 2025 project, Agent-Based Simulation of CAR-T Cell Therapy, aims to develop a BioDynaMo-based model to simulate CAR-T cell dynamics and interactions. The goal is to provide researchers with a tool to evaluate therapy efficacy and identify strategies to enhance treatment outcomes.

gsoc BioDynaMo c++

Using ROOT in the field of genome sequencing

Aditya Pandey Aditya Pandey • May 13, 2025 • 3 min read

A GSoC 2025 project aiming to advance genomic data management by implementing ROOT's next-generation RNTuple format for sequence alignment storage.

gsoc root genome bioinformatics

The jank programming language

Jeaye Wilkerson • Dec 20, 2024 • 9 min read

Learn about jank, the native Clojure dialect on LLVM, and how it uses Clang and CppInterOp to stand out from the pack. Discover how Clojure users develop and how jank brings that to the native world.

jank clojure clang clang-repl cppinterop

Superbuilds for ROOT: Updates

Pavlo Svirin Pavlo Svirin • Nov 05, 2024 • 3 min read

A GSoC 2024 project aimed to introduce superbuilds into ROOT

gsoc root cmake

The journey of enabling reverse-mode automatic differentiation of GPU kernels

Christina Koutsou Christina Koutsou • Nov 05, 2024 • 33 min read

A not-very-short description of the challenges faced and my overall experience

gsoc clang llvm clad cuda reverse-mode

LLVM.org Website Redesign Project Wrap Up

Chaitanya Shahare Chaitanya Shahare • Nov 04, 2024 • 3 min read

The LLVM.org website redesign project, part of GSoC 2024, aimed to modernize and enhance usability of llvm.org website for its community of developers. This initiative will streamline navigation, improve accessibility, and update content, transforming LLVM.org into a more user-friendly resource.

gsoc llvm website

Implementing Differentiation of the Kokkos Framework in Clad: Updates

Atell Yehor Krasnopolski Atell Yehor Krasnopolski • Oct 30, 2024 • 3 min read

A GSoC 2024 project aimed at implementing the differentiation of the Kokkos framework into Clad

gsoc clang llvm clad kokkos

Integrate a Large Language Model with the xeus-cpp Jupyter kernel - Final Report

Tharun Anandh Tharun Anandh • Oct 17, 2024 • 5 min read

Integrate a Large Language Model with the xeus-cpp Jupyter kernel, part of Google Summer of Code 2024, aims to integrate a large langauge model into the xeus kernel for users to interactively generate and execute code.

gsoc xeus xeus-cpp cpp llm

Wrapping up GSoC'24: Improving performance of BioDynaMo using ROOT C++ Modules

Isaac Morales Santana Isaac Morales Santana • Oct 17, 2024 • 4 min read

This project, part of Google Summer of Code 2024, aims to reduce the header parsing in BioDynaMo using the ROOT C++ Modules

gsoc root cmake c++

Wrapping Up GSoC 2024: Out-Of-Process Execution for Clang-REPL

Sahil Patidar Sahil Patidar • Oct 14, 2024 • 5 min read

Out of Process Execution for Clang-Repl project, part of Google Summer of Code 2024, aims to enhance Clang-Repl by implementing out-of-process execution. This will address issues of high resource consumption and instability, making Clang-Repl more suitable for low-power devices and more stable for developers

gsoc llvm clang-repl orc-jit llvm-jitlink-executor

Out Of Process execution for Clang-Repl

Sahil Patidar Sahil Patidar • Jul 18, 2024 • 3 min read

Out of Process Execution for Clang-Repl project, part of Google Summer of Code 2024, aims to enhance Clang-Repl by implementing out-of-process execution. This will address issues of high resource consumption and instability, making Clang-Repl more suitable for low-power devices and more stable for developers

gsoc llvm clang-repl orc-jit llvm-jitlink-executor

Optimizing automatic differentiation using activity analysis

Maksym Andriichuk Maksym Andriichuk • Jun 25, 2024 • 2 min read

IRIS-HEP project aimed to optimize automatic differentiation using activity analysis

iris-hep clang llvm clad

Differentiating electromagnetic showers in a sampling calorimeter

Max Aehle • Jun 07, 2024 • 2 min read

Report on our work to apply algorithmic differentiation to the simulation codes G4HepEm/HepEmShow

ad

Support for constexpr and consteval in Clad

Mihail Mihov Mihail Mihov • Jun 05, 2024 • 2 min read

A GSoC 2024 project with the goal of adding support for constant expressions to Clad

gsoc clad clang c++

Superbuilds for ROOT

Pavlo Svirin Pavlo Svirin • May 31, 2024 • 2 min read

A GSoC 2024 project with goal to split ROOT into separate components and thus speed up its compilation

gsoc root cmake

Integrate a Large Language Model with the xeus-cpp Jupyter kernel

Tharun Anandh Tharun Anandh • May 30, 2024 • 2 min read

Integrate a Large Language Model with the xeus-cpp Jupyter kernel, part of Google Summer of Code 2024, aims to integrate a large langauge model into the xeus kernel for users to interactively generate and execute code.

gsoc xeus xeus-cpp cpp llm

Enable CUDA Compilation on Cppyy-Numba generated IR

Riya Bisht Riya Bisht • May 30, 2024 • 6 min read

Enable CUDA Compilation on Cppyy-Numba generated IR project, part of Google Summer of Code 2024, aims to demonstrate Cppyy's capability to provide CUDA paradigms to Python users without any compromise in performance.

gsoc cuda numba llvm cppyy

Implementing Differentiation of the Kokkos Framework in Clad

Atell Yehor Krasnopolski Atell Yehor Krasnopolski • May 26, 2024 • 2 min read

A GSoC 2024 project aimed at implementing the differentiation of the Kokkos framework into Clad

gsoc clang llvm clad

Enabling reverse-mode automatic differentiation of GPU kernels

Christina Koutsou Christina Koutsou • May 18, 2024 • 7 min read

Nowadays, the rise of General Purpose GPU programming has caused more and more tools used by the scientific community to adjust to GPU's architecture. This project aims to allow `Clad` to ride that tide and broaden its use-range by enabling reverse-mode automatic differentiation of CUDA kernels.

gsoc clang llvm clad cuda reverse-mode

LLVM.org Website Redesign Project Introduction

Chaitanya Shahare Chaitanya Shahare • May 11, 2024 • 3 min read

The LLVM.org website redesign project, part of Google Summer of Code 2024, aims to modernize and enhance usability for its community of developers. This initiative will streamline navigation, improve accessibility, and update content, transforming LLVM.org into a more user-friendly resource.

gsoc llvm website

Code Completion in Clang Repl

Yuquan (Fred) Fu Yuquan (Fred) Fu • Sep 18, 2023 • 4 min read

Clang-Repl, featuring a REPL(Read-Eval-Print-Loop) environment, allows developers to program in C++ interactively. It is a C++ interpreter built upon the Clang and LLVM incremental compilation pipeline. One of the missing upstream features in Clang-Repl is the ability to propose options for automatically completing user input or code completion. Sometimes, C++...

gsoc clang llvm

Driving Collaboration in Documentation: Google Season of Docs 2023

QuillPusher QuillPusher • May 10, 2023 • 2 min read

A review of the documentation efforts in 2023, powered by Google's Season of Docs initiative. An audit of the existing documentation was done to identify gaps and potential areas of improvement. Our main areas of focus were: Automatic Differentiation applications (using Clad, e.g. in RooFit and Floating-Point Error Estimation), and...

gsod documentation llvm root clang-repl cppyy

Shared Memory Based JITLink Memory Manager

Anubhab Ghosh Anubhab Ghosh • Dec 07, 2022 • 5 min read

LLVM JIT APIs include JITLink, a just-in-time linker that links together objects code units directly in memory and executes them. It uses the JITLinkMemoryManager interface to allocate and manage memory for the generated code. When the generated code is run in the same process as the linker, memory is directly...

gsoc llvm jitlink memory-manager

Recovering from Errors in Clang-Repl and Code Undo

Jun Zhang Jun Zhang , Purva Chaudhari Purva Chaudhari • Dec 02, 2022 • 5 min read

Incremental C++ enables exploratory programming by considering the translation unit to be an ever-growing entity. This allows implementation of interpreter-like tools such as Cling and Clang-Repl, which consume C++ code piece by piece and use the JIT infrastructure to run each piecewise. One of the challenges of Incremental C++ is...

gsoc clang llvm

Extend Clang to Resugar Template Specialization Accesses

Matheus Izvekov Matheus Izvekov • Nov 30, 2022 • 3 min read

Clang is an LLVM native C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, extremely useful error and warning messages and to provide a platform for building great source level tools. The Clang Static Analyzer and clang-tidy are tools that automatically find bugs in your code, and are great examples...

gsoc clang llvm