Alex2

Github | alexalex@mit.edu | Resume

Hello There! I love programming, computer science, podcasts, and tinkering with Linux.

Research

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
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
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.

Side Projects

Nitwit

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 collection. The Nitwit compiler procudes C code, which can then be compiled to an executable.

Retroactive Priority Queue

A partially retroactive priority queue supports adding and removing updates (here, insert and 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.

Stealth

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).

Gemini

A two-player platformer where players progress by cooperatively solving puzzles made out of logic gates. Implements real-time multiplier using WebSockets.

vali.li

In Bulgarian, “Vali li?” means “Is it raining?” This website has the answer!

Classes I've Taken

Advanced Computer Science
# Name Term
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
# Name Term
6.033 Computer Systems Engineering Spring 2022
6.UAR Seminar in Undergraduate Advanced Research Fall 2021
Spring 2022
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
# Name Term
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
# Name Term
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
18.03 Differential Equations ASE
8.01 Classical Mechanics ASE
8.02 Electricity and Magnetism ASE