搭建P4C与P4FPGA联合编译环境1、简介在2016SIGCOMM大会上.docVIP

  • 33
  • 0
  • 约3.62千字
  • 约 4页
  • 2018-12-13 发布于天津
  • 举报

搭建P4C与P4FPGA联合编译环境1、简介在2016SIGCOMM大会上.doc

搭建P4C与P4FPGA联合编译环境1、简介在2016SIGCOMM大会上.doc

搭建P4C与P4FPGA联合编译环境 1、简介 在2016 SIGCOMM大会上HanW发表了一篇名为《P4FPGA: High Level Synthesis for Networking》的论文,该论文实现了一个从P4语言到Bluespec的编译器。这个P4FPGA的工作发表在会议第一天的NetPL workshop上,P4语言与FPGA的结合引起了工业界的重视。因此,本文将分享搭建P4C与P4FPGA联合编译环境的经验。 2、编译流程解析 最新更新的P4C支持P4_14和P4_16两个版本,首先将P4_14和P4_16编写的P4源程序转换成通用的中间表示IR,然后经过前端编译器生成为通用的后端中间表示IR,最后经过不同的后端编译器生成特定目标平台的代码。具体流程如图所示: 其中,P4C源码中包含3个后端编译器原型:eBPF、BMv2和p4test。eBPF能够生成可以扩展Berkeley数据包过滤程序的C代码;BMv2能够生成可以用BMv2进行简单的网络交换仿真的JSON文件;p4test是一个测试用的后端编译器。以及可以编写或定制其他任意的目标平台的后端编译器。 3、基本环境配置 系统:Ubuntu 16.04、Ubuntu14.04(以下均在root用户下操作) (1)需要安装boost库 在P4FPGA的makefile文件中有使用到boost库,如果缺少boost库编译时会报如下错误信息: /usr/bin/ld: cannot find -lboost_system /usr/bin/ld: cannot find -lboost_filesystem (2)boost中用到了其他函数库,因此需要先安装依赖库。 apt-get install mpi-default-dev #安装mpi库 apt-get install libicu-dev   #支持正则表达式的UNICODE字符集 apt-get install python-dev    #需要python的话 #如果编译出现错误:bzlib.h: No such file or directory apt-get install libbz2-dev #如果在安装以上库失败的话可以尝试更新后再进行安装。 sudo apt-get update (3)上述函数库装好之后,就可以编译boost库了。boost下载链接: HYPERLINK /projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz/download /projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz/download 解压boost_1_63_0.tar.gz到/home/目录下,执行以下操作: cd /home/boost_1_63_0/ ./bootstrap.sh #运行bootstrap.sh脚本 编译完成后,进行安装,也就是将头文件和生成的库。 ./b2 install #安装boost库 安装结束后在/usr/local/lib和/usr/local/include目录下生成相应库文件和头文件。 (4)测试boost库是否安装成功 可参考: HYPERLINK /yhrun/article/details/8099630 /yhrun/article/details/8099630 重要提示:编译成功后运行执行时,如果出现以下信息 error while loading shared libraries: libboost_system.so.1.63.0: cannot open shared object file: No such file or directory 是因为系统在当前注册的搜索路径中找不到所需的共享库。 执行以下操作(或在/etc/profile文件添加): export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib:/usr/local/include 4、搭建P4C与P4FPGA联合编译环境 (1)下载P4C与P4FPGA源码 cd /home/ git clone /p4lang/p4c.git git clone /hanw/p4fpga.git (2)关键一:建立p4c与p4fpga 打开p4c源码目录预编译: cd p4c ./bootstrap.sh 运行完后在p4c目录下会生成build和extensions文件夹。 建立一个软连接: ln -s /home/p4fpga/compiler /ho

文档评论(0)

1亿VIP精品文档

相关文档