FPGA accelerators on the NIC enable the offloading of expensive packet processing tasks from the CPU. However, FPGAs have limited resources that may need to be shared among diverse applications, and programming them is difficult. We present a solution to run Linux's eXpress Data Path programs written in eBPF on FPGAs, using only a fraction of the available hardware resources while matching the performance of high-end CPUs. The iterative execution model of eBPF is not a good fit for FPGA accelerators. Nonetheless, we show that many of the instructions of an eBPF program can be compressed, parallelized or completely removed, when targeting a purpose-built FPGA executor, thereby significantly improving performance. We leverage that to design hXDP, which includes (i) an optimizing-compiler that parallelizes and translates eBPF bytecode to an extended eBPF Instruction-set Architecture defined by us; a (ii) soft-CPU to execute such instructions on FPGA; and (iii) an FPGA-based infrastructure to provide XDP's maps and helper functions as defined within the Linux kernel. We implement hXDP on an FPGA NIC and evaluate it running real-world unmodified eBPF programs. Our implementation is clocked at 156.25MHz, uses about 15% of the FPGA resources, and can run dynamically loaded programs. Despite these modest requirements, it achieves the packet processing throughput of a high-end CPU core and provides a 10x lower packet forwarding latency.


翻译:NIC 上的 FPGA 加速器能够卸载来自 CPU 的昂贵的包处理任务 。 但是, FPGA 的资源有限, 可能需要在不同应用程序中共享, 程序程序难度很大 。 我们提出了一个解决方案, 用于运行在 FPGA 上的eBPF eBPF eBGA eXpress Data Path 程序, 运行用在 eBPFGA 上的 eBGA eX 数据路径 eBBGA 程序, 仅使用现有硬件资源的一小部分, 与高端CPFPFGA 的功能匹配。 eBPFP 的迭接合执行模式不适合 FPGA 节节节加速器。 然而, 我们显示, eBPFP 程序的许多指示可以被压缩、 平行或完全删除, 当目标为 FPGA eFGA 执行时, 运行的 eFGA Q IM 程序可以实现 IM 10 IM IM IMD IMD IMD IMFS 和 IMFS 运行 的运行 10 IM IMD IMD IMFS IMD 10 IMD IMFS 的运行 IMD IMD IMD IMD IMFS 的功能, 10 IMD IMFS IMFS 10 IMD 运行 运行 的运行 10 IM IM IM 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 IMS 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 10

0
下载
关闭预览

相关内容

FPGA:ACM/SIGDA International Symposium on Field-Programmable Gate Arrays。 Explanation:ACM/SIGDA现场可编程门阵列国际研讨会。 Publisher:ACM。 SIT: http://dblp.uni-trier.de/db/conf/fpga/
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
【陈天奇】TVM:端到端自动深度学习编译器,244页ppt
专知会员服务
86+阅读 · 2020年5月11日
斯坦福2020硬课《分布式算法与优化》
专知会员服务
118+阅读 · 2020年5月6日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
107+阅读 · 2020年5月3日
深度强化学习策略梯度教程,53页ppt
专知会员服务
178+阅读 · 2020年2月1日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
已删除
将门创投
5+阅读 · 2019年8月19日
分布式并行架构Ray介绍
CreateAMind
9+阅读 · 2019年8月9日
计算机类 | PLDI 2020等国际会议信息6条
Call4Papers
3+阅读 · 2019年7月8日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
CCF A类 | 顶级会议RTSS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年4月17日
IEEE | DSC 2019诚邀稿件 (EI检索)
Call4Papers
10+阅读 · 2019年2月25日
计算机类 | ISCC 2019等国际会议信息9条
Call4Papers
5+阅读 · 2018年12月25日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
计算机类 | 11月截稿会议信息9条
Call4Papers
6+阅读 · 2018年10月14日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
0+阅读 · 2020年12月10日
HAQ: Hardware-Aware Automated Quantization
Arxiv
6+阅读 · 2018年11月21日
Neural Architecture Optimization
Arxiv
8+阅读 · 2018年9月5日
VIP会员
相关资讯
已删除
将门创投
5+阅读 · 2019年8月19日
分布式并行架构Ray介绍
CreateAMind
9+阅读 · 2019年8月9日
计算机类 | PLDI 2020等国际会议信息6条
Call4Papers
3+阅读 · 2019年7月8日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
CCF A类 | 顶级会议RTSS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年4月17日
IEEE | DSC 2019诚邀稿件 (EI检索)
Call4Papers
10+阅读 · 2019年2月25日
计算机类 | ISCC 2019等国际会议信息9条
Call4Papers
5+阅读 · 2018年12月25日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
计算机类 | 11月截稿会议信息9条
Call4Papers
6+阅读 · 2018年10月14日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员