数据接收全流程图(物理网卡 → 应用层)
以下是 DPDK + VPP 在 Linux 系统中从网卡收包到应用层的完整数据流程图及分步解析,结合了内核旁路和用户态协议栈的协同工作:
数据接收全流程图(物理网卡 → 应用层)
plaintext
复制
下载
+------------------------------------------------------------------------------------+ | Linux 系统 | +------------------------------------------------------------------------------------+ | | | +------------+ DMA +-------------+ Zero-Copy +---------------------+ | | | 物理网卡 | ------> | DPDK PMD | ------------> | DPDK RX队列 | | | | (NIC) | <------ | (Poll Mode | <------------ | (rte_eth_rx_burst) | | | +------------+ 中断屏蔽 +-------------+ 轮询 +---------------------+ | | | | | v | | +---------------------+ 共享内存 +------------------+ 向量化传递 +--------+ | | | DPDK内存池 | <--------> | VPP输入节点 | ----------> | VPP | | | | (rte_mempool/mbuf) | | (ethernet-input) | | 图节点 | | | +---------------------+ +------------------+ +--------+ | | | | | v | | +------------------+ 协议解析 +------------------+ 路由决策 +-------------+ | | | VPP协议栈处理 | --------> | L3/L4处理 | --------> | 转发/本地交付 | | | | (ip4-input, etc.) | | (NAT, ACL, etc.) | | (local-node)| | | +------------------+ +------------------+ +-------------+ | | | | | v | | +------------------+ Socket API +------------------+ 系统调用 +-----------+ | | | 应用层Socket | <----------- | VPP Socket层 | <-------- | 用户应用 | | | | (TCP/UDP) | | (vcl, session) | | (如Nginx) | | | +------------------+ +------------------+ +-----------+ | | | +------------------------------------------------------------------------------------+
关键步骤详解
1. 网卡到DPDK(内核旁路)
-
物理层:
-
网卡通过 DMA 将数据包写入预分配的 DPDK内存池(rte_mempool)。
-
中断屏蔽:DPDK禁用网卡中断,改用主动轮询(
rte_eth_rx_burst
)。
-
-
零拷贝:
-
数据包始终驻留在用户态内存(
rte_mbuf
),避免内核拷贝。
-
2. DPDK到VPP输入节点
-
向量化传递:
-
DPDK批量接收的数据包(如64个)通过 共享内存 传递给VPP的
ethernet-input
节点。
-
-
协议识别:
-
VPP解析以太网头,决定下一跳节点(如
ip4-input
或ip6-input
)。
-
3. VPP协议栈处理
-
L3/L4处理:
-
IP层:路由查找(FIB)、分片重组。
-
传输层:TCP/UDP校验、NAT转换(如
nat44-in2out
节点)。
-
-
本地交付判断:
-
若目的IP为本地,数据包进入
local-node
节点,准备提交给应用层。
-
4. VPP到应用层
-
Socket抽象层:
-
VCL (VPP Communication Library):提供兼容Linux Socket的API(如
socket()
、recv()
)。 -
Session层:管理连接状态(类似内核的
struct sock
)。
-
-
数据交付:
-
应用调用
recv()
时,VCL从VPP的Session层直接获取数据,无需经过内核协议栈。
-
性能优化点
-
全用户态路径:
-
从网卡到应用全程无内核参与,减少上下文切换。
-
-
批处理与向量化:
-
DPDK和VPP均以批量方式处理数据包(如每次处理64个包)。
-
-
内存池化:
-
rte_mempool
复用内存块,避免动态分配开销。
-
-
CPU亲和性:
-
绑定DPDK轮询线程和VPP Worker线程到独立CPU核。
-
与传统内核协议栈的对比
步骤 | DPDK + VPP | 传统内核协议栈 |
---|---|---|
数据接收 | 用户态轮询(零拷贝) | 中断 + NAPI(内核拷贝) |
协议处理 | 用户态向量化节点 | 内核逐层处理(ip_rcv, tcp_v4_rcv) |
Socket通信 | VCL库直接对接VPP | 内核Socket缓冲区拷贝 |
延迟 | 微秒级 | 毫秒级 |
吞吐量 | 1M+ PPS/core | 100K~500K PPS/core |
典型应用场景
-
高性能代理(如Nginx):
-
VPP替代内核TCP栈,Nginx通过VCL库直接接收HTTP请求。
-
-
金融交易系统:
-
微秒级延迟处理市场数据(UDP组播 + VPP快速转发)。
-
-
5G UPF:
-
GTP-U解封装后直接转发至用户态应用。
-
调试命令示例
-
查看VPP数据流:
bash
复制
下载
vpp# show trace # 追踪数据包路径 vpp# show session # 查看当前连接
-
监控DPDK统计:
bash
复制
下载
dpdk-proc-info --mempool-stats # 内存池使用情况
如果需要更深入的特定环节(如VCL实现细节或NAT性能优化),可进一步展开!
一个系统既有Linux 内核又有,vpp,tcp通信是如何确定数据是走的vpp还是Linux内核协议栈呢
在一个同时运行 Linux 内核协议栈 和 VPP(用户态协议栈) 的系统中,TCP/IP 通信路径的选择取决于 网络接口绑定、路由规则、应用配置 等多个因素。以下是决定数据流走向的核心机制和配置方法:
1. 关键区分因素
因素 | 走 VPP | 走 Linux 内核协议栈 |
---|---|---|
网卡绑定 | 网卡由 DPDK 接管(如绑定 igb_uio ) | 网卡由内核驱动管理(如 igb ) |
应用 Socket 类型 | 使用 VPP 的 VCL (VPP Communication Library) | 标准 Linux Socket API(如 AF_INET ) |
路由规则 | VPP 控制的路由表(FIB) | 内核路由表(ip route ) |
接口 IP 配置 | IP 地址配置在 VPP 接口(set int ip ) | IP 地址配置在内核接口(ip addr ) |
2. 具体控制方法
(1) 网卡绑定与归属
-
VPP 接管网卡:
bash
复制
下载
# 使用 DPDK 绑定网卡(如 eth0)到用户态,脱离内核控制 sudo dpdk-devbind.py --bind=igb_uio eth0
-
此后,该网卡的数据包 不再进入内核协议栈,只能通过 VPP/DPDK 处理。
-
-
内核保留网卡:
-
未绑定 DPDK 的网卡(如
eth1
)仍由内核驱动管理,走传统协议栈。
-
(2) 应用层 Socket 选择
-
走 VPP 的通信:
-
应用需链接 VCL 库,替换标准 Socket 调用:
c
复制
下载
#include <vcl/vppcom.h> int fd = vppcom_socket(AF_INET, SOCK_STREAM, 0);
-
适用场景:高性能代理(如 Nginx 适配 VPP)、自定义用户态协议栈。
-
-
走内核的通信:
-
使用标准
glibc
Socket API:c
复制
下载
#include <sys/socket.h> int fd = socket(AF_INET, SOCK_STREAM, 0);
-
(3) 路由与 IP 配置
-
VPP 路由控制:
bash
复制
下载
vpp# set int ip address dpdk0 192.168.1.1/24 vpp# ip route add 10.0.0.0/8 via 192.168.1.2
-
目标地址匹配 VPP 路由表时,数据由 VPP 转发。
-
-
内核路由控制:
bash
复制
下载
sudo ip addr add 192.168.1.1/24 dev eth1 sudo ip route add default via 192.168.1.2
-
目标地址匹配内核路由表时,走内核协议栈。
-
(4) 混合场景的流量引导
-
KNI (Kernel NIC Interface):
-
允许 VPP 将特定流量转发到内核:
bash
复制
下载
vpp# create interface kni name kni0 vpp# set interface ip address kni0 10.0.0.1/24
-
用途:需要内核处理的管理流量(如 SSH、DNS)。
-
-
策略路由:
-
使用
ip rule
按源IP/端口选择路径:bash
复制
下载
sudo ip rule add from 192.168.1.100 table 100 # 走 VPP sudo ip rule add from 192.168.1.200 table 200 # 走内核
-
3. 典型场景示例
场景 1:高性能 Web 服务器
-
目标:让 Nginx 通过 VPP 处理 HTTP 流量。
-
配置:
-
绑定物理网卡到 DPDK(脱离内核)。
-
在 VPP 中配置 IP 和路由。
-
重新编译 Nginx,链接 VCL 库替代标准 Socket。
-
场景 2:混合流量处理
-
目标:业务流量走 VPP,管理流量走内核。
-
配置:
-
保留一个物理网卡(如
eth1
)给内核。 -
通过 KNI 将 VPP 的管控流量(如 ICMP)转发到内核。
-
使用策略路由区分流量类型。
-
4. 检查数据流路径的工具
-
确认网卡归属:
bash
复制
下载
sudo dpdk-devbind.py --status # 查看网卡是否被 DPDK 绑定
-
查看 VPP 接口状态:
bash
复制
下载
vpp# show interface
-
内核路由表:
bash
复制
下载
ip route show
-
抓包验证:
-
VPP 路径:
vpp# trace add dpdk-input 10
-
内核路径:
tcpdump -i eth1
-
5. 总结
-
数据走 VPP:网卡绑定 DPDK + 应用使用 VCL + VPP 路由配置。
-
数据走内核:网卡未绑定 DPDK + 标准 Socket + 内核路由配置。
-
混合路径:通过 KNI 或策略路由动态分流。
通过合理配置,可以精确控制哪些流量由 VPP 加速,哪些仍需内核处理,兼顾性能与兼容性。
相关文章:
数据接收全流程图(物理网卡 → 应用层)
以下是 DPDK VPP 在 Linux 系统中从网卡收包到应用层的完整数据流程图及分步解析,结合了内核旁路和用户态协议栈的协同工作: 数据接收全流程图(物理网卡 → 应用层) plaintext 复制 下载 ----------------------------------…...
【AI】DeepSeek 流程图 / 时序图制作,Word 排版错乱问题,文字转直观图形
一:动态流程图 / 时序图制作(DeepSeek Draw.IO) 工具准备 DeepSeek(AI 生成代码):官网(免费)Draw.IO(可视化渲染):官网(免费&#…...
C++继承(上)
目录 一、继承的概念及定义 1. 继承的概念 2. 继承的定义 2.1 定义格式 2.2 继承关系和访问限定符 2.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 一、继承的概念及定义 1. 继承的概念 继承是面向对象编…...
分布式-redisson
分布式锁redisson 加锁流程缓存相关问题 加锁流程 redisson底层通过lua脚本实现加锁的原子性lock动作包含:加锁、设置超时时间、锁续命未获取到锁的线程通过获取信号量许可等待,所释放后释放信号量通知等待线程 缓存相关问题 缓存失效(击穿…...
Java学习手册:Spring MVC 架构与实现
一、Spring MVC 概述 Spring MVC 是 Spring 框架的一个模块,它提供了一套 Web 应用开发的解决方案,实现了 MVC(Model-View-Controller)设计模式。Spring MVC 提供了清晰的分离逻辑层、视图层和控制器层的结构,便于开发…...
第四部分:实用应用开发
本部分将涵盖以下关键主题: 视频处理基础 视频读取与保存视频帧处理实战:视频中运动目标追踪 条形码与二维码识别 条形码检测原理(概念)QR 码识别实战:制作二维码扫描器 文本识别入门 (OCR) 图像预处理使用 Tesseract…...
目标检测YOLO实战应用案例100讲-基于多级特征融合的小目标深度检测网络
目录 知识储备 基于多级特征融合的小目标深度检测网络实现 一、环境配置 二、核心代码实现 1. 多级特征融合模块(models/fpn.py ) 2. 主干网络(models/backbone.py ) 3. 检测头(models/detector.py ) 三、完整网络架构(models/net.py ) 四、训练代码(train.p…...
单片机-89C51部分:11、IIC 、传感器温湿度
飞书文档https://x509p6c8to.feishu.cn/wiki/Cczpw4oBeiyK71kFhKfcXkQmnad 一、简介 IIC协议,又称I2C协议,是由PHILP公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备,IIC属于半双工同步通信方式。 C IIC是一种同…...
Java从入门到精通 - Java入门
Java 入门 此笔记参考黑马教程,仅学习使用,如有侵权,联系必删 文章目录 Java 入门01 Java快速入门1. Java 是什么?能干什么?1.1 Java 背景知识1.2 Java 能做什么?1.3 Java 技术体系 2. 如何使用 Java&…...
SLAM中的状态估计理论:从基础到前沿的完整解析
SLAM中的状态估计理论:从基础到前沿的完整解析 一、SLAM状态估计基础与问题建模 1.状态估计问题的数学描述 在SLAM(Simultaneous Localization and Mapping,同时定位与地图构建)中,状态估计问题的核心在…...
Android 自带的分享功能分享到三方应用
1. 分享视频到三方应用 var shareIntent Intent(Intent.ACTION_SEND)shareIntent.setType("video/*")shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path))startActivity(Intent.createChooser(shareIntent, "")) 2. 分享音频到三方应用 var sha…...
宇树科技开启“人形机器人格斗盛宴”
2025年5月至6月,一场备受瞩目的全球性科技盛事——全球首届“人形机器人格斗大赛”将由杭州宇树科技隆重开启。赛事将带来前所未有的机器人格斗视觉冲击,吸引全球目光聚焦。 为打造顶级参赛队伍,宇树科技的技术精英团队已连续多周开展密集的算…...
K8S - 命名空间实战 - 从资源隔离到多环境管理
引言 在传统的物理机或虚拟机环境中,不同业务应用共享资源,容易导致权限冲突、资源争用和管理混乱。Kubernetes 通过 命名空间(Namespace)实现资源逻辑隔离,将集群划分为多个虚拟子集群,从而解决以下问题&…...
【安全扫描器原理】基于协议的服务扫描器
【安全扫描器原理】基于协议的服务扫描器 1.概述2.服务扫描的基本原理3.WWW服务扫描4.FTP服务扫描5.Telnet服务扫描1.概述 一台计算机逻辑上可以提供多项服务,每安装一个服务,即打开了一个或多个端口。从这个角度上看,每个服务对应一个或几个指定端口,反之,如果能检测到某…...
第十六届蓝桥杯 2025 C/C++组 数列差分
目录 题目: 题目描述: 题目链接: 思路: 核心算法: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: P12342 [蓝桥杯 2025 省 B/Py…...
模式识别的基本概念与理论体系
前面在讨论专家系统时曾经说过,为了使计算机具有自动获取知识的能力,除了应使它具有学习能力外,还应使它具有能识别诸如文字、图形、图象、声音等的能力,计算机的这种识别能力是模式识别研究的主要内容。当然,模式识别…...
机器学习,深度学习
定义(非正式):不进行明确编程的情况下,提供大量数据让计算机进行自我学习分类:监督(supervised)学习,无监督(unsupervised)学习监督学习:提供的数据中包含了问题到正确答案(x到y)的映射…...
smolagents - Guided tour
https://colab.research.google.com/github/huggingface/notebooks/blob/main/smolagents_doc/en/pytorch/guided_tour.ipynbhttps://colab.research.google.com/github/huggingface/notebooks/blob/main/smolagents_doc/en/pytorch/guided_tour.ipynb...
【keil使用】无法打开keil工程,只有空白界面的解决方法
【keil使用】无法打开keil工程,只有空白界面的解决方法 一、最常见的原因 在我们新建keil工程或下载其他大佬的keil工程的时候可能会出现工程无法正常打开的情况,如图所示: 其中最常见的一个原因就是keil工程的目录路径太长了,W…...
openEuler 22.03 安装 Nginx,支持离线安装
目录 一、环境检查1.1 必要环境检查1.2 在线安装(有网络)1.3 离线安装(无网络) 二、下载Nginx2.1 在线下载2.2 离线下载 三、安装Nginx四、开机自启服务五、开放防火墙端口六、常用命令 一、环境检查 1.1 必要环境检查 # 查看 g…...
Excel 数组功能及应用示例
Excel表格中的数组(Array)是一个可以同时存储和操作多个数据的结构。数组可以是单行、单列(一维数组)或多行多列(二维数组)。在Excel中,数组公式或动态数组功能可以一次性处理多个值,…...
C++后端服务器开发:侵入式与非侵入式程序结构解析
在C后端服务器开发中,架构设计是决定系统性能、可扩展性和可维护性的关键因素之一。尽管不同的业务需求会导致服务器架构的多样化,但网络通信模块作为所有服务的通用部分,为我们提供了一个抽象和讨论的基础。基于此,我们可以将服务…...
「Mac畅玩AIGC与多模态09」开发篇05 - 使用自定义天气查询插件开发智能体应用
一、概述 本篇介绍如何在 macOS 环境下,通过编写自定义 OpenAPI Schema,将天气查询服务接入 Dify 平台,并开发基于实时天气信息的智能体应用。本案例培养路径参数与查询参数结合的插件开发技巧,实现智能体和外部实时数据的动态联动。 二、环境准备 1. 确认本地开发环境 …...
Maven插件学习(五)—— 将项目构建生成的 OSGi Bundles(或 Features)发布到一个 P2 仓库
发布OSGi Bundles到一个 P2 仓库 读取项目中properties文件中的属性 <plugin><groupId>org.codehaus.mojo</groupId><artifactId>properties-maven-plugin</artifactId><version>1.0-alpha-2</version><executions><exec…...
欧拉计划 Project Euler61(循环的多边形数)题解
欧拉计划 Project Euler 61 题解 题干思路code 题干 思路 先生成所有四位数的多边形数集合分类保存,然后dfs找即可 code // 2512 1281 8128 2882 8256 5625 // 28684 #include <bits/stdc.h>using namespace std;using ll long long;typedef vector<i…...
C语言与Unix的传奇起源
C语言与Unix的传奇起源 背景:Multics项目的困境 这段历史要从20世纪60年代中叶的美国说起。当时,三大技术巨头——麻省理工学院(MIT)、AT&T贝尔实验室和通用电气(GE)——联手为GE-645大型机开发一个名…...
C#扩展方法与Lambda表达式基本用法
C# 扩展方法与 Lambda 表达式详解 一、扩展方法详解 1. 基本概念 扩展方法允许为现有类型"添加"方法,而无需修改原始类型或创建派生类型。 定义条件: 必须在静态类中定义方法本身必须是静态的第一个参数使用this修饰符指…...
C#规避内存泄漏的编码方法
C#规避内存泄漏的编码方法 内存泄漏是C#开发中常见的问题,尽管.NET有垃圾回收机制(GC),但不当的编码实践仍可能导致内存无法被及时回收。以下是系统性的规避内存泄漏的方法: 一、理解内存泄漏的常见原因 未释放的事件订阅静态…...
ARM 指令集(ubuntu环境学习) 第一章:ARM 指令集概述
1.1 ARM 架构简介 ARM(Advanced RISC Machine)是一种精简指令集计算机(RISC)架构,最初由英国的 ARM Holdings 公司设计。与复杂指令集计算机(CISC)不同,RISC 架构通过使用简单且高效的指令集,使得处理器能够以更高的速度和更低的功耗执行任务。ARM 架构被广泛应用于各…...
OpenCV实战教程:从零开始的计算机视觉之旅
第一部分:基础入门 OpenCV简介 什么是OpenCV及其应用领域开发环境搭建(Windows/MacOS/Linux)安装配置和第一个程序"Hello OpenCV" 图像基础 图像的数字表示方式色彩空间(RGB、HSV、灰度图)图像读取、显示与…...
零基础做自动驾驶集成测试(仿真)
图 1:使用 GPUDrive 进行极快的多代理模拟。上图:GPUDrive 中 Waymo Open Motion Dataset 场景的鸟瞰图,方框表示受控智能体,圆圈表示其目标。底部:相应的代理视图,以一个代理为中心。可以根据用户的目标轻…...
阿里云dns服务器不可用怎么办?dns可以随便改吗?
阿里云DNS服务器不可用怎么办?dns可以随便改吗? 当DNS服务器不可用时,可能导致无法访问网站或网络服务。以下是常见的解决方法: 1. 检查网络连接 确保设备已连接到互联网(如Wi-Fi或有线网络)。 尝试访问其他网站或服务&#x…...
神经网络用于地震数据时空均匀插值的方法与开源资料
神经网络用于地震数据时空均匀插值的方法与开源资料 地震数据的不均匀采样是一个常见问题,神经网络提供了一种有效的解决方案。以下是关于如何使用神经网络进行地震数据时空均匀插值的概述和可用资源。 主要方法 1. 基于深度学习的插值方法 卷积神经网络(CNN)&a…...
线性微分方程与非线性微分方程
方程一 d x d t x \frac{dx}{dt} x dtdxx 这是一个一阶线性常微分方程,可以直接分离变量求解。 将变量分离: d x x d t \frac{dx}{x} dt xdxdt 两边积分: ∫ 1 x d x ∫ 1 d t ⇒ ln ∣ x ∣ t C \int \frac{1}{x} \, dx \…...
Windows查看和修改IP,IP互相ping通
Windows系统 查看IP地址 winr 输入cmd 打开终端使用 ipconfig 或 ipconfig -all 命令查看当前网络 IPV4地址 Windows系统 修改IP地址 自动获取IP(DHCP): 打开 控制面板,点击 网络和Internet。点击 网络和共享中心。选择 更改适配…...
ESP32开发之freeRTOS的信号量
什么是信号量信号量能干啥信号量的函数实例举例总结什么是信号量 简而言之,就是发出通知,接收通知的任务获得通知后去干啥啥。通知有多有少。自定义通知数量的,叫计数型信号量;只有有无(即“0”,“1”)通知的,叫二进制信号量。 信号量能干啥 资源管理:控制多个任务对…...
CRMEB-PRO系统定时任务扩展开发指南
适用场景 当系统内置定时任务类型无法满足业务需求时,开发者可通过本教程快速掌握自定义定时任务的扩展方法。本指南以"定时检测服务"为例,演示完整开发流程。 我想添加一个定时任务 ,而这里没有我需要的,我怎么来添加 比如我想添加一个定时检…...
单片机不同通信方式的适用场景
一、串口通信 UART 通信双方约定好波特率,每次发送一个字节(8位数据) 这种通信方式一共有2根线,且互相独立不受影响。 串口通信的缺点 二、RS232和RS485 优点是能够远距离传输信号 RS232达到30m RS485达到1000m 同时RS485还具有一对多的功能 三、S…...
【神经网络与深度学习】探索全连接网络如何学习数据的复杂模式,提取高层次特征
引言 全连接网络(Fully Connected Network,FCN)是深度学习中的重要架构,广泛用于模式识别、分类和回归任务。其强大的特征提取能力使其能够自动学习输入数据中的复杂模式,并逐步形成高层次特征。这种能力主要依赖于参…...
股指期货贴水对对冲的影响大吗?
如果你持有股票,又担心股市下跌,可能会想到用股指期货来“对冲风险”——比如买入股票的同时,卖出股指期货合约。但如果股指期货处于贴水状态(期货价格低于现货价格),对冲效果会受影响吗? 一、…...
浙江大学 | DeepSeek系列公开课 | 当艺术遇见AI:科艺融合的前沿探索
今天要给大家分享一份由浙江大学出品的DeepSeek系列公开课第三季第一期,公开课的主题是当艺术遇见AI,科艺融合的新探索。本报告系统展示了浙江大学在艺术与人工智能融合领域的研究成果,涵盖古画修复流程、色彩复原技术、诗画融合模型、图像召…...
(Go Gin)Gin学习笔记(三)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
1. 数据解析和绑定 bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将请求体中的参数值绑定到对应的结构体上,以方便后续业务逻辑的处理 1.1 JSON数据解析和绑定 客户端传参,后端接收并解析到结构体 package mainim…...
【JavaEE】网络原理之初识(1.0)
目录 编辑 局域网与广域网 IP地址和端口号 实现简单的服务器客户端交互 简单理解socket TCP和UDP的差别(初识) socket面对udp DatagramSocket API DatagramSocket 构造方法 DatagramSocket 方法: DatagramPacket API Data…...
Go与Cpp的本质区别
这个问题是我们经常听到的问题 常见的观点有 Go 与 C 的差异主要体现在设计哲学、内存管理、并发模型、语法特性及应用场景等方面,以下从多个维度进行详细对比: 一、内存管理机制 C:需手动管理内存(如 new/delete、智能…...
Vulkan 学习(16)---- 使用 VertexBuffer
Vertex Buffer 创建一个 VertexBuffer 存储 Vertex data,代替之前在 Shader 中使用固定顶点值的做法 Vertex Shader 修改 GLSL 的 VertexShader 如下: 注意这里指定了 input Vertex data 的 location 和 格式 #version 450 layout(location 0) in vec2 inPosit…...
论文阅读 2024 arxiv Comprehensive Assessment of Jailbreak Attacks Against LLMs
总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Comprehensive Assessment of Jailbreak Attacks Against LLMs https://arxiv.org/pdf/2402.05668 https://www.doubao.com/chat/4015423571416834 速览 这篇论文是关于大…...
SIFT特征点检测
刚看完了SIFT特征点检测的原理,阅读的是两篇csdn博客,一个全面和一个最全面,不得不说,你俩写的都很全面,这么用心奉献知识的博主是全人类的财富。 现在用我这张笨拙的嘴先说一下我理解的流程 首先先将图像扩大一倍&a…...
开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验-pipeline方式(二)
一、前言 阿里云最新推出的 Qwen3-8B 大语言模型,作为国内首个集成“快思考”与“慢思考”能力的混合推理模型,凭借其 80 亿参数规模及 128K 超长上下文支持,正在重塑 AI 应用边界。该模型既可通过轻量化“快思考”实现低算力秒级响应,也能在复杂任务中激活深度推理模式,以…...
Python os.path.join()路径拼接异常
问题 在使用os.path.join()对两个路径进行拼接,如:/University/School/和/Department/Class/进行拼接,最终的结果为/Department/Class/,而/University/School/却不知所踪。 import osos.path.join(“/University/School/”, “/…...
Flink之DataStream
Apache Flink 的 DataStream API 是用于 处理无限(流)或有限(批)数据流的核心编程模型,适用于事件驱动、实时分析、ETL 等场景。相比 Flink Table API,DataStream API 提供了更强的灵活性和底层控制能力。 …...