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

CFD仿真计算革命:基于GPU的格子玻尔兹曼方法(LBM)算子优化——利用Tensor Core加速碰撞核计算(性能提升3倍实测)

点击 “AladdinEdu,同学们用得起的【H卡】算力平台,注册即送H800算力”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。

在计算流体动力学领域,格子玻尔兹曼方法正以介观模拟优势颠覆传统NS方程求解范式。而NVIDIA GPU的Tensor Core技术,为LBM碰撞核计算带来突破性加速可能。

01 LBM方法的核心优势与算力挑战

传统CFD方法的瓶颈
传统纳维-斯托克斯(NS)方程求解面临三大困境:

  1. 复杂边界处理:不规则几何需网格重构
  2. 多相流局限:界面捕捉算法计算开销大
  3. 并行扩展性:压力-速度耦合限制强扩展

LBM的介观革命
格子玻尔兹曼方法基于玻尔兹曼输运方程,通过离散速度模型实现:

f_i(\mathbf{x}+\mathbf{e}_i\Delta t, t+\Delta t) = f_i(\mathbf{x},t) + \Omega_i(\mathbf{x},t)

其中:

f i f_i fi:粒子分布函数

e i \mathbf{e}_i ei:离散速度矢量

Ω i \Omega_i Ωi:碰撞算子

相比NS方程的优势:
在这里插入图片描述
然而在1亿网格规模下,单次迭代仍需15秒(CPU集群),其中碰撞步 Ω i \Omega_i Ωi计算占比达68%。

02 GPU架构适配关键技术

数据布局优化
传统SOA布局导致内存访问低效:

struct Grid {float f0[Nx][Ny][Nz];  // 速度分量0float f1[Nx][Ny][Nz];  // 速度分量1...                    // D3Q19模型共19个分量
};

优化方案:采用混合布局(HSOA)

struct Tile {float f[19][TILE_Z][TILE_Y][4];  // 4-wide SIMD
};

优势:

  • 内存合并访问:提升5.8倍带宽利用率
  • 数据局部性:寄存器阻塞减少72%全局访问

线程层次重构
三维线程映射策略
在这里插入图片描述
此配置使:

  • 共享内存需求:96KB → 48KB
  • 寄存器压力:255个/线程 → 128个/线程
  • 占用率:63% → 92%

03 Tensor Core加速碰撞核设计

碰撞算子的矩阵本质
D2Q9模型碰撞项可表示为:

\Omega_i = \mathbf{M}^{-1}\mathbf{S}[\mathbf{m} - \mathbf{m}^{(eq)}]

其中:

  • M \mathbf{M} M:9×9转换矩阵
  • S \mathbf{S} S:松弛矩阵
  • m \mathbf{m} m:矩空间向量

该计算天然适合矩阵运算,而Tensor Core正是为4×4矩阵乘积累加(MAC)优化。

Tensor Core实现方案

// 将分布函数加载到寄存器
float4 f0 = load_vector(&grid[idx]);
...// 转换到矩空间
wmma::load_matrix_sync(m_matrix, f_ptr, 9);
wmma::mma_sync(m_eq, m_matrix, M_inv); // m = M^{-1}f// 计算平衡态矩
#pragma unroll
for (int i=0; i<9; i++) {m_eq[i] = equilibrium(m[i], rho, u); 
}// 碰撞计算
wmma::load_matrix_sync(S_diag, S_ptr, 9); 
wmma::mma_sync(delta_m, m_sub_m_eq, S_diag); // δm = S(m - m_eq)
wmma::mma_sync(omega, delta_m, M);          // Ω = M·δm// 写回分布函数
store_vector(&grid_new[idx], f_new);

关键创新点

  1. 双精度仿真:通过TF32模拟FP64,误差<0.03%
  2. 动态指令切换:根据雷诺数自动选择精度模式
  3. 稀疏矩阵压缩:存储 M M M矩阵仅需27个元素(原81个)

04 性能优化策略体系

内存访问优化
在这里插入图片描述
混合精度策略
在这里插入图片描述

  • 关键路径精度损失:< 0.05%
  • 速度提升:2.8倍 vs 全FP64

核函数融合
传统流程:
在这里插入图片描述
优化后:
在这里插入图片描述
减少:

  • 全局内存写回:1次 → 0次
  • 线程同步开销:2次 → 0次

05 实测性能分析

测试平台
在这里插入图片描述
D3Q19模型性能
在这里插入图片描述
能效对比
在这里插入图片描述

06 工业应用案例

案例1:内燃机缸内流场仿真
模型特性

  • 网格数:2.1亿
  • 雷诺数:Re=50,000
  • 边界:活塞动态边界

优化效果
在这里插入图片描述
案例2:血液流变学分析
冠状动脉模型
在这里插入图片描述
关键优化

  1. 红细胞变形模型:GPU加速膜粒子动力学
  2. WSS计算:利用Tensor Core并行计算壁面剪切应力
  3. 血栓预测:AI耦合实时预警

在1024³网格规模下,实现实时交互式仿真(30fps)。

07 前沿演进方向

CUDA Graph全流水优化
在这里插入图片描述
通过CUDA Graph实现全流程异步:

  • 内核启动延迟:17μs → 0.8μs
  • 内存拷贝开销:隐藏100%

FP8精度革命
新一代Hopper FP8精度在LBM中的潜力:

# FP8碰撞核配置
config = lbm.Config(precision='fp8', tensor_core=True,adaptive_error=0.01  # 动态精度控制
)

预期收益

  • 计算吞吐提升4倍
  • 显存占用减少60%

生成式AI耦合
物理信息GAN的应用:

  1. 生成器:学习流场低维表示
  2. 判别器:评估物理约束满足度
  3. LBM求解器:提供训练数据

在圆柱绕流案例中,实现200倍超分辨率重建。

08 开发实践指南

环境配置

# 编译OpenLB with CUDA
cmake -D CUDA_ARCH=80 -D TENSOR_CORE=ON -D PRECISION=MIXED ..
make -j 32# 启用TF32加速
export NVIDIA_TF32_OVERRIDE=1

性能剖析工具

# Nsight Compute分析
ncu --set full -o report ./lbm_simulator# 关键指标监测
nvidia-smi dmon -s pucvmet

最佳实践

__global__ void collision_kernel(float* f, float* f_new, int nx, int ny, int nz) 
{// 1. 使用共享内存缓存__shared__ float tile[TILE_Z][TILE_Y][19];// 2. 启用Tensor Corewmma::fragment<...> frag_f;wmma::load_matrix_sync(frag_f, ...);// 3. 混合精度计算#pragma precision(fp32, collision)compute_collision(frag_f);// 4. 避免分支发散if (threadIdx.x < 32) {boundary_processing(...);}
}

当Tensor Core遇上玻尔兹曼方程,CFD领域正经历一场静默革命。本文揭示的3倍性能提升仅是起点——随着FP8精度与生成式AI的融合,我们正迈向实时高精度流体仿真的新时代。在这个介观与宏观交织的世界里,每一颗计算粒子的轨迹,都在重构人类认知流体的方式。

在这里插入图片描述

相关文章:

CFD仿真计算革命:基于GPU的格子玻尔兹曼方法(LBM)算子优化——利用Tensor Core加速碰撞核计算(性能提升3倍实测)

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台&#xff0c;注册即送H800算力”&#xff0c;H卡级别算力&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生专属优惠。 在计算流体动力学领域&#xff0c;格子玻尔兹曼方法正以介观模…...

【蓝牙】Qt4中向已配对的手机发送PDF文件

在Qt 4中实现通过蓝牙向已配对的设备发送文件&#xff08;例如PDF文件&#xff09;&#xff0c;你可以使用Qt Bluetooth模块。Qt 4的蓝牙模块提供了基本的蓝牙功能&#xff0c;包括设备发现、配对管理和数据传输。下面是一些步骤和示例代码&#xff0c;帮助你通过蓝牙发送PDF文…...

Vue + AbortController 请求取消弹窗 hook 封装

背景 实际业务开发场景中&#xff0c;往往存在有些大数据请求的需求&#xff0c;一旦请求发起加载遮罩后用户就无法操作了&#xff0c;直接尬住&#xff0c;所以提供一个支持取消查询的功能还是很有必要的&#xff0c;为了在全业务接口都能使用封装一个hook。 ✋为什么要用 A…...

在小程序中实现上下左右拖动表格

在小程序的开发中&#xff0c;不可避免会出现上下左右拖动表格的类似需求&#xff0c;下面将把这个简单实现一下 其中主要使用到了overflow: scroll;来使得横向和纵向可以滚动&#xff0c;并且使用负边距 父容器截断的方法来同时隐藏横向和纵向滚动条&#xff0c;从而实现该效…...

Spark 以及 spark streaming 核心原理及实践

导语 spark 已经成为广告、报表以及推荐系统等大数据计算场景中首选系统&#xff0c;因效率高&#xff0c;易用以及通用性越来越得到大家的青睐&#xff0c;我自己最近半年在接触spark以及spark streaming之后&#xff0c;对spark技术的使用有一些自己的经验积累以及心得体会&…...

数据融合平台是什么?如何搭建数据融合平台?

目录 一、数据融合是什么 1. 定义 2. 作用 二、数据融合平台的功能是什么 1. 数据抽取 2. 数据清洗 3. 数据转换 4. 数据关联 5. 数据存储 三、如何让搭建数据融合平台 1. 需求分析 2. 选择合适的技术和工具 3. 设计平台架构 4. 开发和部署平台 5. 数据迁移和融…...

Linux之线程同步与互斥

目录 一、线程互斥 1.1、进程线程间的互斥相关背景概念 1.2、互斥量mutex 1.2.1、互斥量的接⼝ 1.3、互斥量实现原理探究 1.4、互斥量的封装 二、线程同步 2.1、条件变量 2.2、同步概念与竞态条件 2.3、条件变量函数 2.4、⽣产者消费者模型 2.4.1、为何要使⽤⽣产者…...

uniapp开发小程序,导出文件打开并保存,实现过程downloadFile下载,openDocument打开

uniapp开发小程序&#xff0c;导出文件打开并保存 实现思路 1、调用请求获取到后端接口返回的下载文件的url路径 &#xff08;注意必须是https的路径&#xff0c;域名需要配置在微信小程序后台的合法域名里面&#xff09; 2、使用 uni.downloadFile 方法 &#xff08;下载文件…...

腾讯云COS“私有桶”下,App如何安全获得音频调用流程

流程图 #mermaid-svg-Phy4VCltBRZ90UH8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-icon{fill:#552222;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-text{fill:#552222;stroke:#552222;}#me…...

简单的 ​Flask​ 后端应用

from flask import Flask, request, jsonify, session import os app Flask(__name__) app.secret_key os.urandom(24) users { 123: admin, admin: admin } # 登录接口 app.route(/login, methods[POST]) def login(): data request.get_json() username data.get(usern…...

Android 中 解析 XML 字符串的几种方式

在 Android 开发中&#xff0c;解析 XML 文件有多种方式&#xff0c;每种方式都有其特点和适用场景。常见的 XML 解析方式有 DOM 解析、SAX 解析 和 XmlPullParser 解析。 1、DOM 解析 DOM&#xff08;Document Object Model&#xff09;解析是一种基于树结构的解析方式&#…...

git commit

‌git commit 是版本控制的核心操作之一&#xff0c;用于将暂存区的修改记录为新的版本提交‌。以下是关键步骤和最佳实践&#xff1a; ‌基础操作‌ ‌提交单个文件‌&#xff1a; bash Copy Code git commit -m “提交信息” ‌提交多个文件‌&#xff1a; bash Copy Code …...

【新手向】GitHub Desktop 的使用说明(含 GitHub Desktop 和 Git 的功能对比)

GitHub Desktop 是 GitHub 公司推出的一款桌面应用程序&#xff0c;旨在帮助开发人员更轻松地使用 GitHub&#xff0c;以下是其简单的使用说明&#xff1a; 安装与登录 下载 GitHub Desktop |GitHub 桌面 访问GitHub Desktop 官方网站&#xff0c;根据自己的操作系统下载对应的…...

Tomcat项目本地部署(Servlet为例)

在Windows上部署 在idea中打开项目 首先我们需要准备一个Servlet项目&#xff0c;我之前的Servlet项目是用eclipse写的&#xff0c;这种情况下如果用idea直接打开的话会出现左侧目录无法显示的情况&#xff0c;这个时候我们就需要用别的方法打开 打开项目管理 如下图&#…...

Linux——linux的基本命令

目录 一、linux的目录结构 二、绝对路径和相对路径 三、文件类型&#xff08;linux下所有东西都可看作文件&#xff09; 四、文件的权限 五、文件权限的修改&#xff08;chmod&#xff09; 六、linux常用的命令 七、文件查看命令 八、文件编辑命令 九、文件压缩与解压…...

wireshark过滤显示rtmp协议

wireshark中抓包显示的数据报文中&#xff0c;明明可以看到有 rtmp 协议的报文&#xff0c;但是过滤的时候却显示一条都没有 查看选项中的配置&#xff0c;已经没有 RTMP 这个协议了&#xff0c;已经被 RTMPT 替换了&#xff0c;过滤框中输入 rtmpt 过滤即可...

Fiddler抓包工具使用技巧:如何结合Charles和Wireshark提升开发调试效率

在开发过程中&#xff0c;网络调试工具是每个程序员的必备利器&#xff0c;特别是当涉及到Web应用和移动应用的调试时&#xff0c;抓包工具的作用尤为突出。无论是处理复杂的API调用、分析性能瓶颈&#xff0c;还是排查网络通信问题&#xff0c;抓包工具都能够帮助开发者精准地…...

LVS负载均衡群集

这里写目录标题 案例:部署Tomcat案例分析案例概述案例前置知识点Tomcat 简介应用场景 案例环境 案例实施实施准备关闭 firewalld 防火墙在安装Tomcat之前必须先安装JDK 查看JDK是否安装安装配置 TomcatTomcat 的安装和配置步骤如下:解压后生成 apache-tomcat-9.0.8文件夹&#…...

【unitrix】 3.5 类型级别的比较系统(cmp.rs)

一、源码 这段代码定义了一个类型级别的比较系统&#xff0c;主要用于在编译时比较类型并得出比较结果。它使用了 Rust 的类型系统和标记特征(trait)来实现这一功能。 use crate::sealed::Sealed; use crate::number::{Z0, P1, N1}; use core::cmp::Ordering;// 比较结果类型…...

防御式编程:防止 XSS 攻击

对用户输入进行编码和过滤是防止 XSS 攻击的关键。以下是改进后的代码示例&#xff1a; from flask import Flask, request, escape from markupsafe import Markup app Flask(__name__) app.route(/comment, methods[POST]) def comment(): user_comment escape(re…...

【Java项目设计】基于Springboot+Vue的OA办公自动化系统

介绍&#xff1a; 基于Springboot为后端&#xff0c;vue为前端的企业综合性OA办公自动化平台&#xff0c;涵盖九大核心模块&#xff0c;全方位解决企业日常办公需求&#xff0c;提升工作效率和管理水平。系统采用模块化设计&#xff0c;功能全面且易于扩展&#xff0c;从基础登…...

WebServer实现:muduo库的主丛Reactor架构

前言 作为服务器&#xff0c;核心自然是高效的处理来自client的多个连接啦&#xff0c;那问题在于&#xff0c;如何高效的处理client的连接呢&#xff1f;这里就介绍两种架构:单Reactor架构和主丛Reactor架构。 单Reactor架构 单Reactor架构的核心为&#xff0c;由一个主线程监…...

每天一个前端小知识 Day 7 - 现代前端工程化与构建工具体系

现代前端工程化与构建工具体系 1. 为什么要工程化&#xff1f;&#xff08;面试高频问题&#xff09; 问题痛点&#xff1a; 模块太多、无法组织&#xff1b;代码冗长、性能差&#xff1b;浏览器兼容性差&#xff1b;团队协作混乱&#xff0c;缺少规范与自动化。 工程化目标…...

nginx的下载与安装 mac

1. 下载 方法一&#xff1a;本地下载 链接&#xff1a;https://nginx.org/en/download.html&#xff08;可直接搜官网&#xff09; 下载到本地后&#xff0c;上传到linux的某个文件夹中 方法二&#xff1a;直接linux上下载&#xff08;推荐&#xff09; wget -c http://ngi…...

[持续集成]

学习目标 能够使用 Git 代码托管平台管理代码能够实现 jenkinspostman 的持续集成能够实现 jenkins代码 的持续集成 持续集成 概念 : 将自己工作成果持续不断地把代码聚集在一起,成员可以每天集成一次或多次相关工具 : git : 代码管理工具,自带本地仓库gitee : 远程代码管理…...

Spring Aop @AfterThrowing (异常通知): 使用场景

核心定义 AfterThrowing 是 Spring AOP 中专门用于处理异常场景的**通知&#xff08;Advice&#xff09;**类型。它的核心作用是&#xff1a; 仅在目标方法&#xff08;连接点&#xff09;的执行过程中抛出异常时&#xff0c;执行一段特定的逻辑。如果目标方法成功执行并正常…...

【赵渝强老师】Kubernetes的安全框架

Kubernetes集群的安全框架主要由以下认证、鉴权和准入控制三个阶段组成。这三个阶段的关系如下图所示。 视频讲解如下 【赵渝强老师】Kubernetes的安全框架 认证&#xff08;Authentication&#xff09; 当客户端与Kubernetes集群建立HTTP通信时&#xff0c;首先HTTP请求会进…...

【Python小练习】3D散点图

资产风险收益三维分析 背景 王老师是一名金融工程研究员&#xff0c;需要对多个资产的预期收益、风险&#xff08;波动率&#xff09;和与市场的相关性进行综合分析&#xff0c;以便为投资组合优化提供决策依据。 代码实现 import matplotlib.pyplot as plt from mpl_toolk…...

腾讯混元3D制作简单模型教程-2

以下是腾讯混元3D制作简单模型的详细教程&#xff0c;整合最新版本特性&#xff08;截至2025年6月&#xff09;&#xff0c;操作门槛低且无需专业基础&#xff1a; &#x1f5a5; 一、在线生成&#xff08;最快30秒完成&#xff09; ‌访问平台‌ 打开 腾讯混元3D创作引擎官网…...

NVIDIA开源Fast-dLLM!解析分块KV缓存与置信度感知并行解码技术

Talk主页&#xff1a;http://qingkeai.online/ 文章原文&#xff1a;https://mp.weixin.qq.com/s/P0PIAMo1GVYH4mdWdIde_Q Fast-dLLM 是NVIDIA联合香港大学、MIT等机构推出的扩散大语言模型推理加速方案。 论文&#xff1a;Fast-dLLM: Training-free Acceleration of Diffusion…...

大白话说目标检测中的IOU(Intersection over Union)

很多同学在学习目标检测时都会遇到IoU这个概念&#xff0c;但总觉得理解不透彻。这其实很正常&#xff0c;因为IoU就像个"多面手"&#xff0c;在目标检测的各个阶段都要"打工"&#xff0c;而且每个阶段的"工作内容"还不太一样。 今天我就让IoU自…...

CentOS 8解决ssh连接github时sign_and_send_pubkey失败问题

我在一台centos8机器上安装git环境以连接到github&#xff0c;首先第一步需配置好ssh环境&#xff0c;因为我已经有一台Ubuntu机器已经配置好ssh环境&#xff0c;所以我ftp Ubuntu机器取得id_rsa id_rsa.pub known_hosts三个文件&#xff0c;然后执行命令&#xff1a; $ git …...

回答 如何通过inode client的SSLVPN登录之后,访问需要通过域名才能打开的服务

需要dns代理 1 配置需求或说明 1.1 适用的产品系列 本案例适用于软件平台为Comware V7系列防火墙&#xff1a;本案例适用于如F5080、F5060、F5030、F5000-M等F5000、F5000-X系列的防火墙。 注&#xff1a;本案例是在F100-C-G2的Version 7.1.064, Release 9510P08版本上进行…...

OpenCV实现二值图细化(骨架提取)

对二值图进行细化&#xff08;骨架提取&#xff09;&#xff0c;也就是把每根线条细化到一个像素的宽度。有两个比较成熟的算法实现此功能&#xff0c;分别是Zhang-Suen算法和Guo-Hall算法。 我们下面使用OpenCVSharp&#xff0c;使用C#实现上述两个算法&#xff1a; private…...

Excel常用公式大全

资源宝整理分享&#xff1a;https://www.httple.net Excel常用公式大全可以帮助用户提高工作效率&#xff0c;掌握常用的Excel公式&#xff0c;让数据处理和计算工作更加便捷高效。了解公式学习方法、用途&#xff0c;不再死记硬背&#xff0c;拒绝漫无目的。 命令用途注释说…...

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)

言简意赅的讲解Docker Desktop for Windows搭建Kubernetes解决的痛点 目标读者&#xff1a; 对 Docker Desktop 有一定了解&#xff0c;能在 Windows 上成功安装和使用 Docker Desktop。想要在本地快速搭建一套 Kubernetes 环境进行测试或学习的开发者。 一、准备工作 安装 Doc…...

Python设计模式终极指南:18种模式详解+正反案例对比+框架源码剖析

下面我将全面解析18种Python设计模式&#xff0c;每种模式都包含实际应用场景、优缺点分析、框架引用案例、可运行代码示例以及正反案例对比&#xff0c;帮助您深入理解设计模式的价值。 一、创建型模式&#xff08;5种&#xff09; 1. 单例模式&#xff08;Singleton&#x…...

第1章: 伯努利模型的极大似然估计与贝叶斯估计

伯努利模型的极大似然估计与贝叶斯估计 import numpy as np import matplotlib.pyplot as plt from scipy.stats import beta, bernoulli from scipy.optimize import minimize_scalar# 设置中文字体 plt.rcParams[font.sans-serif] [SimHei] # 使用黑体 plt.rcParams[axes.…...

IPv4编址及IPv4路由基础

一、实验目的 掌握接口 IPv4 地址的配置方法理解 LoopBack 接口的作用与含义理解直连路由的产生原则掌握静态路由的配置方法并理解其生效的条件掌握通过 PING 工具测试网络层连通性掌握并理解特殊静态路由的配置方法与应用场景 二、实验环境 安装有eNSP模拟器的PC一台&#…...

基于Python的机动车辆推荐及预测分析系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…...

SpringBoot扩展——发送邮件!

发送邮件 在日常工作和生活中经常会用到电子邮件。例如&#xff0c;当注册一个新账户时&#xff0c;系统会自动给注册邮箱发送一封激活邮件&#xff0c;通过邮件找回密码&#xff0c;自动批量发送活动信息等。邮箱的使用基本包括这几步&#xff1a;先打开浏览器并登录邮箱&…...

啊啊啊啊啊啊啊啊code

前序遍历和中序遍历构建二叉树 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNod…...

不同程度多径效应影响下的无线通信网络电磁信号仿真数据生成程序

生成.mat数据&#xff1a; %创建时间&#xff1a;2025年6月19日 %zhouzhichao %遍历生成不同程度多径效应影响的无线通信网络拓扑推理数据用于测试close all clearsnr 40; n 30;dataset_n 100;for bias 0.1:0.1:0.9nodes_P ones(n,1);Sampling_M 3000;%获取一帧信号及对…...

C语言学习day17-----位运算

目录 1.位运算 1.1基础知识 1.1.1定义 1.1.2用途 1.1.3软件控制硬件 1.2运算符 1.2.1与 & 1.2.2或 | 1.2.3非 ~ 1.2.4异或 ^ 1.2.5左移 << 1.2.6右移 >> 1.2.7代码实现 1.2.8置0 1.2.9置1 1.2.10不借助第三方变量&#xff0c;实现两个数的交换…...

Spring MVC参数绑定终极手册:单多参对象集合JSON文件上传精讲

我们通过浏览器访问不同的路径&#xff0c;就是在发送不同的请求&#xff0c;在发送请求时&#xff0c;可能会带一些参数&#xff0c;本文将介绍了Spring MVC中处理不同请求参数的多种方式 一、传递单个参数 接收单个参数&#xff0c;在Spring MVC中直接用方法中的参数就可以…...

宽度优先遍历(bfs)(2)——fllodfill算法

欢迎来到博主的专栏&#xff1a;算法解析 博主ID&#xff1a;代码小豪 文章目录 floodfiil算法leetcode733——图像渲染题目解析算法原理题解代码 leetcode130——被围绕的区域题目解析算法原理题解代码 floodfiil算法 floodfill算法&#xff0c;在博主这里看来则是一个区域填…...

嵌入式编译工具链熟悉与游戏移植

一、Linux 系统编译工具链使用与 mininim 源码编译 在 Ubuntu 系统上编译 mininim 开源游戏需要正确配置编译工具链和依赖库。以下是详细的操作步骤和故障解决方法&#xff1a; 1. 环境准备与源码获取 首先需要安装必要的编译工具和依赖库&#xff1a; # 更新系统软件包索引…...

STUN (Session Traversal Utilities for NAT) 服务器是一种网络协议

STUN (Session Traversal Utilities for NAT) 服务器是一种网络协议&#xff0c;主要用于帮助位于网络地址转换 (NAT) 设备&#xff08;如路由器&#xff09;后面的客户端发现自己的公共 IP 地址和端口号。这对于建立点对点 (P2P) 通信至关重要&#xff0c;尤其是在 VoIP&#…...

Transformer结构介绍

[编码器 Encoder] ←→ [解码器 Decoder] 编码器&#xff1a; 输入&#xff1a;源语言序列输出&#xff1a;每个词的上下文表示(embedding) 解码器&#xff1a;输入&#xff1a;目标语言序列编码器输出输出&#xff1a;下一个词的概率分布&#xff08;目标句子生成&#xff09…...

SpringBoot扩展——应用Web Service!

应用Web Service Web Service是一个SOA&#xff08;面向服务的编程&#xff09;架构&#xff0c;这种架构不依赖于语言&#xff0c;不依赖于平台&#xff0c;可以在不同的语言之间相互调用&#xff0c;通过Internet实现基于HTTP的网络应用间的交互调用。Web Service是一个可以…...