-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcv_base.tex
377 lines (323 loc) · 13.2 KB
/
cv_base.tex
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
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
\input{cv_style.tex}
\begin{document}
\reversemarginpar
\begin{center}
\textbf{\textsf{ \LARGE \color{titleColor} David Zhao Akeley}}
\vspace{-1mm}
\ifdefined\RESUME
\textsf{First Year PhD student at MIT CSAIL, Advised by \webText{https://people.csail.mit.edu/jrk}{Jonathan Ragan-Kelley}}
\fi
\ifdefined\CV
\textsf{PhD Student at MIT CSAIL}
\fi
\end{center}
\begin{tabular}{l l|l l}
\myKey{Primary Email} & \email{dza724}{gmail.com}
& \myKey{Undergraduate} & UCLA (Samueli School of Engineering) \\
\myKey{Work Email} & \email{akeley98}{mit.edu}
& \myKey{UCLA Degrees} & BS Computer Science, BS Mathematics \\
\myKey{SMS} & 1-408-763-5241
& \myKey{UCLA GPA} & \GPA
\end{tabular}
\vspace{0.1mm}
\ifdefined\RESUME
\myTitle{Professional Experience}
\fi
\ifdefined\CV
\myTitle{Work History}
\mySub{MIT CSAIL -- September 2024 - Present -- PhD Student}
New PhD student advised by \webText{https://people.csail.mit.edu/jrk}{Jonathan Ragan-Kelley}
\fi
\mySub{Nvidia Corporation -- October 2020 - June 2024 -- Developer Technology Engineer (IC3)}
\begin{enumerate}
\item Collaborated with Nvidia Research on GPU algorthms for
SDF-based\footnote{Signed Distance Field} 2D computational
geometry.\\ ``How to Accelerate 2D Shape Processing for
Manufacturing and Planning'' -
\webText{https://www.nvidia.com/en-us/on-demand/session/gtcspring23-s51140/}{GTC
2023} (s51140)
\item Wrote Vulkan samples for
\lighttt{VK\_EXT\_graphics\_pipeline\_library},
\lighttt{VK\_KHR\_timeline\_semaphore},\\
\lighttt{GL\_KHR\_shader\_subgroup\_shuffle},
\lighttt{VK\_NV\_inherited\_viewport\_scissor}, and ray tracing extensions.
\item
Designed
\texttt{\webText{https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_inherited_viewport_scissor.html}{VK\_NV\_inherited\_viewport\_scissor}}
and implemented its driver and toolchain support.
\item Consulted with business partners on integrating Nvidia
technology: DMM, \lighttt{GL\_NV\_path\_rendering}.
\end{enumerate}
\filbreak
\mySub{Sholari LLC -- July - September 2019 -- Contractor}
\begin{enumerate}
\item Worked on a tumor growth and treatment educational tool written with
the Unity game engine.
\item Implemented line graphs, waterfall (bar) plots, and the user interface
for the timeline (graph x-axis).
\item Wrote a multithreaded \lighttt{C++11} plugin for visualizing
tumors \& immune system responses as particle clouds, and integrated
it with the single-threaded \lighttt{C\#} Unity Engine.
\end{enumerate}
\filbreak
\mySub{Stanford University -- June - September 2018 --
Undergraduate Research Assistant}
\begin{enumerate}
\item Helped prototype Aetherling, a Haskell-embedded domain-specific
language for designing hardware image processing pipelines with
automatic parallelization and static scheduling\cvFootnote{i.e. not
using ready-valid hardware interfaces.};
co-authored paper with
\webText{https://david-durst.github.io/}{David Durst} (lead author),
\webText{https://graphics.stanford.edu/~kayvonf/}{Dr. Kayvon Fatahalian},
and \webText{https://graphics.stanford.edu/~hanrahan/}{Dr. Pat Hanrahan}.
\item Implemented a functional simulator of an early prototype of
Aetherling.
\item Revised the type system to remove impediments to parallelizing
line buffers.\cvFootnote{A line buffer device reads in an image as a
stream of pixel values and outputs rectangular ``windows'' of the
image.}
\end{enumerate}
\quad\web{https://aetherling.org} (``Type-Directed Scheduling of Streaming Accelerators'' - PLDI 2020)
\filbreak
\ifdefined\RESUME
\myTitle{Unpaid Internships \& Projects}
\fi
\resumeMiniItemURL{MediocrePy -- March - June 2017 -- Independent Project}%
{https://github.com/akeley98/MediocrePy}%
{AVX-accelerated statistical image combine (averaging) Python module for astrophysics}
\ifdefined\CV
\begin{enumerate}
\item Created an optimized library for reducing stacks of
telescope images to a single image using pixel means or medians and
optional outlier rejection (sigma clipping) for noise reduction.
\item Designed and implemented a multithreaded C core with AVX
vectorization, with an optional NumPy wrapper. Decreased runtime
(compared to the Python code replaced) from hours to milliseconds.
\item Collaborated with
\webText{http://sancerre.as.arizona.edu/~caiz/Home/Welcome.html}{Dr. Zheng
Cai}, UC Santa Cruz Astrophysics.
\end{enumerate}
\quad\web{https://github.com/akeley98/MediocrePy}
\fi
\filbreak
\resumeMiniItem{Tsinghua University -- July - August 2016 -- Summer Intern}%
{Microlensing event light curve fitting with Python, \lighttt{C++}, SciPy, and Matplotlib}
\ifdefined\CV
\begin{enumerate}
\item Designed a small library for fitting and plotting standard
microlensing event light curves given discrete measurements of a
star's apparent magnitude (brightness) through time.
\item Used Python, \lighttt{C++}, SciPy, and Matplotlib.
\item Collaborated with
\webText{http://astro.tsinghua.edu.cn/~smao/}{Dr. Shude Mao},
Tsinghua Department of Astronomy.
\end{enumerate}
\fi
\filbreak
\resumeMiniItem{Jide Technology Co. -- June - July 2015 -- Summer Intern}%
{Product testing and English documentation/marketing for RemixOS}
\ifdefined\CV
\begin{enumerate}
\item Performed product testing for RemixOS, an Android derivative
with a desktop-like interface.
\item Edited international marketing material and wrote user
documentation in English.
\item Collaborated with Jason Zheng and Jeff Zhao (International
Marketing Manager).
\end{enumerate}
\fi
\filbreak
\ifdefined\CV
\myTitle{Other Projects}
\fi
\resumeMiniItemURL{WebGL Jelly Cube Project}%
{https://youtu.be/YwvMSeB6NzU}%
{Reflection and refraction WebGL+WebAssembly demo;
UCLA Fall 2017 computer graphics class project}
\ifdefined\CV
Simple mass-spring system simulation written with Javascript,
WebAssembly, and WebGL 2.0 (for refractive and reflective effects),
written for the UCLA Fall 2017 computer graphics class.
\web{https://github.com/akeley98/JellyMcJelloFace}
\hfill\web{https://youtu.be/YwvMSeB6NzU}
\fi
\filbreak
\resumeMiniItemURL{Myricube -- Vulkan Voxel Renderer}%
{https://github.com/akeley98/myricube}%
{Experiments with hybrid raycasting/rasterization voxel rendering,
with low-latency model updates}
\ifdefined\CV
This proof-of-concept hybrid raycast/mesh voxel renderering was
inspired by my discontent with Minecraft's low render distance and
slow chunk updates, even on high settings.
Conventional voxel renderers such as Minecraft's work by converting
voxel models into a mesh of triangles to draw, possibly with some
optimizations like hidden face removal or merging coplanar
triangles. This uses the GPU for its designed purpose, but as render
distance increases, the GPU is bottlenecked by the large number of
small triangles generated. Myricube uses conventional mesh
rendering\footnote{More precisely, instanced rendering to convert
subsets of a list of voxels into a mesh to draw.} for nearby voxels
but draws more distant voxels with an alternative raycasting
renderer. This renderer subdivides the voxel model into cubic chunks,
computes a minimal AABB\footnote{Axis aligned bounding box -- requires
only six front-facing triangles to draw.} for each chunk's visible
voxels, and draws the AABBs themselves with a raycasting fragment
shader that only checks for intersections within the drawn AABB.
Dividing the model into AABBs reduces the renderer's memory bandwidth
requirements and time wasted raycasting through empty space, without
requiring any acceleration structures be built.
Additionally, the project leverages memory-mapped files and Vulkan
asynchronous transfers to allow for low-latency, high-throughput model
upload and real-time animation.
\web{https://github.com/akeley98/myricube}
\fi
\filbreak
\ifdefined\RESUME
\resumeMiniItemURL{Proposed gem5 Partial Bypassing Patch}%
{https://gem5-review.googlesource.com/c/public/gem5/+/27767}%
{Refactored \lighttt{C++11} code from my Advanced Computer Architecture
course project}
\fi
\ifdefined\CV
\mySub{Proposed gem5 Hardware Simulator Partial Bypassing Patch}
This patch is refactored \lighttt{C++11} code that I wrote for my
Advanced Computer Architecture course project.
In an out-of-order CPU, hardware bypassing allows instructions stalled
waiting for a register to start execution as soon as the functional
unit (ALU, memory port, etc.) writing to said register completes,
without waiting for the actual commitment to register file. This is
crucial for performance, so mainline \lighttt{gem5} simulates complete
bypassing between all functional units in the simulated CPU. However,
this is not practical to realize in modern superscalar hardware, as
bypassing costs grow quadratically with the number of functional
units. My patch splits the CPU's functional units into separate pools,
with bypassing simulated only within pools. The
commit-to-register-file delay is imposed for values communicated
between pools.
The patch received positive code reviews; however, it doesn't look
like there's enough interest in the feature to actually merge it into
mainline \lighttt{gem5}.
\web{https://gem5-review.googlesource.com/c/public/gem5/+/27767}
\web{https://github.com/akeley98/FU-pools/blob/b4d291429edb6aa4988888656b6867ff99591b90/fu-pools.pdf}
\fi
\filbreak
\ifdefined\CV
\newpage
\myTitle{Appendix: UCLA Education -- September 2017 - August 2020}
\myKey{First Major} Computer Science \hfill\myKey{Second Major}
Mathematics \hfill\myKey{GPA} \GPA\ (\GpaDate)
% Classes now organized by quarter.
% \textbf{Engineering Courses}
\makebox[\textwidth][c]{
\begin{tabular}{l l l l}
\hline
& & Title & Content Notes \\
\hline
\rowcolor{oddColor}
\texttt{A+} \oddQuarter{2017} & CS 174A & Intro to Computer Graphics & See WebGL Jelly Cube Project\\
\rowcolor{oddColor}
\texttt{A+} & EE M16 & Digital Systems & Verilog Lab \\
\rowcolor{oddColor}
\texttt{A+} & Math 115A & Linear Algebra & \\
\rowcolor{oddColor}
\texttt{A } & Math 170A & Probability Theory & \\
\rowcolor{evenColor}
\texttt{A } \evenQuarter{2018} & CS 35L & Software Construction Lab & POSIX basics (e.g. pthreads, bash) \\
\rowcolor{evenColor}
\texttt{A } & CS M146 & Machine Learning & \\
\rowcolor{evenColor}
\texttt{A } & Math 110A & Algebra & Ring Theory \\
\rowcolor{evenColor}
\texttt{A } & Math 131AH & Analysis Honors & Metric Spaces \\
\rowcolor{oddColor}
\texttt{A+} & CS 180 & Algorithms \& Complexity & \\
\rowcolor{oddColor}
\texttt{A } & Engr 185EW & Art of Engineering Endeavors & Writing Intensive Team Project \\
\rowcolor{oddColor}
\texttt{A } & Math 131BH & Analysis Honors & Derivation, Riemann Integration \\
\rowcolor{evenColor}
\texttt{B-} & CS 131 & Programming Languages & \\
\rowcolor{evenColor}
\texttt{B+} & CS M152A & Digital Design Lab & Verilog Team Project \\
\rowcolor{evenColor}
\texttt{B+} & Math 110AH & Algebra Honors & Group Theory \\
\rowcolor{evenColor}
\texttt{C } & Math 120A & Differential Geometry & \\
\rowcolor{oddColor}
\texttt{A-} \oddQuarter{2019} & CS 111 & Operating Systems Principles & Focus on POSIX \\
\rowcolor{oddColor}
\texttt{A+} & CS 181 & Formal Languages \& Automata & Regex, CFG, Turing Machines, Decidability \\
\rowcolor{oddColor}
\texttt{A-} & Math 132H & Complex Analysis Honors & \\
\rowcolor{evenColor}
\texttt{A-} & CS 161 & Fundamentals of Artificial Intelligence & \\
\rowcolor{evenColor}
\texttt{A+} & EE M116C & Computer Systems Architecture & \\
\rowcolor{evenColor}
\texttt{B+} & Math 111 & Theory of Numbers & Overview of p-adic Numbers \\
\rowcolor{oddColor}
\texttt{A-} & CS 118 & Computer Network Fundamentals & \\
\rowcolor{oddColor}
\texttt{B } & CS 130 & Software Engineering & Java Team Project \\
\rowcolor{oddColor}
\texttt{A } & Math 134 & Systems of Differential Equations & \\
\rowcolor{evenColor}
\texttt{A+} \evenQuarter{2020} & CS 133 & Parallel \& Distributed Computing & OpenMP, OpenCL, MPI, GPGPU, FPGA \\
\rowcolor{evenColor}
\texttt{A+} & CS 251A & Advanced Computer Architecture & \lighttt{gem5} Hardware Sim Project, Graduate Course \\
\rowcolor{evenColor}
\texttt{A } & Math 110BH & Algebra Honors & Ring Theory, Module Theory \\
\rowcolor{oddColor}
\texttt{A } & Math 110C & Algebra\( ^* \) & Field Theory, Galois Theory \\
\rowcolor{oddColor}
\texttt{A } & Math 115B & Linear Algebra & \\
\rowcolor{evenColor}
\texttt{A } & Math 142 & Mathematical Modeling & \\
\rowcolor{evenColor}
\texttt{A+} & Math 167 & Game Theory & \\
\hline
\end{tabular}
}
\textit{\( ^* \)There is no honors equivalent to the Galois Theory Course.}
\myTitle{West Valley College Education -- 2015-2017}
\myKey{GPA} 4.0
\myKey{Select Courses}
\begin{tabular}{l l l}
\hline
& Title & Content Notes \\
\hline
\rowcolor{oddColor} Math 4B & Differential Equations & \\
\rowcolor{oddColor} Math 19 & Discrete Mathematics & \\
\rowcolor{oddColor}
Psych 2 & Experimental Psychophysiology & Experiment Design \& Paper \\
\rowcolor{oddColor} Phys 4D & Modern Physics & Relativity \\
\hline
\end{tabular}
\vfill
{
\begin{center}
\color{gray}
Typeset in \LaTeX\
Fonts: Computer Modern, \textsf{FreeSans} (GNU FreeFont),
\texttt{Ubuntu Mono} (Dalton Maag \& Canonical Ltd.)
\end{center}
}
\fi %CV
\ifdefined\RESUME
\vfill
\hrule
\vfill
{
\color{gray}
Fonts: Computer Modern, \textsf{FreeSans} (GNU FreeFont),
\texttt{Ubuntu Mono} (Dalton Maag \& Canonical Ltd.)
}
\myKey{Full CV} -- \web{https://github.com/akeley98/cv/blob/master/cv.pdf}
\vfill
\fi %RESUME
\end{document}
% Local Variables:
% mode: tex
% End: