显卡、Cuda和pytorch兼容问题
这里写目录标题
- 驱动与CUDA版本兼容性问题
- 1. **驱动与CUDA版本兼容性问题**
- 2. **任务特性与硬件适配差异**
- 3. **优化策略与框架配置差异**
- 4. **散热与功耗限制**
- 5. **数据传输与CPU瓶颈**
- 排查建议
- 总结
- 查询PyTorch中实际使用的CUDA版本
- **1. 查询PyTorch中实际使用的CUDA版本**
- **可能的输出结果**:
- **2. 检查系统中安装的CUDA Toolkit版本**
- **方法一:通过终端命令查询**
- **方法二:查找CUDA安装路径**
- **3. 验证PyTorch与CUDA版本对应关系**
- **示例**:
- **4. 解决版本不兼容问题**
- **步骤一:卸载当前PyTorch**
- **步骤二:安装指定CUDA版本的PyTorch**
- **步骤三:验证安装**
- **5. 特殊场景处理**
- **问题:`nvidia-smi`与`nvcc --version`显示的CUDA版本不同**
- **问题:多CUDA版本共存**
- **总结**
- 版本不兼容带来的问题
- **1. 性能严重下降**
- **2. GPU 无法被 PyTorch 识别**
- **3. 显存管理异常**
- **4. 计算内核报错或崩溃**
- **5. 框架优化完全失效**
- **6. 显存带宽无法充分利用**
- **7. 兼容性警告或日志提示**
- **如何验证问题根源?**
- **总结**
驱动与CUDA版本兼容性问题
1. 驱动与CUDA版本兼容性问题
- CUDA版本适配不当:网页1提到RTX 4060用户因PyTorch仅支持CUDA 11.8而卸载CUDA 12.0后性能正常。若4090未正确安装与PyTorch兼容的CUDA版本(如默认使用更高版本但未被框架优化),可能导致算力无法释放。
- Tensor Core未启用:4090的Tensor Core性能远超4060,但若任务未启用FP16混合精度(如未使用
.half()
转换数据),则无法利用该加速单元。网页7测试显示启用Tensor Core后速度提升2.6倍,而4090若未开启可能反被4060超越。
2. 任务特性与硬件适配差异
- 小规模计算或低并行度任务:若任务为小批量数据或单线程密集型(如频繁同步操作),4090的16384个CUDA核心无法充分利用,而4060的3584核心更适配此类场景。网页3指出GPU在小数据量时可能不如CPU,而高配显卡的并行优势需大规模计算才能体现。
- 显存带宽与容量未被充分利用:4090的显存带宽(936 GB/s)远超4060(272 GB/s),但若任务显存需求低(如小于8GB),其带宽优势无法转化为实际加速。网页7测试中,矩阵计算的加速依赖数据规模,小任务下GPU优势有限。
3. 优化策略与框架配置差异
- 未启用PyTorch加速工具:网页5提到PyTorch团队通过
torch.compile
、量化、推测性解码等技术实现10倍加速。若4090未启用这些优化(如未设置torch.compile(mode="reduce-overhead")
),而4060因显存限制被迫启用量化或模型简化,反而可能更高效。 - 多GPU负载分配问题:若任务使用
DataParallel
而非DistributedDataParallel
,可能导致4090的多卡负载不均衡(如主卡显存溢出),而4060单卡运行效率更高。网页6指出DistributedDataParallel
在多卡场景下更优。
4. 散热与功耗限制
- 4090的功耗墙触发降频:4090的TDP高达450W,若散热不足或电源功率受限,可能触发降频。网页5提到用户手动限制4090功耗至70%导致性能骤降,类似场景下4060的115W低功耗更易稳定运行。
- 动态频率调整差异:4090的Boost频率(2.52 GHz)较4060(2.46 GHz)更高,但持续高负载下可能因温度过高而降频。网页7测试中GPU长时间负载需依赖散热稳定性。
5. 数据传输与CPU瓶颈
- 主机到设备(H2D)延迟:若任务需频繁将数据从CPU传输至GPU,4090的高算力可能被传输延迟抵消。网页3指出,当数据传输时间占比高时,GPU加速效果会被削弱,而4060因计算时间与传输时间更平衡可能表现更好。
- CPU成为瓶颈:若任务依赖CPU预处理(如数据加载、逻辑控制),而4090的CPU配置较弱(如单核性能不足),整体效率受限。网页2提到NPU/GPU任务中CPU单核处理可能成为瓶颈。
排查建议
-
验证CUDA与驱动配置
- 检查4090的CUDA版本是否与PyTorch匹配(
print(torch.version.cuda)
),确保安装官网推荐驱动。 - 对比4060与4090的
torch.cuda.is_available()
和torch.backends.cudnn.enabled
状态。
- 检查4090的CUDA版本是否与PyTorch匹配(
-
监控硬件利用率
- 使用
nvidia-smi
或MSI Afterburner
观察4090的GPU利用率、温度、功耗及核心频率是否正常。 - 通过PyTorch Profiler分析任务中内核执行时间与数据传输占比。
- 使用
-
优化策略测试
- 对4090启用混合精度(
torch.cuda.amp
)与torch.compile
,对比性能变化。 - 尝试禁用多卡并行(如强制单卡运行),排除负载分配问题。
- 对4090启用混合精度(
-
任务适配性调整
- 增大批量大小或数据规模,验证4090的并行优势是否显现。
- 减少CPU依赖操作(如使用GPU端数据增强),降低主机到设备的数据传输频率。
总结
此现象本质是硬件特性、框架优化、任务适配性三者不匹配的综合结果。4090的理论性能远超4060,但其潜力需特定条件(如大规模并行计算、正确优化配置、散热充足)才能释放。建议优先排查驱动兼容性、启用PyTorch加速工具,并调整任务以匹配高配显卡的硬件特性。若任务规模较小或优化成本过高,4060可能反而是更经济的选择。
若RTX 4090未正确安装与PyTorch兼容的CUDA版本,可以通过以下步骤查询和验证当前环境配置:
查询PyTorch中实际使用的CUDA版本
1. 查询PyTorch中实际使用的CUDA版本
在Python环境中运行以下代码,直接查看PyTorch绑定的CUDA版本:
import torch# 检查PyTorch是否识别到CUDA(返回True表示正常)
print("CUDA是否可用:", torch.cuda.is_available())# 查看PyTorch编译时使用的CUDA版本
print("PyTorch绑定的CUDA版本:", torch.version.cuda)# 查看当前PyTorch支持的CUDA驱动版本(需与NVIDIA驱动匹配)
print("支持的CUDA驱动版本:", torch.cuda.get_device_properties(0).driver_version)
可能的输出结果:
- 若输出类似
CUDA版本: 11.8
,但系统实际安装的是CUDA 12.x,则说明PyTorch未正确绑定高版本CUDA。 - 若
torch.cuda.is_available()
返回False
,则可能是驱动未安装或CUDA版本完全不兼容。
2. 检查系统中安装的CUDA Toolkit版本
方法一:通过终端命令查询
# 查看系统全局CUDA版本(由环境变量PATH决定)
nvcc --version # 若返回“command not found”,则说明未安装CUDA Toolkit# 查看NVIDIA驱动支持的CUDA版本(驱动API版本)
nvidia-smi # 右上角显示的CUDA Version是驱动支持的最高版本
- 关键点:
nvidia-smi
显示的CUDA版本是驱动支持的最高版本,不代表实际安装的CUDA Toolkit。nvcc --version
显示的是当前激活的CUDA Toolkit版本。
方法二:查找CUDA安装路径
# Linux/MacOS
whereis cuda # 查找默认安装路径(如/usr/local/cuda)# Windows
where nvcc # 查看nvcc编译器路径(如C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin)
3. 验证PyTorch与CUDA版本对应关系
访问PyTorch官网的版本兼容性表格,检查当前安装的PyTorch版本是否支持系统中的CUDA版本。
示例:
- 若PyTorch通过以下命令安装:
则PyTorch绑定的是CUDA 12.1,需确保系统中安装了CUDA Toolkit 12.x。conda install pytorch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 pytorch-cuda=12.1 -c pytorch -c nvidia
4. 解决版本不兼容问题
若发现PyTorch绑定的CUDA版本与系统安装的版本不一致,需重新安装PyTorch:
步骤一:卸载当前PyTorch
pip uninstall torch torchvision torchaudio
# 或使用conda
conda uninstall pytorch torchvision torchaudio
步骤二:安装指定CUDA版本的PyTorch
根据官网提供的命令安装,例如:
# 安装支持CUDA 12.1的PyTorch
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia# 或使用pip
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
步骤三:验证安装
重新运行Python检查命令:
import torch
print(torch.cuda.is_available()) # 应为True
print(torch.rand(10).to('cuda')) # 应正常输出张量
print(torch.version.cuda) # 应与安装时指定的版本一致(如12.1)
5. 特殊场景处理
问题:nvidia-smi
与nvcc --version
显示的CUDA版本不同
- 原因:
nvidia-smi
显示的是驱动支持的CUDA版本,nvcc
显示的是编译器的CUDA Toolkit版本。 - 解决方案:只需确保PyTorch的CUDA版本≤驱动支持的版本(由
nvidia-smi
显示)。
问题:多CUDA版本共存
若系统安装了多个CUDA Toolkit(如11.8和12.1),需通过环境变量指定优先级:
# Linux/MacOS
export PATH=/usr/local/cuda-12.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH# Windows
在系统环境变量中调整CUDA路径优先级(控制面板 → 系统 → 高级 → 环境变量)。
总结
通过上述步骤可明确:
- PyTorch实际绑定的CUDA版本;
- 系统中安装的CUDA Toolkit版本;
- NVIDIA驱动支持的CUDA版本;
- 三者是否匹配。若不匹配,需按需调整PyTorch或CUDA Toolkit版本。
若 RTX 4090 未正确安装与 PyTorch 兼容的 CUDA 版本,可能会引发以下问题:
版本不兼容带来的问题
1. 性能严重下降
- 表现:GPU 利用率极低(如用户描述的 20%),计算速度远低于预期,甚至不如低端显卡(如 RTX 4060)。
- 原因:
- 未启用 Tensor Core:PyTorch 若未绑定支持 Ada Lovelace 架构(RTX 40 系)的 CUDA 版本,可能无法调用 4090 的 Tensor Core(FP16/FP8 加速单元),导致算力浪费。
- 回退到低效计算模式:可能强制使用 FP32 浮点运算(而非 FP16 混合精度),导致计算效率低下。
2. GPU 无法被 PyTorch 识别
- 表现:
torch.cuda.is_available()
返回False
,代码无法使用 GPU。 - 原因:
- CUDA 版本完全不兼容:例如 PyTorch 安装时绑定的是 CUDA 11.x,但系统安装了 CUDA 12.x,且未正确配置环境。
- 驱动未安装或版本过低:NVIDIA 驱动版本低于 CUDA Toolkit 的最低要求(如 CUDA 12.1 需要驱动版本 ≥ 530.30)。
3. 显存管理异常
- 表现:显存分配失败(如
CUDA out of memory
错误),即使任务需求远低于 4090 的 24GB 显存。 - 原因:
- 显存分配策略冲突:CUDA 版本与 PyTorch 不匹配时,显存池管理逻辑可能失效,导致碎片化或预分配失败。
- 驱动级兼容性问题:驱动未正确支持 PyTorch 的显存调用接口。
4. 计算内核报错或崩溃
- 表现:运行时报错(如
CUDA error: no kernel image is available for execution
),任务直接中断。 - 原因:
- 架构不匹配:PyTorch 编译时未包含对 Ada Lovelace 架构(SM 8.9/9.0)的支持,导致无法生成适配 4090 的计算内核。
- CUDA 函数缺失:高版本 CUDA 函数(如 cuBLAS 12.x 的新 API)在低版本 PyTorch 中不可用。
5. 框架优化完全失效
- 表现:PyTorch 的高级加速功能(如
torch.compile
、自动混合精度AMP
)无法启用或无效。 - 原因:
- 依赖 CUDA 版本的功能受限:例如
torch.compile
需要 CUDA ≥ 11.7 才能充分发挥性能。 - 算子调度异常:PyTorch 的 GPU 算子可能因版本不匹配而回退到低效的 CPU 实现。
- 依赖 CUDA 版本的功能受限:例如
6. 显存带宽无法充分利用
- 表现:4090 的显存带宽(936 GB/s)未被利用,任务速度受限于数据传输而非计算。
- 原因:
- 低效数据传输:CUDA 版本不兼容可能导致 PyTorch 使用默认的 PCIe 传输模式,而非 GPU 显存直接访问(DMA)。
- 驱动级带宽限制:驱动未正确启用显存压缩(如 NVIDIA 的 Lossless Compression 技术)。
7. 兼容性警告或日志提示
- 表现:运行代码时输出警告(如
UserWarning: CUDA initialization skipped
或The installed CUDA version is newer than the latest supported version
)。 - 原因:
- PyTorch 检测到 CUDA 版本高于其设计支持范围,自动回退到兼容模式,但牺牲性能。
如何验证问题根源?
-
检查 PyTorch 与 CUDA 版本绑定:
import torch print(torch.version.cuda) # PyTorch 实际使用的 CUDA 版本 print(torch.cuda.is_available()) # 是否识别到 GPU print(torch.cuda.get_device_name(0)) # 显卡型号是否识别正确
-
对比官方兼容性表格:
- 访问 PyTorch 官方版本支持表,确认安装的 PyTorch 版本是否支持当前 CUDA 版本和 RTX 4090。
总结
未正确安装兼容的 CUDA 版本会导致 RTX 4090 的硬件特性(如 Tensor Core、高显存带宽)完全无法被 PyTorch 调用,轻则性能大幅下降,重则任务无法运行。
解决方案:严格按 PyTorch 官方文档安装指定 CUDA 版本的 PyTorch(如 CUDA 12.1 对应 PyTorch 2.1+),并确保 NVIDIA 驱动版本 ≥ 530.30。
相关文章:
显卡、Cuda和pytorch兼容问题
这里写目录标题 驱动与CUDA版本兼容性问题1. **驱动与CUDA版本兼容性问题**2. **任务特性与硬件适配差异**3. **优化策略与框架配置差异**4. **散热与功耗限制**5. **数据传输与CPU瓶颈**排查建议总结 查询PyTorch中实际使用的CUDA版本**1. 查询PyTorch中实际使用的CUDA版本***…...
仅需三张照片即可生成沉浸式3D购物体验?谷歌电商3D方案全解析
随着消费者对线上购物体验的要求不断提高,传统2D图片已难以满足用户“真实感知商品”的需求。尤其在鞋类、家具、服装等高决策成本的商品上,缺乏空间感和交互性的购物方式成为转化率瓶颈。 谷歌敏锐地捕捉到这一趋势,早在2022年起便开始探索通过生成式AI技术实现“低成本、…...
PIC16F877A LCD1602 DHT11 温湿度读取显示代码 MPLAB
#include <xc.h> #include <stdio.h> #include <stdlib.h> #...
PIC16F18877 的主时钟 设置方法
#include <xc.h>// ========== 配置位设置 ========== // #pragma config FEXTOSC = OFF // 使用内部振荡器 #pragma...
西门子 Teamcenter13 Eclipse RCP 开发 1.3 工具栏 单选按钮
西门子 Teamcenter13 Eclipse RCP 开发 1.3 工具栏 单选按钮 1 配置文件2 插件控制3 命令框架 位置locationURI备注菜单栏menu:org.eclipse.ui.main.menu添加到传统菜单工具栏toolbar:org.eclipse.ui.main.toolbar添加到工具栏 style 值含义显示效果push普通按钮(默…...
asp.net core api RESTful 风格控制器
在 ASP.NET Core API 中,遵循 RESTful 风格的控制器一般具备以下几个关键特征: ✅ RESTful 风格控制器的命名规范 控制器命名 使用 复数名词,表示资源集合,如 ProductsController、UsersController。 路由风格 路由使用 [Rout…...
智能合约调用全景实战:前端 JS 与后端 Java 两种方式全面解析
目录 前言前端调用以太坊合约新建一个智能合约将合约部署到Hardhat本地链前端(HTML + JavaScript)调用合约后端调用以太坊合约生成java类调用智能合约(maven 插件方式)不生成Java类,通过合约ABI直接调用智能合约前后端调用方式对比开发建议结语前言 随着 Web3 的兴起,越…...
Javascript:WebAPI
获取网页元素 queryselector queryselector是 JavaScript 中用于选择 DOM 元素的重要方法,它允许使用 CSS 选择器语法来查找页面中的元素。 一般queryselector获取的元素都是html中第一个选择器的元素 支持选择器类型:类选择器(.class) ,…...
(4)python爬虫--JsonPath
文章目录 前言一、安装JsonPath库第一步: 打开pycharm第二步: 安装jsonpath 二、 jsonpath的基本使用2.1 基础语法2.2 语法测试2.2.1 准备json文件(store.json)2.2.2 jsonpath解析json语法 三、实战练习需求:爬取淘票票上所有的城市3.1 下载城市json文件3.2 解析城市…...
CentOS 上配置 Docker 使用 NVIDIA GPU
CentOS 上配置 Docker 使用 NVIDIA GPU(前提是已安装 NVIDIA 驱动): 在 CentOS 上配置 Docker 使用 NVIDIA GPU 本文介绍如何在已安装 NVIDIA 驱动的 CentOS 系统中,配置 Docker 使用 GPU 资源进行加速。 ✅ 前提条件 已安装 Cent…...
JAVA Spring MVC+Mybatis Spring MVC的工作流程*
目录 注解总结 将传送到客户端的数据转成json数据 **描述一下Spring MVC的工作流程** 1。属性赋值 BeanUtils.copyProperties(addUserDTO,user); 添加依赖: spring web、mybatis framework、mysql driver Controller和ResponseBody优化 直接改成RestControl…...
【人工智能】DeepSeek解码:揭秘AI大模型训练的创新密码
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 DeepSeek作为开源AI领域的先锋,以其高效、低成本的大模型训练技术震撼业界。本文深入剖析DeepSeek-V3和R1模型的训练密码,聚焦其创新的混…...
Java 方法向 Redis 里操作字符串有什么需要注意的?
在 Java 开发中,Redis 作为高性能的键值存储数据库,常被用于缓存数据、处理高并发场景等。当我们使用 Java 方法向 Redis 中操作字符串类型数据时,有许多关键要点需要格外注意。这些要点不仅关系到代码的正确性和性能,还影响着整个…...
C#与KepOPC通讯
使用C#连接KepOPC服务器进行数据读写的基础示例 using System; using Opc; using System.Threading;namespace KepOPCDemo {class Program{static void Main(string[] args){// OPC服务器连接参数string serverName "Kepware.KEPServerEX.V6"; // 根据实际安装的服…...
【软件测试】性能测试 —— 工具篇 LoadRunner 介绍与使用
🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. LoadRunner 是什么?2. LoadRunner 安装前提:浏览器的选择 —— IE / 360极速浏览器…...
Linux面试题集合(6)
创建多级目录或者同级目录 mkdir -p 文件名/文件名/文件名 mkdir -p 文件名 文件名 文件名 Linux创建一个文件 touch 文件名 DOS命令创建文件 echo 内容>文件名(创建一个有内容的文件) echo >文件名(创建一个没有内容的文件)…...
技术测评:小型单文件加密工具的功能解析
最近在测试一款名为OEMexe的文件加密工具,发现它确实有一些独特之处值得分享。这款软件体积非常小巧,仅209KB,属于绿色单文件版程序,无需安装即可直接运行。 主要特点 多格式支持:能够处理多种常见文件格式࿰…...
06、基础入门-SpringBoot-依赖管理特性
06、基础入门-SpringBoot-依赖管理特性 Spring Boot 的依赖管理特性是其核心优势之一,极大地简化了项目的构建和维护过程。以下是其主要特点: ## 1. 父项目依赖管理 ### 1.1 继承 spring-boot-starter-parent 在 pom.xml 文件中,通过继承 spr…...
基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真
基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真 在工业设计与制造领域,刀具的设计与优化是提高生产效率和产品质量的关键环节之一。本文将介绍如何使用 Python 复现一个用于标准干涉槽型设计计算及仿真的界面程序,旨在帮助工程师和…...
我的创作纪念日——《惊变256天》
我的创作纪念日——《惊变256天》 机缘收获日常成就憧憬 最近,博主收到了 CSDN 发来的系统消息,这才惊觉,自上次第128天创作纪念日之后,竟又悄然走过了 128 天。站在 256 天这个颇具意义的里程碑前回望,博主在2023 年 …...
Linux 的 UDP 网络编程 -- 回显服务器,翻译服务器
目录 1. 回显服务器 -- echo server 1.1 相关函数介绍 1.1.1 socket() 1.1.2 bind() 1.1.3 recvfrom() 1.1.4 sendto() 1.1.5 inet_ntoa() 1.1.6 inet_addr() 1.2 Udp 服务端的封装 -- UdpServer.hpp 1.3 服务端代码 -- UdpServer.cc 1.4 客户端代码 -- UdpClient.…...
回溯法理论基础 LeetCode 77. 组合 LeetCode 216.组合总和III LeetCode 17.电话号码的字母组合
目录 回溯法理论基础 回溯法 回溯法的效率 用回溯法解决的问题 如何理解回溯法 回溯法模板 LeetCode 77. 组合 回溯算法的剪枝操作 LeetCode 216.组合总和III LeetCode 17.电话号码的字母组合 回溯法理论基础 回溯法 回溯法也可以叫做回溯搜索法,它是一…...
LeetCode --- 156双周赛
题目列表 3541. 找到频率最高的元音和辅音 3542. 将所有元素变为 0 的最少操作次数 3543. K 条边路径的最大边权和 3544. 子树反转和 一、找到频率最高的元音和辅音 分别统计元音和辅音的出现次数最大值,然后相加即可,代码如下 // C class Solution {…...
第五项修炼:打造学习型组织
最近一直接到的需求,都是公司董事长或总经理都特别推崇《第五项修炼:打造学习型组织》的内容,让各个层级的管理者都持续学习、应用、实践。我不禁开始反思,这背后到底隐藏着什么原因? 随着商业环境的变化和复杂性的增加…...
Bellman - Ford 算法与 SPFA 算法求解最短路径问题 ——从零开始的图论讲解(4)
目录 前言 为什么Dijkstra算法面对负权值图会有误差??? 举例说明 什么是Bellman -Ford算法? BF算法的核心思想 什么是松弛 为什么最多松弛N-1次? 代码实现 举例 初始状态(dist[] 数组) 第 1 轮松弛(遍历所有边) …...
Python训练营打卡 Day27
函数专题2:装饰器 知识点回顾: 装饰器的思想:进一步复用函数的装饰器写法注意内部函数的返回值 昨天我们接触到了函数大部分的功能,然后在你日常ctrl点进某个复杂的项目,发现函数上方有一个xxx,它就是装饰器 装饰器本质…...
初识计算机网络。计算机网络基本概念,分类,性能指标
初识计算机网络。计算机网络基本概念,分类,性能指标 本系列博客源自作者在大二期末复习计算机网络时所记录笔记,看的视频资料是B站湖科大教书匠的计算机网络微课堂,祝愿大家期末都能考一个好成绩! 视频链接地址 一、…...
5月16日day27打卡
函数专题2:装饰器 知识点回顾: 装饰器的思想:进一步复用函数的装饰器写法注意内部函数的返回值 作业: 编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值) logger def …...
【生成式AI文本生成实战】DeepSeek系列应用深度解析
目录 🌟 前言🏗️ 技术背景与价值🩹 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 🧠 一、技术原理剖析📊 核心概念图解💡 核心作用讲解🔧 关键技术模块说明⚖️ 技术选…...
【Pandas】pandas DataFrame kurt
Pandas2.2 DataFrame Computations descriptive stats 方法描述DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 TrueDataFrame.any(*[, axis, bool_only, skipna])用于判断…...
2025年渗透测试面试题总结-安恒[实习]安全服务工程师(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 安恒[实习]安全服务工程师 1. SQLMap爆出当前库名的参数是什么? 2. Nmap探测系统的参数&am…...
在 Visual Studio Code (VSCode) 中配置 MCP(Model Context Protocol)
前提条件 安装 VSCode:确保已安装最新版本的 VSCode(建议使用 1.99 或以上版本,支持 MCP)。安装 GitHub Copilot 扩展:MCP 通常与 GitHub Copilot 的代理模式(Agent Mode)结合使用,…...
顶层架构 - 消息集群推送方案
一、推送基础概念简述 在即时通讯(IM)系统中,最基础的一件事就是“如何把消息推送给用户”。为了实现这个过程,我们要先了解两种常见的网络通信方式:HTTP 和 WebSocket。 1. HTTP 是什么? HTTP 就像一次性…...
C++性能测试工具——Vtune等的介绍
一、介绍 我们在前面的相关文章中对C性能的测试和分析工具(见“C性能测试工具gprof和gperftools基础”等)有一个初步的了解和应用,其实类似的相关工具还有不少。为了进一步的让开发者们掌握更多的相关性能测试分析相关的方法,对另…...
车道线检测----CLRKDNet
今天的最后一篇 车道线检测系列结束 CLRKDNet:通过知识蒸馏加速车道检测 摘要:道路车道是智能车辆视觉感知系统的重要组成部分,在安全导航中发挥着关键作用。在车道检测任务中,平衡精度与实时性能至关重要,但现有方法…...
【AI模型部署】
解决python引入huggingface_hub模块下载超时问题 背景问题解决 背景 AMD Ryzen™ AI处理器通过独特的NPUGPU异构架构,为AI工作负载提供强大的并行计算能力。本方案展示了如何将YOLOv8目标检测、RCAN超分辨率重建和Stable Diffusion文生图三类模型分别部署到NPU和GP…...
排序01:多目标模型
用户-笔记的交互 对于每篇笔记,系统记录曝光次数、点击次数、点赞次数、收藏次数、转发次数。 点击率点击次数/曝光次数 点赞率点赞次数/点击次数 收藏率收藏次数/点击次数 转发率转发次数/点击次数 转发是相对较少的,但是非常重要,例如转发…...
电子电器架构 --- Zonal架构正在开创汽车电子设计新时代
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
如何阅读、学习 Tcc (Tiny C Compiler) 源代码?如何解析 Tcc 源代码?
阅读和解析 TCC(Tiny C Compiler) 的源代码需要对编译器的基本工作原理和代码结构有一定的了解。以下是分步骤的指南,帮助你更高效地学习和理解 TCC 的源代码: 1. 前置知识准备 C 语言基础:TCC 是用 C 语言编写的&…...
Java 泛型与类型擦除:为什么解析对象时能保留泛型信息?
引言:泛型的“魔术”与类型擦除的困境 在 Java 中,泛型为开发者提供了类型安全的集合操作,但其背后的**类型擦除(Type Erasure)**机制却常常让人困惑。你是否遇到过这样的场景? List<String> list …...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)复习(2)復習3、单词(1)日语(2)日语片假名单词4、对话练习5、单词辨析记录6、总结1、前言 (1)情况说明 自己在今年,在日本留学中,目前在语言学校,…...
Java基础学习
Java 基础大纲 1. Java 概述 Java 语言特点(跨平台、面向对象、自动内存管理) JVM、JRE、JDK 的作用与区别 开发环境搭建(安装 JDK、配置环境变量、IDE 使用) 2. 基础语法(已经学习) 变量与数据类型&a…...
MGX:多智能体管理开发流程
MGX的多智能体团队如何通过专家混合系统采用全新方法,彻底改变开发流程,与当前的单一智能体工具截然不同。 Lovable和Cursor在自动化我们的特定开发流程方面取得了巨大飞跃,但问题是它们仅解决软件开发的单一领域。 这就是MGX(MetaGPT X)的用武之地,它是一种正在重新定…...
2025第三届盘古石杯初赛(计算机部分)
前言 比赛的时候时间不对,打一会干一会,导致比赛时候思路都跟不上,赛后简单复现一下,希望大家批批一下 计算机取证 1、分析贾韦码计算机检材,计算机系统Build版本为?【标准格式:19000】 183…...
XML介绍及常用c及c++库
一.xml概述 1.什么是XML? XML(eXtensible Markup Language)是一种标记语言,1998 年 2 月:XML 1.0 发布,用于存储和传输结构化数据。与HTML专注于数据显示不同,XML专注于数据本身及其结构。 它…...
动态规划-63.不同路径II-力扣(LeetCode)
一、题目解析 与62.不同路径不同的一点是现在网格中有了障碍物,其他的并没有什么不同 二、算法解析 1.状态表示 dp[i][j]表示:到[i,j]位置时,不同的路径数 2.状态转移方程 由于多了障碍物,所以我们要判断是否遇到障碍物 3.初…...
海盗王3.0的数据库3合1并库处理方案
原版的海盗王数据库有3个accountserver,gamedb,tradedb,对应到是账号数据库,游戏数据库,商城数据库。 一直都有个想法,如何把这3个库合并到一起,这样可以实现一些功能。 涉及到sqlserver的数据库…...
Vue百日学习计划Day16-18天详细计划-Gemini版
重要提示: 番茄时钟: 每个番茄钟为25分钟学习,之后休息5分钟。每完成4个番茄钟,进行一次15-30分钟的长休息。动手实践: DOM 操作和事件处理的理解高度依赖于实际编码。请务必在浏览器中创建 HTML 页面,并配…...
【C++】15.并发支持库
本篇内容参考自cplusplus 1. thread 1.1 thread thread库底层是对各个系统的线程库(Linux下的pthread库和Windows下Thread库)进行封装。C11thread库的第一个特点是可以跨平台,第二个特点是Linux和Windows下提供的线程库都是面向过程的&…...
Linux系统编程——exec族函数
我们来完整、系统、通俗地讲解 Linux 系统编程中非常重要的一类函数:exec 族函数(也叫 exec family)。 一、什么是 exec? exec 系列函数的作用是: 用一个新的程序,替换当前进程的内容。 也就是说…...