- Ph.D., Universtiy of Pennsylvania
Advisors: Rajeev Alur, Joseph Devietti
Dissertation: Static Analysis for GPU Program Performance
- B.Tech., Indian Institute of Technology, Kanpur
Dissertation: Concurrent Games on Pushdown Automata
- Software Engineer, EBay (April 2021 - Present): Developing infrastructure to incorporate new platforms / systems for retrieval expansion in Search (C++).
- Consultant, Facebook (September 2020 - April 2021): Developed kernels for an ML Inference Hardware (C).
- Developed low-level C kernels to exercise various operators from ML languages on the platform in a performant way.
- Communicated with teams across the H/W stack to help debug issues in the kernels and the simulation hardware.
- Automated the system for generating piece-wise approximations for computing non-linear functions on the platform.
- Software Engineer, Google (October 2018 - July 2020): Worked on performance analysis for platforms within Google.
- Developed and maintained internal and open-source benchmarks used to evaluate performance of different servers (Python).
- Piloted a server platform with a new memory technology to show viability of the platform within Google.
- Developed simulation infrastructure in C++ to analyze the impact of new server platforms. Also developed unified
methodology to build simulation frameworks and to port the existing simulators onto the methodology.
- Software Engineer, IBM Research, India (July 2010 - June 2013): Worked on two projects:
- Automating Test Automation: Led the development of the backend (runtime engine) for a research tool to automate testing
of web-applications. Innovated the backend with change-resilient representation of web-page objects that provided robust
test script generation with the tool.
- Scalable Symbolic Bug Detection: Developed a research prototype using SMT solvers to validate bugs within large software.
The prototype was written in Java and built using WALA - a program analysis framework for Java Bytecode programs. It
incorporated various techniques like lazy exploration, term rewriting-based expression simplification to scale the technique
of symbolic execution to large programs.
- Research Intern, Bell Labs (June -August 2015): Worked on user-specifed and formally-verified loop optimizations.
- Software Engineering Intern, Google (June - September 2017): Developed a framework to automatically generate small stubs for Andriod framework.
- Intern, Microsoft Research (May - July 2009): Worked on approximating floating point data type with integer data types for energy efficient
- Intern, NVidia (May - June 2008): Worked on a scaling performance of benchmark suites across multiple GPUs across the generations.
FMSD 2021: Static analysis for detecting uncoalesced accesses in GPU programs, Rajeev Alur, Joseph Devietti, Omar Navarro Leija, and Nimit Singhania.
SAS 2018: Block-Size Independence of GPU Programs, Rajeev Alur, Joseph Devietti, and Nimit Singhania.
CAV 2017: GPU Drano: Detecting Uncoalesced Accesses in GPU Programs, Rajeev Alur, Joseph Devietti, Omar Navarro Leija, and Nimit Singhania.
SAS 2016: Loopy: Programmable and Formally Verified Loop Transformations, Kedar S Namjoshi and Nimit Singhania.
CSL 2016: Hedging bets in Markov decision processes, Rajeev Alur, Marco Faella, Sampath Kannan, and Nimit Singhania.
EMSOFT 2014: Precise Piecewise Affine Models from Input-Output Data, Rajeev Alur and Nimit Singhania.
CAV 2012: Alternate and Learn: Finding witnesses without looking all over, Nishant Sinha, Nimit Singhania, Satish Chandra, and Manu Sridharan.
FSE 2012 Tool Paper: Efficiently scripting change-resilient tests, Suresh Thummalapenta, Nimit Singhania, Pranavadatta Devaki, Saurabh Sinha, Satish Chandra, Achin K Das, and Srinivas Mangipudi.