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 / MaintainerMay 2026 to Present
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 InternMay 2025 to Present
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
Compilers
Tooling
Education
Dayananda Sagar College of EngineeringJul 2024 to Jun 2028
B.E., Information Science and Engineering · GPA 9.8/10 · Bengaluru, India
Contact
Want to build something together?
shreyashegde@acm.org













