自学内容网 自学内容网

微知-DOCA SDK中如何编译一个sample?如何运行?(meson /tmp/xxx; meson compile -C /tmp/xxx)

快速回忆

# 生成编译目录和相关文件
cd /opt/mellanox/doca/samples/doca_rdma/rdma_write_requester
meson /tmp/req #将编译目录指定到/tmp/req中

# 编译
meson compile -C /tmp/req #编译代码 ;meson compile是对ninja的封装。
# 或者用 
ninja -C /tmp/req 

如果要支持查看详细编译过程,包括头文件路径和gcc参数
meson compile -C /tmp/req -v

背景

DOCA: Data Center-on-a-Chip Architecture,片上数据中心架构。是NVIDIA针对DPU的软件框架。DOCA之于DPU,就相当于CUDA之于GPU。本文介绍的是DOCA SDK中的DOCA ARGP模块的机制原理,他是DOCA程序的一个标准参数处理框架。
本文将介绍DOCA SDK中的一个DOCA_RDMA的例子,介绍如何编译运行。

前期准备

该实验编译之前需要提前准备好DPU的硬件、安装好对应的DOCA SDK包,以及创建好对应的sf设备。sf创建方式参考兄弟篇:https://blog.csdn.net/essencelite/article/details/144000220
确认代码所在路径存在且是期望代码:/opt/mellanox/doca/samples
另外DOCA的SDK在DPU中就是在/opt/mellanox/doca/目录下。

DOCA SDK中的例子情况

本文将提供一个rdma write的例子。实战例子是启动一个响应端和一个请求端。请求端发起一个rdma的write,内容是hi DOCA RDMA。

Hi DOCA RDMA!
requester
responsor按回车发送消息

编译

编译前需要安装meson和ninja。详细参考兄弟篇文章。

编译request

cd /opt/mellanox/doca/samples/doca_rdma/rdma_write_requester
meson /tmp/req #将编译目录指定到/tmp/req中
meson compile -C /tmp/req #编译代码 或者用 ninja -C /tmp/req;meson compile是对ninja的封装。

编译responser

cd /opt/mellanox/doca/samples/doca_rdma/rdma_write_responder
meson /tmp/resp #将编译目录指定到/tmp/resp中
meson compile -C /tmp/resp #编译代码 或者用 ninja -C /tmp/resp;meson compile是对ninja的封装。

执行测试

启动响应端

cd /tmp/resp
./doca_rdma_write_responder -d mlx5_2 -cm

这里使用cm建链,另外使用了mlx5_2的设备,该设备bind在一个sf设备上,详情参考后文。
在这里插入图片描述

启动请求端

cd /tmp/req
./doca_rdma_write_requester -d mlx5_2 -cm -sa 1.1.1.1

可以看到-cm指定使用cm方式使用带内数据建链,-sa指定服务端地址
在这里插入图片描述

可以看到请求端建链成功并且退出。

查看响应端

可以看到响应端从等待过程,到交换数据过程。
在这里插入图片描述

综述

本文将介绍DOCA SDK中的一个DOCA_RDMA的例子,介绍如何编译运行。以及所在的目录。

参考

在这里插入图片描述


原文地址:https://blog.csdn.net/essencelite/article/details/144001893

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!