Alex2Github | firstname.lastname@example.org | Resume
Hello There! I love programming, computer science, podcasts, and tinkering with Linux.
I’m interested in computer architecture research where I can apply techniques from classical algorithms and data structure. In particular, I’m interested in specialized hardware and hardware-software co-design, as these subfields target the fundamental problem of maximizing computation efficiency, without being limited by existing architectures. I’m also curious about applying similar techniques outside of architecture more broadly, for example in compilers or distributed systems.
So far, my research has focused on accelerating Fully Homomorphic Encryption—encryption that allows running programs on secret data without decrypting it. I’m advised by Prof. Daniel Sanchez and have worked closely with Nikola Samardzic.
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.
I created 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 procudes C code, which can then be compiled to an
Retroactive Priority Queue
A partially retroactive priority queue supports adding and removing updates
delete_min) on past versions of the data structure.
Retroactive differs from persistent in that the effects of changing past
operations propagate to the present (like in 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 beeing seen by guards. The area each guard sees (their visibility polygon) is comptuted in O(n log n).
A two-player platformer where players progress by cooperatively solving puzzles made out of logic gates. Implements 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||Formal Reasoning About Programs||Spring 2023|
|6.1810||Operating System Engineering||Fall 2022|
|6.888||Secure Hardware Design||Spring 2022|
|6.823||Computer System Architecture||Spring 2021|
|6.824||Distributed Systems||Spring 2021|
|6.851||Advanced Data Structures||Spring 2021|
|6.840||Theory of Computation||Fall 2020|
|6.890||Algorithms for Graphs and Matrices||Spring 2020|
Base Computer Science
|6.033||Computer Systems Engineering||Spring 2022|
|6.UAR||Seminar in Undergraduate Advanced Research||
|6.002||Circuits and Electronics||Fall 2021|
|6.02||Introduction to EECS via Communication Networks||Fall 2021|
|6.031||Software Construction||Fall 2020|
|6.009||Fundamentals of Programming||Spring 2020|
|6.004||Computational Structures||Fall 2019|
|6.036||Introduction to Machine Learning||Fall 2019|
|6.0001||Introduction to Computer Science||ASE|
Humanities, Arts, and Social Sciences
|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|