-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
358 lines (350 loc) · 18.9 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
<!DOCTYPE html>
<html>
<head>
<title>Avik Chaudhuri</title>
<link rel="stylesheet" type="text/css" href="all.css">
</head>
<body>
<div>
<table border="0" cellpadding="0">
<tr>
<td>
<img width="225px" height="225px"
src="avik_hawaii.jpg" alt="Loading..."
border="1"/>
</td>
<td/><td/><td/><td/><td/>
<td valign="bottom">
<b><big><big>Avik Chaudhuri</big></big></b><br>
<br>
<i>Software Engineer, Meta</i> (<a href="mailto:[email protected]">contact</a>)<br>
[<a href="https://twitter.com/__avik">Twitter</a>] [<a href="https://www.linkedin.com/in/achaudhuri/">LinkedIn</a>] [<a href="https://scholar.google.com/citations?user=AWaNQuwAAAAJ&hl=en">Google Scholar</a>]<br>
</td>
</tr>
</table>
<hr size="2" width="100%" align="center">
<!--
<big><b>Work Experience</b></big>
<br><br>
-->
<h2>Work Experience</h2>
<p style="margin: 0.5em;">
<b>PyTorch Ahead-of-Time Compiler (@Meta)</b>.
I am currently leading the development of <a href="https://pytorch.org/docs/stable/export.html">PyTorch Export</a>, a core mechanism that enables sound whole-graph capture of PyTorch models, building on the technological breakthroughs of the <a href="https://pytorch.org/get-started/pytorch-2.0/">new PyTorch Compiler stack</a>. PyTorch Export, in combination with <a href="https://pytorch.org/executorch/stable/intro-overview.html">Executorch</a>, 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 <a href="https://static.sched.com/hosted_files/pytorch2023/74/AOTInductor_%20ahead-of-time%20compilation%20for%20PT2%20exported%20models.pdf">AOTInductor</a>, 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.
</p>
<p style="margin: 0.5em;">
<b>AI for Compilers (@Meta)</b>.
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 (<a href="https://dev-discuss.pytorch.org/t/torchinductor-a-pytorch-native-compiler-with-define-by-run-ir-and-symbolic-shapes/747">TorchInductor</a> + <a href="https://openai.com/blog/triton/">Triton</a>).
</p>
<p style="margin: 0.5em;">
<b>AI Infrastructure (@Meta)</b>.
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 <a href="https://dagster.io/blog/introducing-dagster">Dagster</a> + <a href="https://pytorch.org/torcharrow/beta/index.html">TorchArrow</a>); 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.
</p>
<p style="margin: 0.5em;">
<b>JavaScript Typechecker (@Meta)</b>.
I also created <a href="https://flowtype.org">Flow</a>, 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.</p>
<p style="margin: 0.5em;">
<b>ActionScript Language and Runtime (@Adobe)</b>.
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.
</p>
<hr style="width: 100%; height: 2px;">
<!--
<big><b>Academia</b></big>
<br><br>
-->
<h2>Academia</h2>
<p style="margin: 0.5em;">
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 <a
href="https://plum-umd.github.io/">Programming Languages</a> group
at University of Maryland as a post-doctoral research associate. I earned a PhD under the tutelage of <a
href="https://research.google/people/abadi/">Martín
Abadi</a>, and I did
undergraduate studies in <a href="http://www.cse.iitd.ernet.in">Computer
Science and Engineering</a> at <a href="http://www.iitd.ernet.in">IIT
Delhi</a>. In between, I have spent various summers at <a href="https://research.microsoft.com/en-us/labs/india/default.aspx">MSR</a>, <a href="http://www.nicta.com.au/">NICTA</a>, and <a href="http://www.inria.fr/rocquencourt/home/view?set_language=en">INRIA</a>.</p>
<!--
<p style="margin: 0.5em;">
<b><i>Program Committees</i></b>
-->
<h3>Program Committees</h3>
<p style="margin: 0.75em;">
<a href="https://icfp19.sigplan.org/home/mlfamilyworkshop-2019">ICFP 2019 - ML Workshop</a> /
<a href="https://conf.researchr.org/home/pldi-2018">PLDI 2018</a> /
<a href="http://conf.researchr.org/home/POPL-2017">POPL 2017</a> /
<a href="https://2017.splashcon.org/track/splash-2017-SPLASH-I">SPLASH 2017 - Industry Track (co-chair)</a> /
<a href="http://conf.researchr.org/home/POPL-2016">POPL 2016</a> /
<a href="http://fsttcs.org/archives/2015/">FSTTCS 2015</a> /
<a href="http://2015.ecoop.org/track/STOP2015">ECOOP 2015 - STOP Workshop</a> /
<a href="http://flint.cs.yale.edu/esop2014/">ESOP 2014</a> /
<a href="http://flint.cs.yale.edu/esop2014/">SPLASH 2014 - Student Research Competition</a> /
<a href="http://popl.mpi-sws.org/2013/">POPL 2013</a> /
<a href="http://wrigstad.com/stop12/">ECOOP 2012 - STOP Workshop</a> /
<a href="http://www.doc.ic.ac.uk/PLAS2012/">PLDI 2012 - PLAS Workshop</a> /
<a href="http://www.sigsac.org/ccs/CCS2011/">CCS 2011</a> /
<a href="http://software.imdea.org/events/plas2010/">PLDI 2010 - PLAS Workshop</a> /
<a href="http://www.cs.utexas.edu/~shmat/FMSE08/">CCS 2008 - FMSE Workshop</a>
<!--
<p style="margin: 0.5em;">
<b><i>Invited Talks and Tutorials</i></b>
-->
<h3>Invited Talks and Tutorials</h3>
<p style="margin: 0.75em;">
<a href="https://conf.researchr.org/track/curryon-2017/curryon-2017-papers#program">CurryOn 2017</a> /
<a href="https://popl17.sigplan.org/details/POPL-2017-Tutorials/1/Fast-and-Precise-Type-Checking-for-JavaScript-Are-you-in-Flow-">POPL 2017 (Flow tutorial)</a> /
<a href="https://cseweb.ucsd.edu/~dstefan/conf/plas2016/">PLAS 2016</a> /
<a href="https://www.sri.inf.ethz.ch/workshop2016">WSCR 2016</a> /
<a href="https://2015.splashcon.org/details/splash2015-splash-i/4/Flow-a-static-type-checker-for-JavaScript">SPLASH-I 2015</a> /
<a href="https://2015.ecoop.org/details/STOP2015/9/Flow-a-static-type-checker-for-JavaScript">STOP 2015</a> /
<a href="https://ecoop12.cs.purdue.edu/content/talks.html">PLDI 2012 (ActionScript tutorial)</a>
<!--
<p style="margin: 0.5em;">
<b><i>Papers</i></b>
-->
<h3>Papers</h3>
<table style="text-align: left; width: 100%; margin-left:10px" border="0" cellspacing="2"
cellpadding="2">
<tbody>
<tr>
<td style="vertical-align: top;">[10/19]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/10.1145/3359619.3359742"><b>Optimizing and evaluating transient gradual typing</b></a><br>
[with Michael Vitousek and Jeremy Siek] <br>
Proc. 15th ACM Symposium on Dynamic Languages, Athens, Greece (<a href="https://conf.researchr.org/home/dls-2019">DLS 2019</a>), pp. 28-41.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[10/17]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/10.1145/3133872"><b>Fast and precise type checking for JavaScript</b></a><br>
[with Panagiotis Vekris, Sam Goldman, Marshall Roch, and Gabriel Levi] <br>
Proc. ACM Programming Languages, Volume 1, Issue OOPSLA, Article 48, pp. 1-30 (<a href="https://2017.splashcon.org/track/splash-2017-OOPSLA">OOPSLA 2017</a>).<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[12/12]
</td>
<td style="vertical-align: top;"><a href="http://link.springer.com/chapter/10.1007%2F978-3-642-35182-2_7"><b>Types and Access Controls for Cross-Domain Security on Flash</b></a><br>
[with Aseem Rastogi and Rob Johnson] <br>
Proc. 10th Asian Symposium on Programming Languages and Systems, Kyoto, Japan (<a href="http://aplas12.kuis.kyoto-u.ac.jp/">APLAS 2012</a>), pp. 82-97.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[01/12]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/10.1145/2103656.2103714"><b>The Ins and Outs of Gradual Type Inference</b></a><br>
[with Aseem Rastogi and Basil Hosmer] <br>
Proc. 39th ACM Symposium on Principles of Programming Languages, Philadelphia, USA (<a href="http://www.cse.psu.edu/popl/12/">POPL 2012</a>), pp. 481-494.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[10/11]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/abs/10.1145/2047849.2047853"><b>The Impact of Optional Type Information on JIT Compilation of
ally Typed Languages</b></a><br>
[with Mason Chang, Bernd Mathiske, Edwin Smith, Andreas Gal, Michael Bebenita, Christian Wimmer, and Michael Franz] <br>
Proc. 7th ACM Symposium on Dynamic Languages, Portland, USA (<a href="http://www.dynamic-languages-symposium.org/dls-11/">DLS 2011</a>), pp. 13-24.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[01/11]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/10.1145/1926385.1926437"><b>Dynamic Inference of Static Types for Ruby</b></a><br>
[with David An, Jeffrey Foster, and Michael Hicks] <br>
Proc. 38th ACM Symposium on Principles of Programming Languages, Austin, USA (<a href="http://www.cse.psu.edu/popl/11/">POPL 2011</a>), pp. 459-472.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[10/10]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/10.1145/1866307.1866373"><b>Symbolic Security Analysis of Ruby-on-Rails Web Applications</b></a><br>
[with Jeffrey Foster] <br>
Proc. 17th ACM Conference on Computer and Communications Security, Chicago, USA (<a href="http://www.sigsac.org/ccs/CCS2010/">CCS 2010</a>), pp. 585-594.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[02/10]
</td>
<td style="vertical-align: top;"><a href="https://arxiv.org/abs/1004.1211"><b>Liberalizing Dependency</b></a><br>
Technical Report, Computing Research Repository.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[11/09]
</td>
<td style="vertical-align: top;"><a href="https://drum.lib.umd.edu/handle/1903/11847"><b>SCanDroid: Automated Security Certification of Android Applications</b></a><br>
[with Adam Fuchs and Jeffrey Foster] <br>
Technical Report, University of Maryland.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[11/09]
</td>
<td style="vertical-align: top;"><a href="https://www.computer.org/csdl/proceedings-article/ase/2009/3891a590/12OmNxzMnMi"><b>Static Typing for Ruby on Rails</b></a><br>
[with David An and Jeffrey Foster] <br>
Proc. 24th IEEE/ACM Conference on Automated Software Engineering, Auckland, New Zealand (<a href="https://www.se.auckland.ac.nz/conferences/ase09/">ASE 2009</a>), pp. 590-594.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[09/09]
</td>
<td style="vertical-align: top;"><a href="https://link.springer.com/chapter/10.1007/978-3-642-04444-1_12"><b>PCAL: Language Support for Proof-Carrying Authorization Systems</b></a><br>
[with Deepak Garg] <br>
Proc. 14th European Symposium on Research in Computer Security, Saint Malo, France (<a href="http://conferences.telecom-bretagne.eu/esorics2009/EN/home.php">ESORICS 2009</a>), pp. 184-199.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[08/09]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/10.1145/1596550.1596589"><b>A Concurrent ML Library in Concurrent Haskell</b></a><br>
Proc. 14th ACM International Conference on Functional Programming, Edinburgh, Scotland (<a href="http://www.cs.nott.ac.uk/~gmh/icfp09.html">ICFP 2009</a>), pp. 269-280.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[06/09]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/abs/10.1145/1554339.1554341"><b>Language-Based Security on Android</b></a><br>
Proc. 4th ACM Workshop on Programming Languages and Analysis for Security, Dublin, Ireland (<a href="http://www.cs.stevens.edu/~naumann/plas2009.html">PLAS 2009</a>), pp. 1-7.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[12/08]
</td>
<td style="vertical-align: top;"><a
href="https://www.cs.umd.edu/~avik/projects/thesis/thesis.pdf"><b>Foundations of Access Control
for Secure Storage</b></a><br>
PhD Dissertation, University of California, Santa Cruz, USA. <br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[10/08]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/10.1145/1455770.1455818"><b>EON: Modeling and Analyzing Dynamic Access
Control Systems with Logic Programs</b></a><br>
[with Prasad Naldurg, Ganesan Ramalingam, Sriram Rajamani, and Subbu Velaga] <br>
Proc. 15th ACM Conference on Computer and Communications Security,
Alexandria, USA (<a href="http://www.sigsac.org/ccs/CCS2008/">CCS
2008</a>), pp. 381-390.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[06/08]
</td>
<td style="vertical-align: top;"><a href="https://arxiv.org/abs/0805.4665"><b>On Secure
Distributed Implementations of Dynamic Access Control</b></a><br>
Proc. <a href="http://www2.informatik.hu-berlin.de/lics/lics08/">LICS</a>/<a href="http://www.cylab.cmu.edu/CSF2008/">CSF</a> Joint Workshop on Computer Security, Pittsburgh, USA (<a
href="http://profs.sci.univr.it/~vigano/fcs-arspa-wits08/">FCS-ARSPA-WITS
2008</a>), pp. 93-107.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[06/08]
</td>
<td style="vertical-align: top;"><a href="https://dl.acm.org/doi/abs/10.1145/1513443.1513447"><b>A Type System for
Data-Flow Integrity on Windows Vista</b></a><br>
[with Sriram Rajamani and Prasad Naldurg] <br>
Proc. 3rd ACM Workshop on Programming Languages
and Analysis for Security, Tucson, USA (<a
href="http://research.ihost.com/plas2008/">PLAS 2008</a>), pp. 89-100.<br>
<i>(Also appears in </i><a
href="http://doi.acm.org/10.1145/1513443.1513447">ACM
SIGPLAN Notices, 43(12):9-20</a><i>, as one of "the top two papers of PLAS 2008".)</i><br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[05/08]
</td>
<td style="vertical-align: top;"><a href="https://ieeexplore.ieee.org/document/4531168"><b>Automated Formal
Analysis of a Protocol for Secure File Sharing on Untrusted
Storage</b></a><br>
[with Bruno Blanchet] <br>
Proc. 29th IEEE Symposium on Security and Privacy,
Oakland, USA (<a
href="http://www.ieee-security.org/TC/SP2008/oakland08.html">S&P
2008</a>), pp. 417-431.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[09/06]
</td>
<td style="vertical-align: top;"><a href="https://link.springer.com/chapter/10.1007/11888116_8"><b>Formal Analysis of Dynamic, Distributed
File-System Access Controls</b></a><br>
[with Martín Abadi] <br>
Proc. 26th IFIP Conference on Formal
Methods for Networked and Distributed Systems, Paris,
France (<a href="http://forte2006.cnam.fr/">FORTE 2006</a>), pp. 99-114.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[08/06]
</td>
<td style="vertical-align: top;"><a href="https://link.springer.com/chapter/10.1007/11817949_18"><b>Dynamic Access Control in a Concurrent Object Calculus</b></a><br>
Proc. 17th
International Conference on Concurrency Theory, Bonn,
Germany (<a href="http://depend.cs.uni-sb.de/index.php?id=355">CONCUR 2006</a>), pp. 263-278.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[07/06]
</td>
<td style="vertical-align: top;"><a href="https://ieeexplore.ieee.org/document/1648712"><b>Secrecy by Typing and File-Access Control</b></a><br>
[with Martín Abadi] <br>
Proc. 19th
IEEE Computer Security Foundations Symposium/Workshop, Venice,
Italy (<a href="http://www.dsi.unive.it/CSFW19/">CSF 2006</a>), pp. 112-123.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[11/05]
</td>
<td style="vertical-align: top;"><a
href="https://dl.acm.org/doi/10.1145/1103576.1103583"><b>Formal
Security Analysis of Basic Network-Attached Storage</b></a><br>
[with Martín Abadi] <br>
Proc. 3rd
ACM Workshop on Formal Methods in Security Engineering, Fairfax, USA (<a
href="http://estragon.ti.informatik.uni-kiel.de/~kuesters/FMSE05/">FMSE
2005</a>), pp. 43-52.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">[07/04]
</td>
<td style="vertical-align: top;"><u class="nolink"><b>A Generic
Automated Proof-Carrying
Framework</b></u> <br>
Master's Thesis, Indian Institute
of Technology, New Delhi, India.</td>
</tr>
<tr>
<td style="vertical-align: top;">[05/04]
</td>
<td style="vertical-align: top;"><u class="nolink"><b>Validation of Mobile Code under Transformations</b></u> <br>
[with Sanjiva Prasad]<br>
Technical Report, Indian Institute of Technology, New Delhi, India.</td>
</tr>
<tr>
<td style="vertical-align: top;">[12/03]
</td>
<td style="vertical-align: top;"><u class="nolink"><b>Symbolic Forced Simulation: Interface Generation for Systems-on-Chip</b></u> <br>
[with Arcot Sowmya and Sethu Ramesh] <br>
Technical Report, University of New South Wales, Sydney, Australia.</td>
</tr>
<tr>
<td style="vertical-align: top;">[05/03]
</td>
<td style="vertical-align: top;"><u class="nolink"><b>Polytypic Structured Editing</b></u> <br>
[with Sanjiva Prasad]<br>
Technical Report, Indian Institute of Technology, New Delhi, India.</td>
</tr>
<tr>
<td style="vertical-align: top;">[07/02]
</td>
<td style="vertical-align: top;"><u class="nolink"><b>A Distributed Structured Editor for ML</b></u> <br>
[with Gérard Huet] <br>
Technical Report, Institut National de Recherche en Informatique et Automatique, Rocquencourt, France.</td>
</tr>
</tbody>
</table>
<br>
</body>
</html>