Capra (original) (raw)
Capra is a research group at Cornell in the Computer Science and Electrical and Computer Engineering departments. Our research studies abstractions and efficiency through the interaction of programming languages and computer architecture.
Check out our ongoing research below or read news about the group. If you’re a Cornell undergraduate student, consider working with us!
Hardware Accelerator Generation
Filament, an HDL for Fearless Hardware Design
Filament is a new hardware design language that uses a substructural type system to reason about low-level programs and ensure that they generate correct and efficient hardware.
Calyx, an Infrastructure for Hardware Accelerator Compilers
We’re designing Calyx, an intermediate language (IL) and infrastructure for building compilers that generate hardware accelerators. Calyx works by representing both hardware-like structure and software-like control together. Calyx is a part of the LLVM CIRCT project and supports Cider and Pollen. You can try Calyx in your browser.
Dahlia, a Language for Predictable Accelerator Design
High-level synthesis (HLS) tools can translate C-like languages to hardware accelerators, but the semantic gap between software and hardware can yield unpredictable performance and semantics.Dahlia adds a substructural type system to model hardware resources and their constraints to statically reject HLS designs that make unpredictable area-latency trade-offs. You can try Dahlia in your browser.
Software-Defined Networking
Rio, a Language for Programmable Packet Scheduling
Prior work has explored programmable packet scheduling on internet routers. Here we are interested in exploring packet schedulers that can live on the FPGA portions of smartNICs, and decide how packets get scheduled to hosts that can consume those packets. We’re developing Rio, a domain-specific language for defining packet scheduling policies, and a compiler to translate policies down to FPGAs.
Graphics Programming
Gator: Geometry Types
We have identified a new category of geometry bugs that arise in graphics programming and other domains that have to deal with matrices and vectors. They arise when programmers lose track of the coordinate systems and reference frames that underpin the computation.Gator is a language for GPU shading with a type system that can eliminate geometry bugs and rule them out by generating correct-by-construction transformation code.
Braid, a Safe Heterogeneous Language for Real-Time Graphics
Braid is a programming language for heterogeneous programming, where a single source program targets different hardware units. We have applied it to real-time graphics programming on CPU–GPU systems. Braid compiles to WebGL, so you can try it out in your browser.
Search-Based Compilation for Digital Signal Processing
Digital signal processors (DSPs) are ubiquitous and energy efficient, but making them fast requires an expert programmer. The difficulty stems from their complex vector instruction sets and simple, in-order pipelines. To get the best results, programmers must carefully pack and move data in vector registers to enable compact execution. Diospyros uses equality saturation to automatically discover efficient vector packing schemes.
Vision/System Co-Design
Customizing JPEG Compression for Computer Vision
Image compression formats like JPEG are ubiquitous in computer vision, but they were designed for human perception—not for modern vision algorithms. We examine the potential for customizing JPEG compression for specific vision tasks, simultaneously improving compression the ratio and the accuracy.
Exploiting Temporal Redundancy for Live Computer Vision
Vision accelerators that run on real-time video process nearly identical frames at every time step. This project introduces activation motion compensation, a technique for approximately incremental acceleration of computer vision. It works by measuring motion in the input video and translating it to motion in the intermediate results of convolutional neural networks.
A Vision Mode for Efficient Image Capture
Most camera systems are optimized for photography, so they waste time and energy when they capture images for computer vision. This project designs a vision mode for cameras and their associated signal processing logic that saves energy by producing lower-quality, less-processed image data.
Archived Research
- Programming Abstractions for Natural Language & Intelligent SystemsDespite rapid progress in machine learning capabilities, integrating ML into full applications remains complex and error prone. Opal is a new set of language features that help make it easier to build correct software that relies on AI, especially on natural language understanding.
People
PhD & MS
- Anshuman Mohan
- Ayaka Yorihiro
- Benjamin Carleton
- Ernest Ng
- Griffin Berlstein
- Michael Xing
- Oliver Daids
Undergrad & MEng
- Akash Dhiraj
- Cassandra Sziklai
- Charles Liggins
- Cynthia Shao
- Edmund Lam
- Ethan Gabizon
- Ethan Uppal
- Francis Pham
- Helen Ge
- Jeremy Ku-Benjet
- Jerry Ji
- John Palsberg
- Kabir Samsi
- Nagaa Dhaba
- Nikil Shyamsunder
- Nipat Chenthanakij
- Parth Sarkar
- Pedro Pontes García
- Ryan Fu
- Serena Duncan
- Zihan Li
Staff
- Kevin Laeufer Research Associate
- Shailja GaurProgram Manager
- Zhiyuan Guo Postdoctoral Associate
Alumni
- Neil Adit PhD 2024
- Dietrich Geisler PhD 2024
- Philip BedoukianPhD 2023
- Rachit Nigam PhD 2024
- Alexa VanHattum PhD 2023
- Mark Buckler PhD 2019
- Kevin Negy PhD 2025
- David ChenMEng 2023
- Jonathan TranMS 2023
- Arthur WangMEng 2018
- Evan SuMEng 2018
- Shiyu WangMEng 2018
- Daniel SainatiBS & MEng 2018
- Harrison Goldstein BS & MEng 2018
- Alex WongMEng 2019
- Henry LiuBS & MEng 2020
- Zhijing Li MS 2021
- Edwin PegueroMS 2021
- Alaia Solko-BreslinBS & Meng 2022
- Jiahan Xie MS 2025
- Soos GarryMS 2025
- Justin NgaiMEng 2023
- Stephen Verderame BS & MEng 2024
- Nathaniel NavarroBS 2024
- Meredith Hu BS 2024
- Caleb Kim BS 2024
- Pai LiBS 2024
- Elise SongBS & MEng 2024
- Mateo GuynnBS 2024
- Basant KhalilBS 2023
- Mia DanielsBS 2023
- Alex Renda BS 2018
- Theodore Bauer BS 2019
- Irene Yoon BS 2019
- Yinnon SandersBS 2019
- Aditi Kabra BS 2019
- Apurva KotiBS 2020
- Samuel Thomas BS 2020
- Horace He BS 2020
- Kenneth FangBS 2020
- Katy VoorBS 2020
- Kimberly BaumBS 2020
- Richard WangBS 2021
- Paul JooBS 2021
- Karen ZhangBS 2021
- Chris Gyurgyik BS 2021
- Patrick LaFontaine BS 2021
- Vivi Ye BS 2022
- Jasper LiangBS & Meng 2022
- David Siher BS 2022
- YoungSeok (Alex) Na
- Sachille Atapattu
- Jacob Delgado-Lópezvisitor, University of Puerto Rico
- Maya Ifekauchevisitor, Auburn University
News
Mar 22, 2026
VDCores, Our new programming framework and runtime for async GPUs, is now opensource! Learn more in our technical blog post.
Dec 11, 2025
We are once again organizing LATTE, an ASPLOS workshop about PL and compilers for hardware design. Submit 2-page position papers by January 31.
Nov 25, 2025
“Parameterized Hardware Design with Latency-Abstract Interfaces,” our paper about safely composing hardware generators, will appear at ASPLOS 2026.
Sep 26, 2025
Adrian won a Bowers college teaching award.
Jun 27, 2025
Jun 24, 2025
Rachit won SIGPLAN’s John C. Reynolds Doctoral Dissertation Award for 2025! Incredibly, he was also an Honorable Mention for the SIGARCH/IEEE CS TCCA Outstanding Dissertation Award.
May 13, 2025
Felicitations to Dr. Kevin Alarcón Negy on the occasion of his successful PhD defense! Kevin will soon start as a lecturer in the CS department at Princeton.
Apr 06, 2025
Congratulations to Dr. Rachit Nigam who graduated with his PhD and will start at MIT as a tenure-track professor leading the FLAME Lab!
Mar 21, 2025 by Griffin
Unfortunately you sometimes need to do the thing
Jan 09, 2025
We are again organizing LATTE, an ASPLOS workshop about PL and compilers for hardware design. Submit 2-page position papers by January 31.
Oct 20, 2024
Caleb and Pai’s paper on unifying static and dynamic approaches to accelerator compilation appeared at OOPSLA 2024.
Sep 26, 2024 by Ayaka
So I Taught a CS Course Over the Summer…
Aug 08, 2024 by Adrian
Geometry Bugs and Geometry Types
Aug 05, 2024
We’re excited that Kevin Laeufer is joining the lab as a research associate!
Aug 01, 2024
Congratulations to Drs. Dietrich Geisler and Neil Adit, both of whom graduated with their PhDs! Neil is starting a position at Meta, and Dietrich will be a faculty of instruction at Northwestern CS.
Jul 26, 2024 by Adrian
Bril: An Intermediate Language for Teaching Compilers
Jul 15, 2024 by Adrian
May 28, 2024 by Adrian
One Weird Trick for Efficient Pangenomic Variation Graphs (and File Formats for Free)
May 25, 2024
Caleb won the 2024 Cornell Computer Science Prize for Academic Excellence!
May 15, 2024
Ayaka’s paper on a FIRRTL backend for Calyx appeared at OSDA 2024.
May 13, 2024 by Ayaka
2024 CRA-WP Grad Cohort for Women Report
Apr 30, 2024 by Adrian
Pangenomic Variation Graphs, and a Reference Data Model
Mar 15, 2024 by Griffin
So You've Decided to Start a Podcast (or you need to edit audio)
Feb 20, 2024 by Griffin