Vidi: Record Replay for Reconfigurable Hardware
Gefei Zuo, Jiacheng Ma, Andrew Quinn, Baris Kasikci
摘要
Developers are turning to heterogeneous computing devices, such as Field Programmable Gate Arrays (FPGAs), to accelerate data center workloads. FPGAs enable rapid prototyping and should facilitate an agile software-like development workflow to fix correctness bugs, performance issues, and security vulnerabilities. Unfortunately, hardware development still does not have a vast ecosystem of tools needed to support the agile hardware development vision. The capability to record and replay FPGA executions would constitute a key building block that will inspire the development of many tools, similar to what record/replay did for software. However, building a practical record/replay tool for FPGAs is challenging; existing approaches either record too much or too little information and cannot support real-world executions.
In this paper, we present Vidi, the first record/replay system for real-world FPGA applications running on hardware. Vidi is based on the observation that widely-used communication protocols have well-defined input/output transactions to hide cycle-specific information from developers, which enables a more efficient design than heavyweight cycle-accurate record/replay approaches. Vidi proposes (1) the transaction determinism insight to track and enforce only necessary orderings of transaction events across record and replay, and (2) the coarse-grained input recording mechanism to record transaction-level information. We evaluate Vidi on Amazon EC2 F1 instances with 10 applications and two use cases (debugging, testing) and find that it incurs on average low performance slowdown (1.98%) and resource overhead (5.48%), making it practical for real-world deployments.
• Hardware → Reconfigurable logic and FPGAs; • Software and its engineering → Software testing and debugging.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper3
- Program Environment FuzzingRuijie Meng, Gregory J. Duck, Abhik RoychoudhuryCCS 2024 · 被引用 6 次
- Expeditious High-Concurrency MicroVM SnapStart in Persistent Memory with an Augmented HypervisorXingguo Pang, Yanze Zhang, Liu Liu, Dazhao Cheng 等USENIX ATC 2024 · 被引用 2 次
- Zoomie: A Software-like Debugging Tool for FPGAsTianrui Wei, Kevin Laeufer, Katie Lim, Jerry Zhao 等ASPLOS 2024 · 被引用 1 次
它引用的顶会 Paper9
- SAVIOR: Towards Bug-Driven Hybrid TestingYaohui Chen, Peng Li, Jun Xu, Shengjian Guo 等S&P 2020 · 被引用 186 次
- Do OS abstractions make sense on FPGAs?Dario Korolija, Timothy Roscoe, Gustavo AlonsoOSDI 2020 · 被引用 114 次
- Clio: a hardware-software co-designed disaggregated memory systemZhiyuan Guo, Yizhou Shan, Xuhao Luo, Yutong Huang 等ASPLOS 2022 · 被引用 110 次
- A Hypervisor for Shared-Memory FPGA PlatformsJiacheng Ma, Gefei Zuo, Kevin Loughlin, Xiaohe Cheng 等ASPLOS 2020 · 被引用 64 次
- Execution reconstruction: harnessing failure reoccurrences for failure reproductionGefei Zuo, Jiacheng Ma, Andrew Quinn, Pramod Bhatotia 等PLDI 2021 · 被引用 23 次
相关 Paper
- Debugging in the brave new world of reconfigurable hardwareJiacheng Ma, Gefei Zuo, Kevin Loughlin, Haoyang Zhang 等ASPLOS 2022 · 被引用 16 次
- KRR: Efficient and Scalable Kernel Record ReplayTianren Zhang, Sishuai Gong, Pedro FonsecaOSDI 2025 · 被引用 1 次
- Proteus: Heterogeneous FPGA VirtualizationFelix Gust, Shu Anzai, Charalampos Mainas, Atsushi Koshiba 等EuroSys 2026
- HeteroFuzz: fuzz testing to detect platform dependent divergence for heterogeneous applicationsQian Zhang, Jiyuan Wang, Miryung KimFSE 2021 · 被引用 16 次
- Rosebud: Making FPGA-Accelerated Middlebox Development More PleasantMoein Khazraee, Alex Forencich, George C. Papen, Alex C. Snoeren 等ASPLOS 2023 · 被引用 8 次
