Alex2Github | email@example.com | Resume
Hello There! I’m a PhD student at MIT working with Professor Daniel Sanchez.
Some of my current interests include podcasts, tinkering with Linux, and, yes, Taylor Swift.
I want to do research in computer architecture where I apply techniques from classical algorithms and data structures. I’m not yet quite sure what this entails, but it will probably have something to do with accelerators, compilers, and/or hardware-software co-design. Ideally, I would be able to focus on maximizing efficiency, free from the limitations of existing architectures.
During my undergrad, I collaborated closely with Nikola Samardzic on accelerating Fully Homomorphic Encryption—encryption that allows running programs on secret data without decrypting it.
CraterLake: A Hardware Accelerator for Efficient Unbounded Computation on Encrypted Data
Nikola Samardzic, Axel Feldmann, Aleksandar Krastev, Nathan Manohar, Nicholas Genise, Srinivas Devadas, Karim Eldefrawy, Chris Peikert, Daniel Sanchez
CraterLake is the state-of-the-art hardware accelerator for FHE, providing speedups of 5,000× over CPU on a broad range of applications. Building upon F1’s functional units, CraterLake introduces a novel architecture that significantly reduces on- and off-chip data movement.
I came up with the way computation is distributed across the chip (Sec. 4), designed the on-chip network (Sec. 5.3), and designed the KeySwitch hint generator (Sec. 5.2).
F1: A Fast and Programmable Accelerator for Fully Homomorphic Encryption
Axel Feldmann*, Nikola Samardzic*, Aleksandar Krastev, Srini Devadas, Ron Dreslinski, Christopher Peikert, Daniel Sanchez
F1 was our initial proposal for an FHE accelerator. F1 proposes novel high-throughput FHE functional units, but suffers from excessive on-chip data movement that prevents it from scaling to large FHE application. As a result, F1 is about 5,000× faster than a CPU on small applications (similar to CraterLake), but only 400× faster on large ones (11× slower than CraterLake).
I designed the first SRAM-only, fully-pipelined transpose unit (Sec. 5.1), which is a crucial component of F1’s novel FFT and automorphism units.
A programming language that uses prefix notation for amusement
purposes: for example,
a = (b + c) * d looks like
= a * + b c d.
Nitwit is imperative, strongly typed, and uses reference-counting garbage
The Nitwit compiler produces C code, which can then be compiled to an
Retroactive Priority Queue
A priority queue that supports adding and removing updates (
delete_min) on past versions of the data structure.
Retroactivity differs from persistence in that the effects of changing past
operations propagate to the present (think, Back to the Future).
I implemented the data structure proposed by Demaine, Iacono, and Langerman,
which performs all operations in logarithmic time.
A top-down 2D game where you collect coins while avoiding guards on patrol. The area each guard sees (their visibility polygon) is computed in O(n log n).
A two-player platformer where players cooperatively solve puzzles made out of logic gates. Provides real-time multiplier using WebSockets.
In Bulgarian, “Vali li?” means “Is it raining?” This website has the answer!
Classes I've Taken
Advanced Computer Science
|6.5120 [6.822]||Formal Reasoning About Programs||Spring 2023|
|6.1810 [6.039]||Operating System Engineering||Fall 2022|
|6.S983 [6.888]||Secure Hardware Design||Spring 2022|
|6.5900 [6.823]||Computer System Architecture||Spring 2021|
|6.5840 [6.824]||Distributed Systems||Spring 2021|
|6.5230 [6.851]||Advanced Data Structures||Spring 2021|
|6.5400 [6.840]||Theory of Computation||Fall 2020|
|6.5350 [6.890]||Matrix Multiplication and Graph Algorithms||Spring 2020|
Base Computer Science
|6.1810 [6.033]||Computer Systems Engineering||Spring 2022|
|6.UAR||Seminar in Undergraduate Advanced Research||
|6.2000 [6.002]||Circuits and Electronics||Fall 2021|
|6.3400 [6.02]||Introduction to EECS via Communication Networks||Fall 2021|
|6.1020 [6.031]||Elements of Software Construction||Fall 2020|
|6.1010 [6.009]||Fundamentals of Programming||Spring 2020|
|6.1910 [6.004]||Computational Structures||Fall 2019|
|6.3900 [6.036]||Introduction to Machine Learning||Fall 2019|
|6.100A [6.0001]||Introduction to Computer Science||ASE|
Humanities, Arts, and Social Sciences
|21M.301||Harmony and Counterpoint I||Fall 2023|
|21M.051||Fundamentals of Music||Spring 2022|
|24.211||Theory of Knowledge||Fall 2021|
|24.118||Paradox and Infinity||Spring 2021|
|21M.600||Introduction to Acting||Spring 2021|
|14.02||Principles of Macroeconomics||Fall 2020|
|14.01||Principles of Microeconomics||Spring 2020|
|24.900||Introduction to Linguistics||Spring 2020|
|24.00||Problems in Philosophy||Fall 2019|
Math and Science
|18.703||Modern Algebra||Spring 2023|
|7.012||Introductory Biology||Fall 2020|
|18.600||Probability and Random Variables||Spring 2020|
|3.091||Introduction to Solid-State Chemistry||Fall 2019|
|18.01||Single Variable Calculus||ASE|
|18.02||Multi Variable Calculus||ASE|
|8.02||Electricity and Magnetism||ASE|