网站更换模板,123上网,wordpress主页访客记录,橙色的网站文章目录 快速回忆背景前期准备DOCA SDK中的例子情况编译编译request编译responser 执行测试启动响应端启动请求端查看响应端 综述参考 快速回忆
# 生成编译目录和相关文件
cd /opt/mellanox/doca/samples/doca_rdma/rdma_write_requester
meson /tmp/req #将编译目录指定到/t… 文章目录 快速回忆背景前期准备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。 #mermaid-svg-lIN4hZ11oCApEzgL {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-lIN4hZ11oCApEzgL .error-icon{fill:#552222;}#mermaid-svg-lIN4hZ11oCApEzgL .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-lIN4hZ11oCApEzgL .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-lIN4hZ11oCApEzgL .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-lIN4hZ11oCApEzgL .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-lIN4hZ11oCApEzgL .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-lIN4hZ11oCApEzgL .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-lIN4hZ11oCApEzgL .marker{fill:#333333;stroke:#333333;}#mermaid-svg-lIN4hZ11oCApEzgL .marker.cross{stroke:#333333;}#mermaid-svg-lIN4hZ11oCApEzgL svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-lIN4hZ11oCApEzgL .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-lIN4hZ11oCApEzgL .cluster-label text{fill:#333;}#mermaid-svg-lIN4hZ11oCApEzgL .cluster-label span{color:#333;}#mermaid-svg-lIN4hZ11oCApEzgL .label text,#mermaid-svg-lIN4hZ11oCApEzgL span{fill:#333;color:#333;}#mermaid-svg-lIN4hZ11oCApEzgL .node rect,#mermaid-svg-lIN4hZ11oCApEzgL .node circle,#mermaid-svg-lIN4hZ11oCApEzgL .node ellipse,#mermaid-svg-lIN4hZ11oCApEzgL .node polygon,#mermaid-svg-lIN4hZ11oCApEzgL .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-lIN4hZ11oCApEzgL .node .label{text-align:center;}#mermaid-svg-lIN4hZ11oCApEzgL .node.clickable{cursor:pointer;}#mermaid-svg-lIN4hZ11oCApEzgL .arrowheadPath{fill:#333333;}#mermaid-svg-lIN4hZ11oCApEzgL .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-lIN4hZ11oCApEzgL .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-lIN4hZ11oCApEzgL .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-lIN4hZ11oCApEzgL .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-lIN4hZ11oCApEzgL .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-lIN4hZ11oCApEzgL .cluster text{fill:#333;}#mermaid-svg-lIN4hZ11oCApEzgL .cluster span{color:#333;}#mermaid-svg-lIN4hZ11oCApEzgL div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-lIN4hZ11oCApEzgL :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 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/reqmeson 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/respmeson 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的例子介绍如何编译运行。以及所在的目录。
参考