First, thanks very much for being interested in Sharc Lab! 🙂 It’s always a pleasure working with talented and passionate students. If you’re interested in working at Sharc, please take a look at the following requirement before dropping me an email.
Required skills at Sharc
- Basic Machine learning: understand basic ML theory (traditional ML methods); experience in DNN/CNN design and training; familiar with at least one ML framework (e.g., PyTorch, Tensorflow).
- Graph Neural Network: understand basic GNN concept (even better if you know advanced GNN/transformer algorithms); experience in GNN design and training; familiar with GNN frameworks such as pytorch geometric or pytorch dgl.
- High-Level Synthesis: HLS tools, especially Xilinx Vitis HLS; proficient in HLS programming with FPGA; alternatively, understand the core algorithms of HLS (e.g., scheduling and binding).
- Verilog or other HDL: Chisel, BlueSpec, etc.
- Compiler: e.g., LLVM, Multi-Level Intermediate Representation (MLIR)
It is completely fine if you are only familiar with part of these skills, but please be sure you’re confident in at least one or two of them before contacting me. If you want to learn, please refer to the “material” page.; there are a bunch of good learning resources. If you figure out other useful materials, please let me know!
Time commitment
We expect a long-term time commitment, ideally more than one year.
- For master students, enrolling for master thesis would be ideal.
- For undergraduate students, teaming up for a senior design project would be ideal. If you don’t have specific ideas for senior design, we can discuss, but please form a team first.
- We are currently not hosting short-term remote interns — sorry about that.
Supervising style
Given the limited bandwidth of Sharc Lab members, we encourage a self-driven approach among students. Take the initiative to explore new directions, conduct experiments, ask questions, and request discussions without waiting for me to initiate. I am committed to being available whenever you need support, but my guiding principle is this: if you don’t reach out to me, I won’t reach out to you. 😛
When writing me an email…
If you are interested in doing research with me and you are confident about the above skills, that is great and please feel free to drop me an email! ^_^
In the email, please kindly include the following information:
- Your CV
- Some specific reasons why you are interested in working at Sharc, especially what kind of research topics or which papers motivate you.
- Which of the above skills do you have, and how proficient you are. You may use a scoring system, where a 5-star means you’re an expert, and a 0-star means you never touched it before.
- Your weekly time commitment and long-term schedule. How many hours per week you could contribute? When do you plan to start and when to finish?
With a large number of inquiries, I will prioritize an email that uses the above template and will be less likely to reply if it is too general.
★ Currently open projects for MS thesis and/or interns (updated by 9/17/2024) ★
Pease choose your favorite project and start to work on it from the below candidates. You can work on something else, but these are the most closely related to our ongoing work:
- HLSFactory. Contribute to HLSFactory by adding more designs, more vendor tool support, and more types of input languages. Then, we figure out something fun to do using HLSFactory (this is the research part), e.g., using ML or LLM.
- GNNBuilder. Contribute to GNNBuilder by fixing bugs, mapping to FPGA, and improving the performance.
- LightningSim. Contribute to LightningSim by applying the idea to other HLS tools, e.g., Stratus from Cadence, Catapult from Simens, or something else. This is more of an independent project and requires a lot of exploration on your own.
- HLS-based accelerator design. There are a few small projects that are simply about accelerating an algorithm using HLS.
- Combining LightningSim with RealProbe. LightningSim can be calibrated using on-chip profiling data, provided by RealProbe.
- Combining LightningSim with Ramulator. Calibrate LightningSim’s off-chip data access model for more accurate performance simulation.
Please take initiatives on your own. First, reproduce the product you select as a user, get familiar with it as much as possible. Second, read the paper very carefully and try to understand the implementation details. Third, start some exploration by reading the source code and trying out new things. Please update me based on your own pace — again, we are a semi-supervised learning lab! 😛