Loading... Avik Chaudhuri

Software Engineer, Meta (contact)
[Twitter] [LinkedIn] [Google Scholar]

Work Experience

PyTorch Ahead-of-Time Compiler (@Meta). I am currently leading the development of PyTorch Export, a core mechanism that enables sound whole-graph capture of PyTorch models, building on the technological breakthroughs of the new PyTorch Compiler stack. PyTorch Export, in combination with Executorch, powers AI Inference in some of our Meta Reality Labs devices (including automatic speech recognition shipped in Ray Ban | Meta smart glasses and, coming soon, hand tracking in Quest 3 VR headsets). Through AOTInductor, it is also driving some of our next-generation serving use cases. PyTorch Export goes beyond the traditional "eager" mode of PyTorch by unlocking the ability to execute in Python-free environments and the freedom to do special-purpose optimizations for customized hardware.

AI for Compilers (@Meta). I briefly explored applications of machine learning to program analysis and transformation, with a particular focus on code optimization, where manual heuristics can be replaced by models. Specifically, I lead a team at Meta that is working on applying machine learning to make tensor programs run faster on GPUs through improvements in the new PyTorch compiler stack (TorchInductor + Triton).

AI Infrastructure (@Meta). Until recently I was leading an ambitious company-wide initiative to build a platform and ecosystem for end-to-end machine learning development at Meta, applying programming-language principles and techniques to solve fundamental productivity and governance problems. This included an expressive language for describing pipelines of data transformations with static verification, parallelization, memoization, and dependency tracking (think Dagster + TorchArrow); over which standard interfaces and a marketplace of privacy-aware components were built for data analysis, feature engineering, model training, and evaluation; which in turn fed into tools that vastly improved experimentation and automation.

JavaScript Typechecker (@Meta). I also created Flow, a popular open-source type checker for JavaScript that is used by thousands of developers on millions of lines of code every day at Meta. Flow pioneered several advanced type inference idioms that were later adopted by other type systems for JavaScript, PHP, and Python, and is characterized by its focus on soundness and scalability.

ActionScript Language and Runtime (@Adobe). Before joining Meta, I was heavily involved in building the future of the ActionScript language and the Flash platform at Adobe, and for a while, served on the JavaScript standardization committee.


Academia

I have published research in many areas of programming languages, including type systems, concurrency control, logic, code optimization, and security analysis. Prior to joining the industry, I worked in the Programming Languages group at University of Maryland as a post-doctoral research associate. I earned a PhD under the tutelage of Martín Abadi, and I did undergraduate studies in Computer Science and Engineering at IIT Delhi. In between, I have spent various summers at MSR, NICTA, and INRIA.

Program Committees

ICFP 2019 - ML Workshop / PLDI 2018 / POPL 2017 / SPLASH 2017 - Industry Track (co-chair) / POPL 2016 / FSTTCS 2015 / ECOOP 2015 - STOP Workshop / ESOP 2014 / SPLASH 2014 - Student Research Competition / POPL 2013 / ECOOP 2012 - STOP Workshop / PLDI 2012 - PLAS Workshop / CCS 2011 / PLDI 2010 - PLAS Workshop / CCS 2008 - FMSE Workshop

Invited Talks and Tutorials

CurryOn 2017 / POPL 2017 (Flow tutorial) / PLAS 2016 / WSCR 2016 / SPLASH-I 2015 / STOP 2015 / PLDI 2012 (ActionScript tutorial)

Papers

[10/19] Optimizing and evaluating transient gradual typing
[with Michael Vitousek and Jeremy Siek]
Proc. 15th ACM Symposium on Dynamic Languages, Athens, Greece (DLS 2019), pp. 28-41.
[10/17] Fast and precise type checking for JavaScript
[with Panagiotis Vekris, Sam Goldman, Marshall Roch, and Gabriel Levi]
Proc. ACM Programming Languages, Volume 1, Issue OOPSLA, Article 48, pp. 1-30 (OOPSLA 2017).
[12/12] Types and Access Controls for Cross-Domain Security on Flash
[with Aseem Rastogi and Rob Johnson]
Proc. 10th Asian Symposium on Programming Languages and Systems, Kyoto, Japan (APLAS 2012), pp. 82-97.
[01/12] The Ins and Outs of Gradual Type Inference
[with Aseem Rastogi and Basil Hosmer]
Proc. 39th ACM Symposium on Principles of Programming Languages, Philadelphia, USA (POPL 2012), pp. 481-494.
[10/11] The Impact of Optional Type Information on JIT Compilation of ally Typed Languages
[with Mason Chang, Bernd Mathiske, Edwin Smith, Andreas Gal, Michael Bebenita, Christian Wimmer, and Michael Franz]
Proc. 7th ACM Symposium on Dynamic Languages, Portland, USA (DLS 2011), pp. 13-24.
[01/11] Dynamic Inference of Static Types for Ruby
[with David An, Jeffrey Foster, and Michael Hicks]
Proc. 38th ACM Symposium on Principles of Programming Languages, Austin, USA (POPL 2011), pp. 459-472.
[10/10] Symbolic Security Analysis of Ruby-on-Rails Web Applications
[with Jeffrey Foster]
Proc. 17th ACM Conference on Computer and Communications Security, Chicago, USA (CCS 2010), pp. 585-594.
[02/10] Liberalizing Dependency
Technical Report, Computing Research Repository.
[11/09] SCanDroid: Automated Security Certification of Android Applications
[with Adam Fuchs and Jeffrey Foster]
Technical Report, University of Maryland.
[11/09] Static Typing for Ruby on Rails
[with David An and Jeffrey Foster]
Proc. 24th IEEE/ACM Conference on Automated Software Engineering, Auckland, New Zealand (ASE 2009), pp. 590-594.
[09/09] PCAL: Language Support for Proof-Carrying Authorization Systems
[with Deepak Garg]
Proc. 14th European Symposium on Research in Computer Security, Saint Malo, France (ESORICS 2009), pp. 184-199.
[08/09] A Concurrent ML Library in Concurrent Haskell
Proc. 14th ACM International Conference on Functional Programming, Edinburgh, Scotland (ICFP 2009), pp. 269-280.
[06/09] Language-Based Security on Android
Proc. 4th ACM Workshop on Programming Languages and Analysis for Security, Dublin, Ireland (PLAS 2009), pp. 1-7.
[12/08] Foundations of Access Control for Secure Storage
PhD Dissertation, University of California, Santa Cruz, USA.
[10/08] EON: Modeling and Analyzing Dynamic Access Control Systems with Logic Programs
[with Prasad Naldurg, Ganesan Ramalingam, Sriram Rajamani, and Subbu Velaga]
Proc. 15th ACM Conference on Computer and Communications Security, Alexandria, USA (CCS 2008), pp. 381-390.
[06/08] On Secure Distributed Implementations of Dynamic Access Control
Proc. LICS/CSF Joint Workshop on Computer Security, Pittsburgh, USA (FCS-ARSPA-WITS 2008), pp. 93-107.
[06/08] A Type System for Data-Flow Integrity on Windows Vista
[with Sriram Rajamani and Prasad Naldurg]
Proc. 3rd ACM Workshop on Programming Languages and Analysis for Security, Tucson, USA (PLAS 2008), pp. 89-100.
(Also appears in ACM SIGPLAN Notices, 43(12):9-20, as one of "the top two papers of PLAS 2008".)
[05/08] Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage
[with Bruno Blanchet]
Proc. 29th IEEE Symposium on Security and Privacy, Oakland, USA (S&P 2008), pp. 417-431.
[09/06] Formal Analysis of Dynamic, Distributed File-System Access Controls
[with Martín Abadi]
Proc. 26th IFIP Conference on Formal Methods for Networked and Distributed Systems, Paris, France (FORTE 2006), pp. 99-114.
[08/06] Dynamic Access Control in a Concurrent Object Calculus
Proc. 17th International Conference on Concurrency Theory, Bonn, Germany (CONCUR 2006), pp. 263-278.
[07/06] Secrecy by Typing and File-Access Control
[with Martín Abadi]
Proc. 19th IEEE Computer Security Foundations Symposium/Workshop, Venice, Italy (CSF 2006), pp. 112-123.
[11/05] Formal Security Analysis of Basic Network-Attached Storage
[with Martín Abadi]
Proc. 3rd ACM Workshop on Formal Methods in Security Engineering, Fairfax, USA (FMSE 2005), pp. 43-52.
[07/04] A Generic Automated Proof-Carrying Framework
Master's Thesis, Indian Institute of Technology, New Delhi, India.
[05/04] Validation of Mobile Code under Transformations
[with Sanjiva Prasad]
Technical Report, Indian Institute of Technology, New Delhi, India.
[12/03] Symbolic Forced Simulation: Interface Generation for Systems-on-Chip
[with Arcot Sowmya and Sethu Ramesh]
Technical Report, University of New South Wales, Sydney, Australia.
[05/03] Polytypic Structured Editing
[with Sanjiva Prasad]
Technical Report, Indian Institute of Technology, New Delhi, India.
[07/02] A Distributed Structured Editor for ML
[with Gérard Huet]
Technical Report, Institut National de Recherche en Informatique et Automatique, Rocquencourt, France.