Hi, I'm Shreyas.

Compiler engineer and systems geek.

Scroll

Shreyas Hegde

Compiler enthusiast, systems geek.

I build compilers, GPU runtimes, and low-level tools, currently deep in LLVM, heterogeneous dispatch, and making GPU kernels fast in Julia.

GSoC'26 @ JuliaGPUResearch Intern @ IIT KanpurContributor @ GCC Rust

Experience

JuliaGPU: GSoC'26 Mentee / Maintainer
Remote
  • Maintainer of JuliaGPU, an organisation implementing vendor-specific and vendor-agnostic GPU/GPGPU kernels in Julia.
  • Google Summer of Code mentee adding vendor-agnostic kernels in AcceleratedKernels.jl.
  • Optimising KernelAbstractions.jl so vendor-agnostic kernels nearly match vendor-specific performance.
Indian Institute of Technology, Kanpur: Research Intern
Hybrid
  • Heterogeneous dispatch systems for CPU / GPU / QPU.
  • Cache warming and prediction-based dispatch.

Projects

A few things I've built or actively contribute to, pulled straight from GitHub with live stars.

Open Source Contributions

JuliaGPU/AcceleratedKernels.jlfeat(reverse): reverse a linear sub-range via start/stopopenJuliaGPU/AcceleratedKernels.jlperf(reverse): use a dedicated kernel for the dims reversalopenJuliaGPU/AcceleratedKernels.jlAdd dims support to sort, sort!, sortperm and sortperm!openJuliaGPU/AcceleratedKernels.jlFix DecoupledLookback with a device-scope memory fencemergedJuliaGPU/AcceleratedKernels.jlfeat(findall): Add findall kernelopenJuliaGPU/AcceleratedKernels.jlfeat(reverse): Add dims support to reverseopenJuliaGPU/AcceleratedKernels.jlfix(accumulate): keep GPU scans uniform and non-divergent across backendsclosedJuliaGPU/AcceleratedKernels.jlMake GPU scans process multiple items per threadmergedJuliaGPU/AcceleratedKernels.jlMake GPU reductions process multiple items per threadmergedJuliaGPU/AcceleratedKernels.jlReduce: vectorize contiguous by-block loadsmergedJuliaGPU/AcceleratedKernels.jlci(opencl): run POCL under --check-bounds=auto; skip scan on POCLclosedJuliaGPU/AcceleratedKernels.jlFix OpenCL/POCL CI: run under --check-bounds=auto, skip scan on POCLclosedJuliaGPU/AcceleratedKernels.jlAdd reverse! and reversemergedJuliaGPU/AcceleratedKernels.jlFix DecoupledLookback cross-block coherence (completes #91)closedJuliaGPU/AcceleratedKernels.jlOptimize Radix sortmergedJuliaGPU/AcceleratedKernels.jlOptimize GPU radix sort: ballot kernels, fused range, skip-pass, tuningclosedJuliaGPU/KernelAbstractions.jlfeat(intrinsics): add KI.vload / KI.vstore! for wide vector memory operationsopenJuliaGPU/AcceleratedKernels.jlAdd opt-in GPU radix sort via sort alg keywordmergedJuliaGPU/GPUArrays.jlDelegate mapreducedim! to AcceleratedKernels.jlopenJuliaGPU/AcceleratedKernels.jlExpand dimensional mapreduce / reducemergedJuliaGPU/cuTile.jlSubtype AbstractArray for TileArrayclosedJuliaGPU/GPUArrays.jlfeat: add GPU-native kron support for Diagonal matricesmergedJuliaGPU/cuTile.jlAdd alias-aware token threading for memory operationsmergedJuliaGPU/GPUArrays.jlSpecialize ReshapedArray to resolve setindex! ambiguitiesmergedJuliaGPU/GPUArrays.jlfeat: Implement issorted for AbstractGPUArray without scalar indexingmergedRust-GCC/gccrsgccrs: avoid ICE when canonical path record is missingopenRust-GCC/gccrsgccrs: Fix ICE in no input fileopenRust-GCC/gccrsgcc: Prevent ICE on no input fileclosedJuliaLang/juliaFix OutOfMemory in arrayshow with unsigned indicesopenEmscripten/emscripten[memoryprofiler] Add CSS class to parent divmerged

Posts

Achievements

Selected: Google Summer of Code 2026

The Julia Language.

1st place: Aegis Sandbox 2.0

Designed a compiler that injects vulnerabilities into every binary it compiles, plus a tool to test the integrity of the compiler.

Runner-up: HackNockturne 2.0

A solution to safely process DICOM files from medical imaging devices using SiMG, a custom binary, for comparison and processing.

Skills

Languages
CC++ZigJuliaBashTypeScript
Compilers
LLVM / ClangGCC / GDBCMakeMake
Tooling
GitGitHubLinux

Education

Dayananda Sagar College of Engineering
B.E., Information Science and Engineering · GPA 9.8/10 · Bengaluru, India

Contact

Want to build something together?

shreyashegde@acm.org