Skip to content
View adit4443ya's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report adit4443ya

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
adit4443ya/README.md
Terminal: Aditya Trivedi, compiler engineer on the ARM LLVM team at Qualcomm, Hyderabad

LinkedIn Portfolio GSoC Blog Forge


I'm a compiler engineer on the ARM LLVM team at Qualcomm. My job is getting machines to run code faster, then checking that the speedup is real.


What I work on

  • LLVM backends: AArch64. I read IR and assembly until one of us blinks. NEON, SVE, SME.
  • MLIR and ClangIR. I lower things one dialect at a time, upstream and in public, with reviewers.
  • OpenMP, MPI and GPU offload. Teaching N cores to argue productively. In Google Summer of Code '25 I built OpenMP 6.0 infrastructure and GPU offloading for LFortran.
  • HPC research. Parallel graph algorithms, four publications. Graphs are matrices in denial, but BIG data indeed.
  • Fortran. Older than my dependencies, faster than my opinions.

Tools: C++ · LLVM · MLIR · AArch64 asm · OpenMP · MPI · CUDA · Fortran


Flowchart: is it a compiler bug? If it persists at -O0, it's your bug. If sanitizers fire, it's undefined behavior. Otherwise reduce it, bisect the pass and file it upstream.

Known issues

$ man aditya | grep -A10 "KNOWN ISSUES"

  - asks "what was the baseline?" at parties
  - says "it's memory-bound" a lot. is right about as often as anyone
  - has opinions on phase ordering and nobody to share them with
  - will tell you your loop didn't vectorize because of the if-condition.
    his own didn't either. we're fine.
  - found out sanitizers can quietly stop the vectorizer. filed the
    upstream issue. is not proud of how long it took.
  - considers printf() a debugger for people who trust themselves
  - believes Fortran was fast in 1957 and still is. cope.

Bar chart: a noisy laptop run shows 3.20x, a cleaner run shows 0.92x, a properly controlled run shows the real 1.04x

Side quest: Forge

Forge is a practice gym for compiler, systems and low-latency engineers.

  • 120 problems and 64 guided labs covering compilers, systems and performance work.
  • Hints, patterns and solutions are timed. They unlock only after you've had a real go, and Forge remembers what you peeked at.
  • A market-making game, because why not.

Open Forge


Contribution graph

Snake eating my GitHub contribution graph

Say hi

Want to talk about vectorizers, AArch64 codegen, OpenMP or a benchmark you don't quite trust? Message me on LinkedIn.


measure twice, optimize once.

Pinned Loading

  1. lfortran lfortran Public

    Forked from lfortran/lfortran

    Forked

    C++

  2. MIPS-Simulator MIPS-Simulator Public

    C++ 1

  3. Multi-Threaded-Crawling Multi-Threaded-Crawling Public

    C++ 3

  4. POT3D POT3D Public

    Forked from predsci/POT3D

    POT3D: High Performance Potential Field Solver

    Fortran

  5. WorkHub-Pro WorkHub-Pro Public

    Forked from rahulrangers/WorkHub-Pro

    Project and Task Management Solution

    Kotlin

  6. c_mpi c_mpi Public

    Forked from lfortran/fortran_mpi

    Fortran