Switch Code Generation Using Program Synthesis
Xiangyu Gao, Taegyun Kim, Michael D. Wong, Divya Raghunathan, Aatish Kishan Varma, Pravein Govindan Kannan, Anirudh Sivaraman, Srinivas Narayana, Aarti Gupta
摘要
Writing packet-processing programs for programmable switch pipelines is challenging because of their all-or-nothing nature: a program either runs at line rate if it can fit within pipeline resources, or does not run at all. It is the compiler's responsibility to fit programs into pipeline resources. However, switch compilers, which use rewrite rules to generate switch machine code, often reject programs because the rules fail to transform programs into a form that can be mapped to a pipeline's limited resources-even if a mapping actually exists.
This paper presents a compiler, Chipmunk, which formulates code generation as a program synthesis problem. Chipmunk uses a program synthesis engine, SKETCH, to transform high-level programs down to switch machine code. However, naively formulating code generation as program synthesis can lead to long compile times. Hence, we develop a new domain-specific synthesis technique, slicing, which reduces compile times by 1-387× and 51× on average.
Using a switch hardware simulator, we show that Chipmunk compiles many programs that a previous rule-based compiler, Domino, rejects. Chipmunk also produces machine code with fewer pipeline stages than Domino. A Chipmunk backend for the Tofino programmable switch shows that program synthesis can produce machine code for high-speed switches.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper26
- Lyra: A Cross-Platform Language and Compiler for Data Plane Programming on Heterogeneous ASICsJiaqi Gao, Ennan Zhai, Hongqiang Harry Liu, Rui Miao 等SIGCOMM 2020 · 被引用 82 次
- Lucid: a language for control in the data planeJohn Sonchack, Devon Loehr, Jennifer Rexford, David WalkerSIGCOMM 2021 · 被引用 45 次
- Isolation Mechanisms for High-Speed Packet-Processing PipelinesTao Wang, Xiangrui Yang, Gianni Antichi, Anirudh Sivaraman 等NSDI 2022 · 被引用 44 次
- Sketchovsky: Enabling Ensembles of Sketches on Programmable SwitchesHun Namkung, Zaoxing Liu, Daehyeok Kim, Vyas Sekar 等NSDI 2023 · 被引用 44 次
- Gauntlet: Finding Bugs in Compilers for Programmable Packet ProcessingFabian Ruffy, Tao Wang, Anirudh SivaramanOSDI 2020 · 被引用 34 次
它引用的顶会 Paper2
- Lyra: A Cross-Platform Language and Compiler for Data Plane Programming on Heterogeneous ASICsJiaqi Gao, Ennan Zhai, Hongqiang Harry Liu, Rui Miao 等SIGCOMM 2020 · 被引用 82 次
- Config2Spec: Mining Network Specifications from Network ConfigurationsRüdiger Birkner, Dana Drachsler-Cohen, Laurent Vanbever, Martin T. VechevNSDI 2020 · 被引用 67 次
相关 Paper
- CaT: A Solver-Aided Compiler for Packet-Processing PipelinesXiangyu Gao, Divya Raghunathan, Ruijie Fang, Tao Wang 等ASPLOS 2023 · 被引用 8 次
- ParserHawk: Hardware-aware parser generator using program synthesisXiangyu Gao, Jiaqi Gao, Karan Kumar G., Muhammad Haseeb 等SIGCOMM 2025 · 被引用 1 次
- Sequence Abstractions for Flexible, Line-Rate Network MonitoringAndrew Johnson, Ryan Beckett, Xiaoqi Chen, Ratul Mahajan 等NSDI 2024 · 被引用 4 次
- Stateful multi-pipelined programmable switchesVishal ShrivastavSIGCOMM 2022 · 被引用 24 次
- P4runpro: Enabling Runtime Programmability for RMT Programmable SwitchesYifan Yang, Lin He, Jiasheng Zhou, Xiaoyi Shi 等SIGCOMM 2024 · 被引用 12 次
