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

dpdk-19.11 对向量指令的使用情况分析

不同向量指令识别关键字

__m128i sse
uint64x2_t neon
__m256i avx2
__m512i avx512
vector altivec

dpdk 向量收发包函数

支持 arm neno 向量收发包函数的 pmd 驱动

bnxt
hns3
i40e
ixgbe
mlx5
virtio

支持 sse 向量收发包函数的 pmd 驱动

axgbe
hinic
fm10k
bnxt
i40e
iavf
ice
ixgbe
mlx5
virtio

支持 avx2 向量收发包函数的 pmd 驱动

bnxt
enic
i40e
iavf
ice
idxd dma 引擎

支持 avx512 向量收发包函数的 pmd 驱动

i40e
iavf
ice
virtio

支持 ppc 架构 altivec 向量收发包函数的 pmd 驱动

i40e
virtio
mlx5

其它使用场景

./common/sfc_efx
./event/dlb2/
./raw/ioat/
./event/cnxk

dpdk lib 中对 simd 的使用场景

distributor 库

distributor 库提供流量动态负载平衡功能,在这种场景下有一个分发器 lcore,负责负载平衡或分发数据包,以及一组 worker lcore,负责从分发器接收数据包和对它们进行操作。
此库中使用 sse 向量指令优化了匹配 flow 的过程。

memcpy 函数优化

使用 sse、avx512 指令优化 memcpy 函数,封装为 rte_memcpy 函数

计算 crc 值

sse、neon、avx512 三种向量指令的不同 crc 计算方式

LPM

DPDK LPM 库组件为 32 位密钥实现最长前缀匹配 (LPM) 表搜索方法,该方法通常用于在 IP 转发应用程序中查找最佳路由匹配。
提供使用 sse、neon 指令实现的 rte_lpm_lookupx4 接口实现最长前缀匹配表搜索。

dpdk ACL 库中 ACL 规则检索优化

  • RTE_ACL_CLASSIFY_SSE
    :向量实现,最多可以并行处理 8 个流。需要 SSE 4.1 支持。要求最大 SIMD 位宽至少为 128。
  • RTE_ACL_CLASSIFY_AVX2
    :向量实现,最多可以并行处理16个流。需要 AVX2 支持。要求最大 SIMD 位宽至少为 256。
  • RTE_ACL_CLASSIFY_NEON
    :向量实现,最多可以并行处理8个流。需要 NEON 支持。要求最大 SIMD 位宽至少为 128。
  • RTE_ACL_CLASSIFY_ALTIVEC
    :向量实现,最多可以并行处理8个流。需要 ALTIVEC 支持。要求最大 SIMD 位宽至少为 128。
  • RTE_ACL_CLASSIFY_AVX512X16
    :向量实现,最多可以并行处理16个流。使用 256 位宽的 SIMD 寄存器。需要 AVX512 支持。要求最大 SIMD 位宽至少为 256。
  • RTE_ACL_CLASSIFY_AVX512X32
    :向量实现,最多可以并行处理32个流。使用 512 位宽的 SIMD 寄存器。需要 AVX512 支持。要求最大 SIMD 位宽至少为 512。

FIB

FIB 库为 32 位密钥或 128 位 IPv6 提供了快速的最长前缀匹配 (LPM) 搜索。它可以用于多种应用,其中最典型的是IPv4/IPv6转发。
FIB 库中使用 avx512 向量指令优化查表过程。

dpdk node 库中 ip4_lookup_node_process 接口的向量实现

ip4_lookup_node_process_vec 函数支持 x86 sse 与 arm neon 向量指令优化。

其它的查表相关使用场景

lib/efd/rte_efd_x86.h
lib/hash/rte_cmp_x86.h
lib/hash/rte_cuckoo_hash.c
lib/hash/rte_thash.h
lib/hash/rte_thash_x86_gfni.h
lib/member/rte_member_x86.h
lib/sched/rte_sched.c

相关文章:

dpdk-19.11 对向量指令的使用情况分析

不同向量指令识别关键字 __m128i sse uint64x2_t neon __m256i avx2 __m512i avx512 vector altivec dpdk 向量收发包函数 支持 arm neno 向量收发包函数的 pmd 驱动 bnxt hns3 i40e ixgbe mlx5 virtio 支持 sse 向量收发包函数的 pmd 驱动 axgbe hinic fm10k bnxt i40e …...

使用CIP采集欧姆龙EtherNet/IP从入门到精通

本文将会从以下几个方面介绍 1.CIP是什么 2.EtherNet/IP通信是什么 3.CIP通信报文解析 4.使用CIP常用的方法和功能介绍(UCMM) 5.自己封装了一个类,只要知道标签名称,和数据类型即可读写数据 6.demo展示 1.CIP是什么 CIP通信…...

企业如何高效管理微信里的客户?

对于企业来说,懂得高效管理微信列表的客户是非常重要的一件事,只有把客户管理好了,才能更好地提高客户的满意度和忠诚度,我们的销售业务才能顺利进行。 那么,应该怎样管理才能算是高效管理呢?下面就给大家…...

怎么在windows系统上查看kylinos的md5、sha1、sha256值

背景 当前信创行业正如火如荼进行中,当下载kylinos镜像到windows系统下,如何核对镜像是否有损坏,确保文件不被篡改,需要使用工具计算md5、sha1、sha256、sha512值,并与出库邮件中的md5比对。 QuickHash GUI软件简介 QuickHash GUI是一款开源代码的哈希工具,注意哈希能够…...

Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库

Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库 在Windows中使用C#连接Mysql数据库比较简单,可以直接使用MySql.Data库,目前最新版本为:8.3.0。 当然也可以结合MySql.Data和Dapper库一起使用,目前Dapper的最新版本为&a…...

大一专科,物联网专业,变态成长偏方!

最近看到一个大一,物联网专业的学生提问: 印象中,物联网专业2011年才有的,正好是我毕业那年。 我大概看过物联网专业要学的内容,总结下来就是,比软件不如计算机,比硬件知识不如电子。 不知道老师…...

MyBatis入门(JDBC规范,MyBatis,连接池,Lombok)【详解】

目录 一、JDBC规范【了解】 1. JDBC介绍 2. JDBC示例 3. JDBC的问题 二、MyBatis入门【重点】 1. Mybatis是什么 2. Mybatis使用步骤 3. Mybatis入门案例 1.创建SpringBoot工程 2.创建Mapper 3.功能测试 三、连接池【了解】 1. 什么是连接池 2. 有哪些数据库连接池…...

Vue3--数据和方法

data 组件的 data 选项是一个函数。Vue 在创建新组件实例的过程中会自动调用此函数。   data选项通常返回一个对象&#xff0c;然后 Vue 会通过响应性系统将其包裹起来&#xff0c;并以 $data 的形式存储在组件实例中。 <!DOCTYPE html> <html lang"en"&g…...

网络编程面试题

一、什么是IP地址 1.IP地址是主机在网路中的唯一标识&#xff0c;&#xff0c;当主机从一个网络切换到另一个网络时&#xff0c;会更改IP地址&#xff0c;同样的IP地址也是路由器进行路由选择的标识 2.IP地址的分类 IPV4&#xff1a;采用4字节无符号整数存储 IPV6&#xff…...

移动端区分点击和长按

为了适配移动端&#xff0c;图片加入touchstart&#xff0c;touchend&#xff0c;并加了 e.preventDefault() 屏蔽默认菜单。 然而突然发现移动端图片的链接无响应了&#xff0c;PC端没问题。 而且功能需要区分点击和长按。 原生js如何判断移动端的tap,dbltap&#xff0c;lo…...

虚拟环境的激活

(此博客仅用于我记录虚拟环境的激活方法) 虚拟环境的激活命令: venv/Scripts/activate 在F:\git repo\Database-Course-Design 这个文件夹中启动命令行 这个文件夹中含有虚拟环境venv 输入命令venv/Scripts/activate&#xff0c;就得到下面的结果: 此时就激活了虚拟环境&…...

宏集案例 | 风电滑动轴承齿轮箱内多点温度采集与处理

前言 风力发电机组中的滑动轴承齿轮箱作为关键的传动装置&#xff0c;承担着将风能转化为电能的重要角色。齿轮箱内多点温度的实时监测可以有效地预防设备故障和性能下降。实时监测齿轮箱内多点温度可以有效地预防设备故障和性能下降。 为了确保风力发电机组的安全稳定运行&a…...

linux 16进制写入

1.简单用法[推荐] echo 001122334455 | xxd -r -ps > test // 6 个字节xxd // xxd 命令用于用二进制或十六进制显示文件的内容 -r // 把xxd的十六进制输出内容转换回原文件的二进制内容 -ps // 以 postscript的连续十六进制转储输出&#xff0c;这也叫做纯十六进…...

代码随想录算法训练营第60天| Leetcode 84.柱状图中最大的矩形

文章目录 Leetcode 84.柱状图中最大的矩形 Leetcode 84.柱状图中最大的矩形 题目链接&#xff1a;Leetcode 84.柱状图中最大的矩形 题目描述&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状…...

编写一个简单的cmakelist.txt

文章目录 代码main.cpp头文件和子模块CMakeLists.txtsubModule/CMakeLists.txt顶层CMakeLists.txtCMakeList中的内容说明生成跨平台到Visual studio下上一篇提到了cmake的设计目的与作用,这一篇就来手动编写一个基本的cmakelist.txt,并演示一下如何生成不同平台的构建文件。 …...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的零售柜商品检测软件(Python+PySide6界面+训练代码)

摘要&#xff1a;开发高效的零售柜商品识别系统对于智能零售领域的进步至关重要。本文深入介绍了如何运用深度学习技术开发此类系统&#xff0c;并分享了全套实现代码。系统采用了领先的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5进行了性能比较&#xff0c;呈现了诸如…...

数据库的学习

数据库软件&#xff1a; 关系型数据库&#xff1a;Mysql Oracle SqlServer Sqlite 非关系型数据库&#xff1a;Redis NoSQL 1.数组&#xff0c;链表&#xff0c;文件&#xff0c;数据库 数组&#xff0c;链表&#xff1a;内存存放数据的方式&…...

matlab去除图片上的噪声

本问题来自CSDN-问答板块,题主提问。 如何利用matlab去除图片上的噪声? 一、运行效果图 左边是原图,右边是去掉噪音后的图片。 二、中文说明 中值滤波是一种常见的图像处理技术,用于去除图像中的噪声。其原理如下: 1. 滤波器移动:中值滤波器是一个小的窗口,在图像上移…...

C++超详细知识点(五):类的友元函数和友元类

目录 标题&#xff1a; 友元函数和友元类1. 友元函数2. 友元类 标题&#xff1a; 友元函数和友元类 友元函数和友元类是C中的概念&#xff0c;它们允许某些函数或类访问另一个类的私有成员。这样的访问权限超过了通常的私有和保护访问级别。请注意&#xff0c;友元类的使用应该…...

SOC设计:关于reset的细节

有如下几个信号 1、时钟&#xff1a;clk_top 2、总的reset信号&#xff1a;rstn_top 3、scan的reset信号&#xff1a;scan_rstn 4、软件复位信号&#xff1a;rstn_soft_sub 5、scan模式信号&#xff1a;scan_mode 6、reset bypass 信号&#xff1a;scan_rstn_sel 功能&a…...

Web Scraper插件实战:解决豆瓣电影Top250爬取乱序问题(附完整JSON配置)

Web Scraper插件实战&#xff1a;解决豆瓣电影Top250爬取乱序问题&#xff08;附完整JSON配置&#xff09; 当你第一次使用Web Scraper爬取豆瓣电影Top250榜单时&#xff0c;可能会遇到一个令人困惑的现象&#xff1a;明明页面上电影名称和简介是对应的&#xff0c;但爬取下来的…...

终极分屏游戏解决方案:Nucleus Co-Op 让单机游戏变身多人派对

终极分屏游戏解决方案&#xff1a;Nucleus Co-Op 让单机游戏变身多人派对 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 还在为单机游戏无法本地多…...

【超详细】前端必备:从0到1吃透JavaScript闭包,附真实项目避坑指南

文章目录第一章 从“变量生命周期”开始&#xff0c;重新理解作用域链1.1 一个让新手困惑的面试题&#xff1a;循环中的var与let1.2 作用域链的形成&#xff1a;函数定义位置决定了一切第二章 闭包的工程价值&#xff1a;从封装到模块化2.1 数据私有化&#xff1a;用闭包实现真…...

DataQA数问增长:金融小贷行业的“智能风控大脑“实战揭秘

数问"Web渠道转化率仅0.2&#xff0c;欺诈风险高、客户资质差——你的渠道投放预算&#xff0c;有多少正在打水漂&#xff1f;" &#x1f4a1; 真实场景还原&#xff1a;某头部消费金融公司的渠道危机 时间&#xff1a;2026年3月&#xff0c;周一上午9:00 角色&…...

Serilog:从结构化日志认知到 .NET 工程落地

MySQL 中的 count 三兄弟&#xff1a;效率大比拼&#xff01; 一、快速结论&#xff08;先看结论再看分析&#xff09; 方式 作用 效率 一句话总结 count(*) 统计所有行数 最高 我是专业的&#xff01;我为统计而生 count(1) 统计所有行数 同样高效 我是 count(*) 的马甲兄弟…...

30天小白进阶AI大神:收藏这份路线图,免费工具玩转大模型!

本文为AI学习新手提供了30天的系统学习路线图&#xff0c;涵盖了AI技术栈的三个层次&#xff1a;应用层、模型层和基础设施层。文章建议从应用层入手&#xff0c;逐步向下理解&#xff0c;并推荐了主流AI工具的对比及免费工具的入门使用。此外&#xff0c;还提供了给初学者的五…...

基于博途1200PLC + HMI的交通灯控制系统仿真:打造灵活交通指挥中枢

基于博途1200PLCHMI交通灯/红绿灯控制系统仿真(时间可设置) 程序&#xff1a; 1、任务&#xff1a;PLC.人机界面控制交通灯 2、系统说明&#xff1a; 系统设有手动模式、自动模式、黄闪模式、红绿灯时间可设置、各灯可单独手动模式、故障模拟模式、数码管显示等模式运行 交通灯…...

Phi-4-mini-reasoning部署教程:Nginx反向代理+Basic Auth安全加固

Phi-4-mini-reasoning部署教程&#xff1a;Nginx反向代理Basic Auth安全加固 1. 项目介绍 Phi-4-mini-reasoning是一款由微软开源的轻量级AI模型&#xff0c;专注于数学推理、逻辑推导和多步解题等强逻辑任务。这个3.8B参数的模型虽然体积小巧&#xff0c;但在推理能力上表现…...

BabyOS:MCU裸机开发的轻量级框架解析

1. BabyOS&#xff1a;专为MCU裸机开发设计的轻量级框架 在嵌入式开发领域&#xff0c;重复造轮子一直是困扰工程师的痛点。每次新项目启动&#xff0c;我们总需要重新调试那些基础功能模块——从串口通信到Flash操作&#xff0c;从定时器管理到协议栈实现。BabyOS的出现&#…...

comsol matlab联合仿真 也可加入solidworks三软件联合 参数化建模 全自动...

comsol matlab联合仿真 也可加入solidworks三软件联合 参数化建模 全自动建模迭代分析 实现多目标优化 帕累托前沿 代码模型与仿真参数化建模这事儿&#xff0c;玩过CAD和仿真的都懂——改个螺丝孔直径就得重新画图导出&#xff0c;累死个人。不过要是把SolidWorks、COMSOL和M…...