About

I find out where the time, the cost and the failures actually go, and I publish the measurement so someone else can re-run it. The subject has changed four times; the question has not.

2007–2011, Pune

B.Tech at the College of Engineering, Pune.

2011–2017, Bangalore

MSc and PhD at the Indian Institute of Science, in high-performance computing, parallel algorithms and numerical methods. The physics was statistical thermodynamics and fluid dynamics; the work was making particle simulations run on many nodes and trusting the numbers they produced. Three peer-reviewed papers came out of it (J. Chem. Phys. 2020 and 2015, Phys. Rev. E 2013; ORCID 0000-0003-4516-4415).

2018–2024, SankhyaSutra Labs

A Monte Carlo particle simulator (DSMC) in C++ and MPI, owned from the first line to release and, for the last stretch, as tech lead. It ran sourceSankhyaSutra Labs internal benchmark (2018–2024), résuméchecked2026-09-21kindself-reported faster than Sandia’s SPARTA on the same hardware and problem. The speedup came from profiling, which found cache misses and load imbalance, and from redesigning the particle layout and the collision algorithm around what the profile showed. It scaled past 100sourcerésumé, SankhyaSutra Labschecked2026-09-21kindself-reported nodes. One thing did not work: a space-filling-curve partitioning scheme, implemented and measured, was abandoned for its communication cost.

2024–, AMD

Senior Member of Technical Staff on uProf, the profiler AMD’s compiler, runtime and silicon teams use when a performance problem has to be attributed to one layer. I built out its tracing for multi-node MPI and OpenMP runs, and I spend much of my time reading compiler-generated code for vectorisation failures and memory stalls, then taking the finding back to the compiler or architecture team with a reproducer and a cost.

2026, the compiler itself

The profiler kept pointing at the compiler, so I went there. A small MLIR compiler for the operations that dominate dense inference (matmul, bias, activation) with fusion, tiling and an int8 type, whose kernel reached 64 GFLOP/ssourcerésumé, "ML Compiler and Inference Performance (2026)"checked2026-09-21hardwarenot recorded on the résumé; add it before this goes on a pagekindself-reported on one core, 2.4×sourcerésumé, "ML Compiler and Inference Performance (2026)"checked2026-09-21kindself-reported a hand-tuned blocked C baseline. I predicted the number from a machine model before measuring it; where model and hardware disagreed was a cache-capacity cliff a single-level model cannot express. Reading the production MLIR lowering stack, one vector.contract lowering choice made the same kernel ≈6×sourcerésumé, "Codegen analysis of the production MLIR lowering stack"checked2026-09-21hardwareARM64kindself-reported slower. Then upstream: pull requests to LLVM/MLIR and Spack, 8 pull requests, 5 mergedsourcesrc/data/prs.json (tools/fetch_prs.py)checked2026-09-23kindmeasured (the live list, with states, is on Work), and an RFC on whether vector.transfer_read should keep in_bounds, which drew 9sourcehttps://discourse.llvm.org/t/91649.jsonchecked2026-09-22commandcurl -sL https://discourse.llvm.org/t/91649.json | python3 -c "import json,sys;d=json.load(sys.stdin);print(sum(p['username']!='dhairyashilRG' for p in d['post_stream']['posts']))"kindmeasured replies from the vector dialect maintainers. The in_bounds project page has the measurement and the mistake.

2026, AI agents

The same question one layer up. When an agent fails, is slow or costs too much, does the model own it or the code around it? A video series and four studies answer that with run ledgers anyone can open: context policy, prompt-injection defences, LLM judges, and local models on one Mac. In the security study the same public injection succeeded 2 to 35 of 97sourcenext_series/T02_agent_security/series/FACTS.md in dhairyashilRG/agent-harnesses-2026checked2026-09-19kindmeasured times across five models with no defence at all. Details on Videos.

How this site was made

The words are mine and every number carries a receipt: a source, a date checked and, where one exists, a command. AI coding agents helped build the site’s code and checks and drafted copy to a written style guide; the measurements, the pull requests and the mistakes are my own. The site is a public repository; its rules for changing anything are in it.

Contact: hello@dhairyashilrg.dev · GitHub · LinkedIn · YouTube · ORCID 0000-0003-4516-4415 · Scholar

Updated 2026-09-22 · Markdown