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

文章目录

快速回忆

bash 复制代码
# 生成编译目录和相关文件
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

bash 复制代码
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

bash 复制代码
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的封装。

执行测试

启动响应端

bash 复制代码
cd /tmp/resp
./doca_rdma_write_responder -d mlx5_2 -cm

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

启动请求端

bash 复制代码
cd /tmp/req
./doca_rdma_write_requester -d mlx5_2 -cm -sa 1.1.1.1

可以看到-cm指定使用cm方式使用带内数据建链,-sa指定服务端地址

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

查看响应端

可以看到响应端从等待过程,到交换数据过程。

综述

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

参考

相关推荐
mounter6253 小时前
高性能网络技术演进与创新探索:RDMA、eBPF/XDP 深度解析及 LSF/MM/BPF 2023 专题演讲
linux·ebpf·linux kernel·kernel·rdma·xdp
tiantianuser2 天前
NVME-oF IP 设计8 :设计扫盲6
网络协议·rdma·高速传输·nvme-of
tiantianuser9 天前
NVME-oF IP 设计7 :设计扫盲5
网络协议·rdma·roce v2·nvme of
mounter62510 天前
探索未来 AI 算力网络的基石:从传统 RoCE 走向 SRv6 驱动的弹性弹性网络(解析 Netdev 0x1A 创新实践)
linux·网络·人工智能·linux kernel·kernel·rdma·rocev2
tiantianuser10 天前
NVME-oF IP 设计5 :设计扫盲3
rdma·高速传输·cmac·roce v2·nvme of
tiantianuser15 天前
NVME-oF IP 设计1 :为什么要设计它?
网络·网络协议·rdma·roce v2·nvme of
tiantianuser16 天前
NVME-oF IP 设计2 :设计之前的调研!
网络·网络协议·rdma·roce v2·nvme of
mounter62520 天前
深入解析 RDMA 中的 Address Handler (AH) 缓存:AWS EFA 驱动的硬件演进与软件复用艺术
linux·kernel·rdma·hashtable·hash table·address handle
分布式存储与RustFS2 个月前
RustFS S3 Table 开源后,我重新梳理了一下 Iceberg 数据湖的选型思路
人工智能·开源·minio·dpu·rustfs·ai存储·s3 table
caodongwang2 个月前
GPU Direct RDMA调研
gpu·rdma·gdr