当前位置:首页 > 经验 >

nvidia怎么设置软件(nvidia安装完怎么设置)

来源:原点资讯(www.yd166.com)时间:2022-11-06 18:58:41作者:YD166手机阅读>>

nvidia怎么设置软件,nvidia安装完怎么设置(1)

在这篇文章中,将带您了解 FRR DOCA 数据平面插件的创建过程,并向您展示如何使用全新的 DOCA flow 库卸载 PBR 规则。在上一篇文章中,您了解了使用 DPDK rte_flow 库创建 FRR 数据平面插件,以加速 BlueField 上的 PBR 规则。有关内容,请参见使用 NVIDIA BlueField DPU 和 DPDK 开发应用程序。

向 Zebra 添加 DOCA 数据平面插件

仍然使用 DPDK API 进行硬件初始化,但随后使用 DOCA flow API 来设置数据平面流管道。为此,必须将 DPDK (libdpdk.pc)和 DOCA flow(doca-flow.pc)共享库链接到 DOCA 数据平面插件。

root@dpu-arm:~# export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/mellanox/dpdk/lib/aarch 64-linux-gnu/pkgconfig root@dpu-arm:~# pkg-config --libs doca-flow -ldoca_flow root@dpu-arm:~# pkg-config --cflags doca-flow -DALLOW_EXPERIMENTAL_API -include rte_config.h -mcpu=cortex-a72 -DALLOW_EXPERIMENTAL_API -I/opt/mellanox/dpdk/include/dpdk -I/opt/mellanox/dpdk/include/dpdk/../aarch64-linux-gnu/dpdk -I/opt/mellanox/dpdk/include/dpdk -I/usr/include/libnl3 root@dpu-arm:~#

在 FRR makefile(configure.ac)中为 DPDK 和 DOCA flow 添加了 pkg check-and-define 宏。

if test "$enable_dp_doca" = "yes"; then PKG_CHECK_MODULES([DOCA], [libdpdk doca-flow], [ AC_DEFINE([HAVE_DOCA], [1], [Enable DOCA backend]) DOCA=true ], [ AC_MSG_ERROR([configuration specifies --enable-dp-doca but DOCA libs were not found]) ]) fi

将 DPDK 和 DOCA flow 库及 cflags 都包含在 zebra-dp-doca make 宏(zebra/subdir.am)中。

zebra_zebra_dplane_doca_la_CFLAGS = $(DOCA_CFLAGS) zebra_zebra_dplane_doca_la_LIBADD = $(DOCA_LIBS)

使用 /etc/frr/daemons 启动 FRR 服务时,可以启用 DOCA 数据平面插件。

zebra_options= " -M dplane_doca -A 127.0.0.1"]硬件初始化和端口映射

使用 DPDK API、rte_eal_init 和 rte_eth_dev_info_get 初始化硬件,并设置 Zebra 接口到 DPDK 端口映射。此工作流与上一节中的 DPDK 数据平面插件相同。

root@dpu-arm:~# vtysh -c "show dplane doca port" Total ports: 6 cores: 8 Port Device IfName IfIndex sw,domain,port 0 0000:03:00.0 p0 4 0000:03:00.0,0,65535 1 0000:03:00.0 pf0hpf 6 0000:03:00.0,0,4095 2 0000:03:00.0 pf0vf0 15 0000:03:00.0,0,4096 3 0000:03:00.0 pf0vf1 16 0000:03:00.0,0,4097 4 0000:03:00.1 p1 5 0000:03:00.1,1,65535 5 0000:03:00.1 pf1hpf 7 0000:03:00.1,1,20479 root@dpu-arm:~#DOCA flow 初始化

为了使用 doca-flow 编写 PBR 规则,必须初始化 doca-flow 和 doca-flow-port 数据库。此初始化是在使用 rte_eal_init 初始化硬件后完成的。

使用 doca_flow_init 通过配置流和队列计数来初始化 doca-flow 库。

struct doca_flow_cfg flow_cfg; memset(&flow_cfg, 0, sizeof(flow_cfg)); flow_cfg.total_sessions = ZD_DOCA_FLOW_MAX; flow_cfg.queues = doca_ctx->nb_cores; doca_flow_init (&flow_cfg, &err);

当使用 DPDK 设置硬件端口时,必须使用 dpdk_port-id 将它们安装到 doca-flow-port 数据库中。

struct doca_flow_port_cfg port_cfg; memset(&port_cfg, 0, sizeof(port_cfg)); port_cfg.port_id = dpdk_port_id; port_cfg.type = DOCA_FLOW_PORT_DPDK_BY_ID; snprintf(port_id_str, ZD_PORT_STR_MAX, "%u", port_cfg.port_id); port_cfg.devargs = port_id_str; doca_port = doca_flow_port_start (&port_cfg, &err);使用 doca-flow API 编写 PBR 规则

通过一系列用于匹配、动作、转发和监控属性的数据结构来对 DOCA 流进行编程。

struct doca_flow_match match, match_mask; struct doca_flow_actions actions; struct doca_flow_fwd fwd; struct doca_flow_monitor monitor;流匹配

这被指定为匹配和匹配掩码。匹配掩码是可选的,如果未指定,则由 doca-flow 库自动填充。

memset(&match, 0, sizeof(match)); memset(&match_mask, 0, sizeof(match_mask)); match.out_src_ip.type = DOCA_FLOW_IP4_ADDR; match.out_src_ip.ipv4_addr = src_ip; match_mask.out_src_ip.IPv4_addr = src_ip_mask; match.out_dst_ip.type = DOCA_FLOW_IP4_ADDR; match.out_dst_ip.ipv4_addr = dst_ip; match_mask.out_src_ip.ipv4_addr = dst_ip_mask; match.out_l4_type = ip_proto; match.out_src_port = RTE_BE16 (l4_src_port); match_mask.out_src_port = UINT16_MAX; match.out_dst_port = RTE_BE16 (l4_dst_port); match_mask.out_dst_port = UINT16_MAX;

我跳过填充 eth 或 eth-mask 等字段。

这是因为 doca-flow 库可以基于其他匹配字段 dst_ip 或 src_ip 自动将此类字段填充到 RTE_ETHER_TYPE_IPV4 或 RTE_ETHER_TYPE_IPV6。

流动作

为了路由数据包,必须将目标 MAC 地址更改为网关(leaf2) MAC ,减少 TTL ,并更改源 MAC 地址。这一点最初在上一篇文章中讨论,使用 NVIDIA BlueField DPU 和 DPDK 开发应用程序。

memset(&actions, 0, sizeof(actions)); actions.dec_ttl = true; memcpy(actions.mod_src_mac, uplink_mac, DOCA_ETHER_ADDR_LEN); memcpy(actions.mod_dst_mac, gw_mac, DOCA_ETHER_ADDR_LEN);流转发

然后,输出端口设置为上行链路。

memset(&fwd, 0, sizeof(fwd)); fwd.type = DOCA_FLOW_FWD_PORT; fwd.port_id = out_port_id; 流监控

设置流量计数器进行故障排除。

memset(&monitor, 0, sizeof(monitor)); monitor.flags |= DOCA_FLOW_MONITOR_COUNT;DOCA 流管道和入口

流程创建分为两步:

  1. 创建流管道。
  2. 将流条目添加到流管道。

第一步是为查找阶段创建软件模板。第二步使用模板在硬件中的流进行编程。

当您必须对许多类似的流进行编程时,管道非常有用。对于这种情况,可以设置单个匹配模板(管道),并指示在创建流条目时必须更新哪个匹配字段(例如,第 4 层目标端口)。后续的流条目只需要填充与管道(第 4 层目标端口)不同的匹配字段。

对于 PBR ,每个流模式都是唯一的,所以使用已经填充的流属性为每个 PBR 规则创建了一个单独的管道和条目。

struct doca_flow_pipe_cfg pipe_cfg; pipe_cfg.name = "pbr"; pipe_cfg.port = in_dport->doca_port; pipe_cfg.match = &match; pipe_cfg.match_mask = &match_mask; pipe_cfg.actions = &actions; pipe_cfg.monitor = &monitor; pipe_cfg.is_root = true; flow_pipe = doca_flow_create_pipe (&pipe_cfg, &fwd, NULL, &err); flow_entry = doca_flow_pipe_add_entry (0, flow_pipe, &match, &actions, &monitor, &fwd, &err);流删除

流管道和条目创建 API 返回管道和流指针,这些指针必须被缓存以供后续删除。

doca_flow_pipe_rm_entry( 0, flow_entry); doca_flow_destroy_pipe (port_id, flow_pipe); 流统计

在创建流时,设置 DOCA_FLOW_MONITOR_COUNT 标志。

使用 doca_flow_query 查询流统计数据。

struct doca_flow_query query ; // hit counters – query.total_pkts and query.total_bytes memset(&query, 0, sizeof(query)); doca_flow_query (flow_entry, &query);验证硬件加速

FRR-PBR 规则配置和流量生成与 dpdk-plugin 相同。流量按预期由 DPU 硬件转发,并可使用流计数器进行验证。

root@dpu-arm:~# vtysh -c "show dplane doca pbr flow" Rules if pf0vf0 Seq 1 pri 300 SRC IP Match: 172.20.0.8/32 DST IP Match: 172.30.0.8/32 IP protocol Match: 17 DST Port Match: 53 Tableid: 10000 Action: nh: 192.168.20.250 intf: p0 Action: mac: 00:00:5e:00:01:fa DOCA flow: installed 0xffff28005150 DOCA stats: packets 202 bytes 24644 root@dpu-arm:~#

还可以使用硬件条目进行验证:

root@dpu-arm:~# ~/mlx_steering_dump/mlx_steering_dump_parser.py -p `pidof zebra` - f /tmp/dpdkDump domain 0xe294002, table 0xaaab07648b10, matcher 0xffff28012c30, rule 0xffff28014040 match: outer_l3_type: 0x1, outer_ip_dst_addr: 172.30.0.8, outer_l4_type: 0x2, metadata_reg_c_0: 0x00030000, outer_l4_dport: 0x0035, outer_ip_src_addr: 172.20.0.8 action: MODIFY_HDR(hdr(dec_ip4_ttl)), rewrite index 0x0 & VPORT, num 0xffff & CTR(hits(352), bytes(42944)), index 0x806200

通过使用 doca-flow ,FRR 现在具有了第二个数据平面插件,可用于 PBR 规则的硬件加速。

应用程序开发要点

在本系列文章中,您了解了如何使用 rte_flow 或 doca_flow 通过四个步骤对 DPU 网络应用程序进行硬件加速:

  • 将 DOCA / DPDK 库链接到应用程序。
  • 初始化硬件。
  • 设置应用程序到硬件端口的映射。
  • 用于引导流量的流编程。

随着越来越多的元素卸载到 DPU 上,及源代码行( SLOC )的增加,开发过程可能会变得复杂。而这正是 DOCA 抽象库可以帮助解决的:

  • DOCA 附带了几个内置库,如 doca-dpi 、 gRPC 、 Firefly 时间同步等。这些库支持应用程序的快速即插即用。
  • DOCA 构建(如 doca_pipe )使您能够模板化管道,消除样板代码并优化流插入。
  • 即将推出的 DOCA 库,如硬件加速的 LPM (最长前缀匹配),使构建交换机管道变得更容易。这与您在本系列文章中看到的示例应用程序 FRR 尤其相关, FRR 通常用于使用 BGP 构建 LPM 路由表(或 RIB )。
  • 借助 DOCA ,您还可以在融合加速器上的 GPU 和 DPU 上实现令人激动的开发体验。

nvidia怎么设置软件,nvidia安装完怎么设置(2)

图 1. 融合加速器

你准备好让你的应用程序开发达到令人敬仰的高度了吗?报名参加 DOCA 提前进入开发商计划今天开始建设。

有关更多信息,请参阅以下参考资料:

  • 从 DOCA 1.2 起,NVIDIA BlueField DPU 平台将支持零信任安全保障
  • 用 NVIDIA DOCA 1.2 构建零信任安全基础
  • 通过免费的入门课程开始 DOCA 的 DPU 软件开发之旅
  • 白皮书发布:DOCA 简化 DPU 采用,为数据中心部署加速

栏目热文

nvidia游戏最佳设置(怎么设置nvidia让游戏更流畅)

nvidia游戏最佳设置(怎么设置nvidia让游戏更流畅)

在 NVIDIA 本月发布的大部分博文,都是围绕着 DLSS 及其对现在开源的图像缩放替代方案的改变。在其中一篇博文中,...

2022-11-06 18:56:14查看全文 >>

nvidia怎么设置游戏最佳状态(笔记本nvidia设置最佳)

nvidia怎么设置游戏最佳状态(笔记本nvidia设置最佳)

显卡作为电脑的重要组成部分购买时往往会选择预算之内最好的但想要一块好显卡发挥最佳图形性能还需要优化设置才能实现本期为大家...

2022-11-06 19:31:00查看全文 >>

nvidia调整桌面颜色最佳设置(nvidia桌面颜色最佳调整数值)

nvidia调整桌面颜色最佳设置(nvidia桌面颜色最佳调整数值)

电脑亮度怎么调?现在越来越多网友用电脑办公,但是电脑的亮度要怎么调整?毕竟电脑亮度不合适是非常伤眼睛的。XP系统的笔记本...

2022-11-06 19:01:40查看全文 >>

nvidia设置面板怎么调(nvidia控制面板调整出厂设置)

nvidia设置面板怎么调(nvidia控制面板调整出厂设置)

很多使用win10系统的小伙伴点击鼠标右键打开新建的时候,发现没有nvidia控制面板,这是怎么一回事呢?其实不是什么大...

2022-11-06 18:49:47查看全文 >>

nvidia设置不见了(nvidia显示设置不可用怎么办)

nvidia设置不见了(nvidia显示设置不可用怎么办)

许多 小伙伴们全是立即点一下右键开启Nvidia控住面板,而有一些小伙伴们点一下右键沒有见到Nvidia控住面板,那麼遇...

2022-11-06 19:34:28查看全文 >>

nvidia设置调不了(nvidia面板调不了设置)

nvidia设置调不了(nvidia面板调不了设置)

多刚接触电脑的小伙伴们,因为对电脑不熟悉,在使用nvidia控制面板的时候,遇到nvidia控制面板闪退怎么办呢?下面小...

2022-11-06 18:56:49查看全文 >>

nvidia怎么设置不了了(nvidia设置打不开怎么解决)

nvidia怎么设置不了了(nvidia设置打不开怎么解决)

前言 前几天给大家分享了Win10精简版系统的安装与优化相关教程,相信有很多使用Nvidia显卡的小伙伴会发现一个头疼的...

2022-11-06 19:13:58查看全文 >>

nvidia为什么没有显示设置(为什么nvidia选项不见了)

nvidia为什么没有显示设置(为什么nvidia选项不见了)

很多人遇到这样一个问题,新买的台式机电脑玩游戏出现卡顿不流畅的现象,准备在NVIDIA控制面板查看是否设置的问题,在打开...

2022-11-06 19:05:28查看全文 >>

正宗肉三鲜包子的做法(三鲜馅包子怎么做)

正宗肉三鲜包子的做法(三鲜馅包子怎么做)

1.首先来和面,将酵母粉、泡打粉分别加入面粉中,然后加清水。 2.将面粉和清水拌匀和成面团转移到案板上揉至面团表...

2022-11-06 18:54:34查看全文 >>

三鲜大肉包的家常做法(猪肉三鲜包最正宗的做法)

三鲜大肉包的家常做法(猪肉三鲜包最正宗的做法)

只需一次发酵的包子,比二发省1 小时,暄软白胖,素三鲜馅没吃够。春末夏初,抓住春天的小尾巴,赶紧吃顿“素三鲜”的大包子,...

2022-11-06 19:01:20查看全文 >>

文档排行