AMD-Xilinx 开源基于 LLVM 的 Nanotube 编译器
AMD-Xilinx 最近开源了他们基于 LLVM 的 Nanotube 编译器。根据介绍,AMD-Xilinx Nanotube 编译器采用 eBPF XDP C 代码,并构建在 LLVM 编译器堆栈之上,然后能够在 HLS C++ 中生成一个可在 Xilinx FPGA 上运行的数据包处理管道。 Nanotube 是编译器通道、库和 API 的集合,用于促进 EBPF XDP 和 similar networking 代码在 SmartNIC 的 FPGA 上执行。编译器将 EBPF XDP C 代码作为输入,并在 HLS C++ 中输出数据包处理管道。然后可以使用 Vitis HLS 合成此 HLS C++ 代码并将其放置在 FPGA 上。 编译器对程序进行各种转换;从将 EBPF 调用转换为对类似 Nanotube API 函数的调用开始。然后它在结构上和不同的 API 级别上执行多个阶段的代码转换: mem2req:将 C 语言风格的指针访问(加载和存储)转换为对 map 和 packet data 的显式访问 optreq:将相邻的 map / packet访问合并为更少的...







