当前位置: 首页 > news >正文

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

文章目录

  • 快速回忆
  • 背景
  • 前期准备
  • DOCA SDK中的例子情况
  • 编译
    • 编译request
    • 编译responser
  • 执行测试
    • 启动响应端
    • 启动请求端
    • 查看响应端
  • 综述
  • 参考

快速回忆

# 生成编译目录和相关文件
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的例子,介绍如何编译运行。以及所在的目录。

参考

在这里插入图片描述

http://www.lryc.cn/news/491553.html

相关文章:

  • 【Leetcode 每日一题】146. LRU 缓存(c++)
  • 【机器学习】近似分布的熵到底是p(x)lnq(x)还是q(x)lnq(x)?
  • 网络安全,文明上网(6)网安相关法律
  • 网络安全学习74天(记录)
  • Spring Boot 实战:基于 Validation 注解实现分层数据校验与校验异常拦截器统一返回处理
  • 20241125复盘日记
  • 【Excel】拆分多个sheet,为单一表格
  • 类和对象plus版
  • shell练习
  • ApiChain 从迭代到项目 接口调试到文档生成单元测试一体化工具
  • Vercel 设置自动部署 GitHub 项目
  • SQL进阶:如何跳过多个NULL值取第一个非NULL值?
  • laravel 5.5 增加宏指令 joinSub, 省去->toSql() 和 addBinding($bindings);
  • 远程控制软件:探究云计算和人工智能的融合
  • 网络协议之DNS
  • .net6 使用 FreeSpire.XLS 实现 excel 转 pdf - docker 部署
  • QML学习 —— 28、3种等待指示控件(附源码)
  • flutter 专题十一 Fair原理篇Fair逻辑动态化架构设计与实现
  • 利用开源图床的技巧与实践
  • C++数据结构与算法
  • Paddle Inference部署推理(三)
  • python(四)os模块、sys模块
  • Oracle 数据库 IDENTITY 列
  • 【前端】js vue 屏蔽BackSpace键删除键导致页面后退的方法
  • 深入解密 K 均值聚类:从理论基础到 Python 实践
  • ArcGIS应用指南:ArcGIS制作局部放大地图
  • 非root用户安装CUDA
  • 单点修改,区间求和或区间询问最值(线段树)
  • 线性代数空间理解
  • Spring Boot教程之五:在 IntelliJ IDEA 中运行第一个 Spring Boot 应用程序