Open fpham0701 opened 5 months ago
It's been roughly 90 days since opening this issue. We apologize if we haven’t gotten back to you—research openings are somewhat sporadic, so sometimes we don’t have specific opportunities to offer. But more will certainly come in the future! If you're still interested in doing research with us, please respond with "Still interested for <semester/summer>". Additionally, please update the issue by editing it and supplying us with more information, an updated resumé, etc. If you're no longer interested, do not respond to this thread and we will automatically close this issue.
Still interested for semester FA'24!
Thanks for letting us know you're still interested! Tagging: @rachitnigam or @sampsyo
Personal Details
Name: Francis Pham
Undergrad or MEng? Undergrad
Year in Cornell: 2nd Year
Relevant classes: CS 2110, CS 3420, ECE 2300, CS 4999
Expertise (languages/frameworks/etc.): Python, C/C++, Java, Java/Typescript, Verilog, HTML/CSS
Research
When do you want to do research? I am interested in getting started on research during the semester, whether it be this semester or in the fall.
What is exciting to you about research? I love to be on the frontier of technology and see how one can change something for the better. I am very intrigue between the intersection between hardware and software, especially with developing high-level programming that can be turned into low level abstractions through various forms of intermediate representation. Reading about the work on Calyx, the intermediate language that supports building compilers for hardware accelerators seems fascinating and I would highly enjoy taking part and learning as much as I can. Additionally, I am interested in the computer architecture side of things. While I have lesser experience with this field, it is something I would appreciate getting more exposure and enjoy looking into.
Currently, I am a research assistant for Prof. Zhang's PhDs Niansong Zhang and Hongzheng Chen. With them, I am helping validate their new DSL Allo, which is used to centralized hardware accelerator design by taking high level programming languages and converting it into MLIR and applying various different optimizations. In this research, I was exposed to something new that I found interesting, and I've been hooked on learning more about it. I asked the PhDs if there were more resources regarding compilers design and MLIR and they pointed me to the self-guided online class taught by Prof. Sampson. I watched this class over the recent winter break and enjoyed its content on my own pace. With this in mind, I hope to get further involved in this area of study, learn more about it, and try to take part in advancing it.
What kind of research do you want to do? I would be excited with research that involves hardware design, working with programming languages/intermediate representations, or building compilers!
Background
Was there a paper that particularly excited you? Definitely. As aforementioned, when I asked my research PhD about more topics, he pointed me to the start of MLIR, the paper called MLIR: A compiler infrastructure for the End of Moore’s Law. This paper excited me, and I love reading about this new design that boils a programming language into multiple levels and apply a series of transformations/optimization to make it easier for a compiler to translate to machine code. Additionally, as part of the research group, I read my PhD's research paper HeteroCL paper that introduced the beginnings of Allo.
Which of the current research projects would you be interested in working on and why? Personally, I would love to work on any of the Capra Research group's project since they all encapsulate something I am fond of. However, to pick my most interested ones, I think it would either be Calyx or Dahlia. This is mainly because I have experience with working in both of the fields that encapsulates them and I would be excited to get a better grasp. However, even though this is in mind, I would not hesitate to work on a different project since I am constantly trying to expose myself to new things and learn more about them.
Anything else you want to tell us about yourself? Yes! I love to work with microcontrollers on the side. For my project team CUAir, I've developed a wing-loading testing rig that tests our plane's wing durability by simulating the forces in air flight. Using multiple Arduino Nanos, I've developed a system that takes in readings from 8 load cells and display them on a self-created GUI. I am currently an intern on the Compiler Verification Compute team at NVIDIA, where I am focused on analyzing the NVVM Dialect and creating automation scripts to generate test files to validate its translation in MLIR.
Attach a CV/Resumé: francis-cv.pdf