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

大模型在多核CPU上的推理优化:线程亲和性与NUMA感知

一台 128 核的服务器跑大模型推理的吞吐量却不如 32 核机器——这种情况在实际工程中并不罕见。根本原因往往不是核数不够而是线程之间的沟通成本太高以及内存访问路径不对。本篇聚焦两个关键优化方向线程亲和性Thread Affinity和NUMA 感知NUMA-Aware解释它们的原理并提供可直接使用的配置方案。1 多核 CPU 的内存访问模型1.1 UMA vs NUMA现代高核数服务器处理器几乎都是 NUMA 架构NUMA 节点 0 NUMA 节点 1 ┌─────────────────────┐ ┌─────────────────────┐ │ CPU Core 0-31 │ │ CPU Core 32-63 │ │ L3 Cache (共享) │ │ L3 Cache (共享) │ │ 内存控制器 │◄──────►│ 内存控制器 │ │ 本地 DRAM │ │ 本地 DRAM │ └─────────────────────┘ └─────────────────────┘本地内存访问Core 0 访问 NUMA 节点 0 的内存 → 低延迟远端内存访问Core 0 访问 NUMA 节点 1 的内存 → 需跨 NUMA 互联延迟高约 30-50%1.2 大模型推理的内存访问特征以 7B 模型FP16约 14GB为例模型权重在内存中占据连续大块空间每次推理都需要将权重从内存加载到 CPU 缓存若线程分散在多个 NUMA 节点权重可能被分散在不同 NUMA 节点的内存上产生大量远端内存访问2 查看系统 NUMA 拓扑在优化之前先了解机器的 NUMA 布局# 查看 NUMA 节点数量和每个节点的 CPU 分布numactl--hardware# 示例输出# available: 2 nodes (0-1)# node 0 cpus: 0 1 2 3 ... 31# node 0 size: 128000 MB# node 1 cpus: 32 33 34 ... 63# node 1 size: 128000 MB# node distances:# node 0 1# 0: 10 20# 1: 20 10# 查看详细 CPU 拓扑核/线程/NUMAlscpu--extended# 查看当前进程的 NUMA 绑定情况numastat-p$(pgrep python)3 NUMA 感知推理部署3.1 numactl 绑定最简单的方式用numactl将推理进程绑定到单个 NUMA 节点# 将推理进程绑定到 NUMA 节点 0内存也从节点 0 分配numactl--cpunodebind0--membind0python inference_server.py# 多实例部署节点 0 和节点 1 各跑一个实例numactl--cpunodebind0--membind0python inference_server.py--port8080numactl--cpunodebind1--membind1python inference_server.py--port80813.2 Python 中的 NUMA 感知内存分配importosimportctypesdefset_numa_policy(node:int):将当前进程的内存分配策略设置为绑定到指定 NUMA 节点# MPOL_BIND 2表示严格绑定到指定节点libnumactypes.CDLL(libnuma.so.1)nodemaskctypes.c_ulong(1node)# 绑定到 node 节点libnuma.set_mempolicy(2,ctypes.byref(nodemask),64)# 在模型加载前调用set_numa_policy(node0)importtorch modeltorch.load(model.pt)# 权重将分配在 NUMA 节点 0 的内存上4 线程亲和性优化4.1 什么是线程亲和性线程亲和性Thread Affinity / CPU Pinning是指将线程固定到特定的 CPU 核心上运行避免操作系统调度器在核心间迁移线程。为什么重要线程迁移会导致该线程的 L1/L2 缓存数据失效迁移后需要重新预热缓存这对推理性能影响可达 10-20%。4.2 OpenMP 线程亲和性配置llama.cpp、PyTorch 等框架使用 OpenMP 进行多线程并行通过环境变量控制线程亲和性# OMP_PROC_BIND: 线程绑定策略# close - 线程尽量靠近主线程适合数据局部性优化# spread - 线程均匀分散适合独立并行任务# master - 所有线程绑定到主线程所在核心exportOMP_PROC_BINDcloseexportOMP_PLACEScores# 以物理核为单位不包含超线程exportOMP_NUM_THREADS32# 线程数 NUMA 节点 0 的物理核数# 验证绑定效果OMP_DISPLAY_ENVTRUE python-cimport torch; print(torch.get_num_threads())4.3 taskset 手动绑定# 将 Python 进程绑定到 CPU 0-31NUMA 节点 0 的物理核taskset-c0-31 python inference_server.py# 查看进程的 CPU 亲和性掩码taskset-p$(pgrep python)# 组合 NUMA 绑定和 CPU 亲和性绑定numactl--membind0taskset-c0-31 python inference_server.py4.4 Python 代码中设置亲和性importosimportpsutildefpin_to_cores(core_list:list[int]):将当前进程绑定到指定 CPU 核心ppsutil.Process(os.getpid())p.cpu_affinity(core_list)print(fProcess{os.getpid()}pinned to cores:{p.cpu_affinity()})# 推理进程绑定到 NUMA 节点 0 的核心0-31pin_to_cores(list(range(32)))5 超线程HyperThreading对推理的影响超线程允许一个物理核运行两个逻辑线程但二者共享计算单元和缓存。在大模型推理中超线程的影响存在争议场景超线程收益纯矩阵乘法计算密集通常无益甚至降低性能竞争 FPU 单元IO 密集型预处理有一定收益混合批处理多请求并行略有帮助建议对推理服务进行 A/B 测试分别在OMP_NUM_THREADS物理核数和OMP_NUM_THREADS逻辑核数下测试取性能更好的配置。# 查看物理核数 vs 逻辑核数lscpu|grep-E^CPU\(s\)|Thread\(s\) per core|Core\(s\) per socket# CPU(s): 128# Thread(s) per core: 2 - 超线程开启逻辑核物理核×2# Core(s) per socket: 326 llama.cpp 的多核配置示例llama.cpp 是目前 CPU 推理最高效的开源实现其线程配置# -t: 线程数建议等于物理核数而非逻辑核数# -ngl: 将多少层卸载到 GPU纯 CPU 推理设为 0# NUMA 节点 032 物理核INT4 量化模型numactl--cpunodebind0--membind0\./llama-cli\-m./models/llama-3-8b.Q4_K_M.gguf\-t32\-ngl0\-p你好请介绍一下自己7 总结多核 CPU 推理优化的核心是减少跨 NUMA 访问和保持缓存热数据单 NUMA 节点部署模型权重与计算线程在同一 NUMA 节点消除远端内存延迟线程亲和性用OMP_PROC_BINDclose或taskset固定线程保持缓存热度线程数 物理核数超线程对矩阵运算通常无益不要盲目开满逻辑核数多实例 单实例高并发场景下每个 NUMA 节点跑一个独立实例比单实例多线程更高效

相关文章:

大模型在多核CPU上的推理优化:线程亲和性与NUMA感知

一台 128 核的服务器,跑大模型推理的吞吐量却不如 32 核机器——这种情况在实际工程中并不罕见。根本原因往往不是核数不够,而是线程之间的"沟通成本"太高,以及内存访问路径不对。 本篇聚焦两个关键优化方向:线程亲和性…...

DIC vs 传统方法:铜铝复层材料应变测量全对比(附实测数据)

DIC技术与传统应变测量方法在铜铝复层材料测试中的深度对比 铜铝复层材料因其优异的导电性、导热性和机械性能,在电子、航空航天等领域应用广泛。然而,这类材料的应变测量一直是科研人员和工程师面临的挑战。传统的引伸计和应变电测方法虽然成熟&#x…...

协议层延迟骤增87%?揭秘AIAgent微服务间通信协议设计的4层降本增效架构实践,今天不看明天宕机

第一章:AIAgent架构中的通信协议设计 2026奇点智能技术大会(https://ml-summit.org) 在多智能体协同系统中,通信协议是决定Agent间语义对齐、时序可控与容错能力的核心基础设施。不同于传统微服务间RESTful或gRPC调用,AIAgent需支持异步事件…...

AIAgent目标分解到底难在哪?5大认知陷阱正在拖垮你的智能体落地进度

第一章:AIAgent目标分解到底难在哪?5大认知陷阱正在拖垮你的智能体落地进度 2026奇点智能技术大会(https://ml-summit.org) 目标分解是AI Agent架构设计的“第一道闸门”,却也是最常被轻率跨过的雷区。当团队将“用户订机票”直接拆解为“调…...

AIAgent记忆泄漏正在 silently 拖垮你的O1推理成本——从Python GC钩子到WASM沙箱隔离的3层防御体系

第一章:AIAgent架构中的记忆机制设计 2026奇点智能技术大会(https://ml-summit.org) AI Agent 的长期有效性高度依赖其记忆系统——它不仅是信息暂存的“缓存”,更是支撑推理连贯性、任务持续性与自我演化的认知基座。现代 AIAgent 架构普遍采用分层记忆…...

AI写的AI写小说软件

星灿AI小说写作助手 是一款专为网络小说创作者设计的智能写作工具,集成了AI辅助创作、小说管理、章节编辑等功能,帮助作者高效完成小说创作。 核心功能: - 书架管理:创建、管理多部小说,支持导出TXT格式 - 章节编辑&am…...

霸州发到佛山海运发货流程

霸州到佛山船运物流时效,霸州发到佛山海运运输多久,霸州到佛山货柜水运发货流程 霸州到佛山的船运物流,因需结合陆运完成两端接驳,整体时效受海运航程、陆运调度及港口作业效率等多因素影响。而船运需先将货物从霸州陆运至天津港&…...

python rioxarray

# 聊聊Python里的rioxarray:当遥感数据遇上xarray 最近在处理一些地理空间数据时,又用到了rioxarray这个库。说实话,第一次接触它的时候,觉得这不过又是一个处理栅格数据的工具罢了。但用久了才发现,它解决了一些实际工…...

实测智码方舟:花100元用AI生成毕设代码,完整记录从注册到答辩的全过程

一、前言:我为什么实测这个工具 2026年了,计算机专业的毕业设计还用纯手写代码吗?这个问题我纠结了很久。 我是普通本科计算机专业的学生,成绩中上,技术基础一般。大三下学期开始准备实习和秋招,完全没把…...

IndexTTS2 V23实战体验:上传音频秒变同款语气,效果惊艳

IndexTTS2 V23实战体验:上传音频秒变同款语气,效果惊艳 最近在语音合成圈子里,IndexTTS2的V23版本成了热门话题。大家都在讨论它那个“上传音频秒变同款语气”的功能到底有多神奇。作为一个对AI语音技术保持关注的技术爱好者,我第…...

RTX 4090高效利用:Anything to RealCharacters 2.5D转真人引擎Xformers加速教程

RTX 4090高效利用:Anything to RealCharacters 2.5D转真人引擎Xformers加速教程 1. 引言:从二次元到写实世界,一键转换 你有没有想过,把喜欢的动漫头像、游戏立绘或者2.5D插画,变成一张看起来像真人照片的图片&#…...

智能优化算法专题(7)【讲解+报告】基于PID控制与模糊PID控制搭建一阶倒立摆仿真(在线整定PID参数)-对比小车位移与摆杆角度

智能优化算法专题(7)【讲解报告】基于PID控制与模糊PID控制搭建一阶倒立摆仿真(在线整定PID参数)-对比小车位移与摆杆角度阅读前注意: 1、 此平台私信不回复,统一在b站回复,展示内容与b站一致&a…...

translategemma-4b-it代码实例:Python调用Ollama API实现图文翻译自动化

translategemma-4b-it代码实例:Python调用Ollama API实现图文翻译自动化 1. 了解translategemma-4b-it模型 translategemma-4b-it是一个基于Google Gemma 3模型系列构建的轻量级翻译模型。这个模型专门设计用来处理图文翻译任务,支持55种语言之间的互译…...

GLDAS数据变量单位速查与避坑指南:别再搞混土壤湿度和蒸散发单位了!

GLDAS数据变量单位解析与科研避坑实战指南 科研工作中最令人沮丧的瞬间之一,莫过于花费数周时间分析数据后,发现因为单位换算错误导致所有结论需要推倒重来。GLDAS数据集作为全球陆地水文研究的重要数据源,其NOAH、VIC等模型输出的土壤湿度、…...

Jmeter压测实战—Jmeter二次开发之自定义函数

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、前言 Jmeter是Apache基金会下的一款应用场景非常广的压力测试工具,具备轻量、高扩展性、分布式等特性。Jmeter已支持实现随机数、计数器、时间戳…...

从脚本NPC到自主决策体,SITS2026实测对比:AIAgent使玩家沉浸时长提升217%,你还在用状态机?

第一章:SITS2026分享:AIAgent游戏NPC应用 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026大会上,AIAgent技术首次系统性地应用于开放世界游戏NPC行为建模,突破了传统状态机与行为树的响应边界。通过将LLM推理能力、记…...

AIAgent强化学习实战跃迁:从OpenAI Gym到工业级决策系统,3周完成Agent训练闭环

第一章:AIAgent强化学习实战跃迁:从OpenAI Gym到工业级决策系统,3周完成Agent训练闭环 2026奇点智能技术大会(https://ml-summit.org) 本章聚焦真实工业场景下的Agent训练闭环构建——以电力调度优化任务为载体,将经典CartPole环…...

告别重复造轮子:OpenAI Codex高效生成脚本实战指南

告别重复造轮子:OpenAI Codex高效生成脚本实战指南 在开发者的日常工作中,“重复造轮子”是一个高频痛点——无论是简单的自动化部署脚本、繁琐的数据处理逻辑,还是基础的测试用例生成,往往需要花费大量时间编写重复代码,不仅降低开发效率,还容易因手动编码出现疏漏。而…...

C#.NET IL 中间码 深入解析:从 C# 编译结果到 CLR 执行链路

简介 很多人第一次认真看 IL,通常不是因为“想学一门汇编”,而是因为碰到了这些问题: 同一段 C#,编译之后到底变成了什么async/await、yield、lock 这些语法糖到底被编译成了什么样为什么有些代码看着简单,运行时却没你…...

AGENTS.md的最佳实践

如果把 AI 编程助手比作一台超跑,那么 AGENTS.md就是它的方向盘和导航仪。它是位于项目根目录的特定配置文件(目前已被 Cursor、Windsurf、Claude Code 等主流 AI 编辑器广泛支持),本质上相当于给 AI 注入的“系统级提示词”。 为了让 AI 从“听话的执行者”进阶为“懂你的…...

使用C#代码在 Excel 中创建数据透视图

数据透视图是数据透视表的图形化展示形式。数据透视表用于对数据进行汇总并支持灵活分析,而数据透视图则将这些汇总结果以可视化图表的方式呈现出来。随着数据透视表内容的变化,数据透视图也会自动更新,因此在数据分析与报表展示中具有重要作…...

赋能智能车与机器人技术转型:大联大世平集团携手AutoSys举办线上研讨会

大联大控股旗下世平集团宣布,于4月1日携手AutoSys(先进智能系统)成功举办“Edge AI赋能智能车与机器人产业的感知技术转型路径”线上研讨会。 当前,智能车与机器人技术正加速融合,AI大模型深度赋能感知与决策&#xff…...

碧蓝航线Live2D提取完全指南:5分钟掌握角色动画资源获取

碧蓝航线Live2D提取完全指南:5分钟掌握角色动画资源获取 【免费下载链接】AzurLaneLive2DExtract OBSOLETE - see readme / 碧蓝航线Live2D提取 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneLive2DExtract 想要提取碧蓝航线中精美的Live2D角色动画…...

落子珠江,新址启航|安托广州子公司盛大开业

4月10日,安托广州子公司正式揭牌。与其说是一场开业仪式,不如说是安托在华南地区的一次技术扎根。广东地区作为我国制造大省和国家数字经济创新发展试验区,正加速向“数智化韧性”跃迁。在此背景下,安托选择落子广州,不…...

安科瑞AIM-T系列工业IT绝缘监测及故障定位解决方案为关键供电场所筑牢安全防线

在工业生产与特殊场所供电系统中,供电的连续性、可靠性和安全性至关重要。为了应对复杂环境下的接地故障风险,IT系统(不接地供电系统) 逐渐成为矿井、矿山、冶金、化工、船舶、玻璃厂、爆炸危险场所等领域的优选方案。安科瑞电气股…...

RobotStudio多版本共存避坑指南:5.0/6.0/2019版如何和平共处?

RobotStudio多版本共存实战指南:从兼容性到高效工作流 在工业机器人开发领域,ABB的RobotStudio是工程师们不可或缺的工具。随着项目需求的多样化,许多开发者发现单一版本的RobotStudio已经无法满足日常工作需要——旧项目维护需要5.0版本&…...

国企行政筹办正式会议,标准国企会议纪要撰写权威指南

2026年国企筹办正式会议,写标准会议纪要是最容易踩坑的环节:表述不准、漏记待办分工都得返工,好多新人熬三个小时写的稿都过不了审。今天就把我摸了大半年的标准撰写方法,还有能省80%时间的工具技巧讲明白。去年我在集团行政部轮岗…...

(二十二)32天GPU测试从入门到精通-DeepSeek 模型测试day20

目录 引言DeepSeek 模型介绍架构特点推理性能测试中文场景优化与其他模型对比实战部署选型建议 引言 DeepSeek 是中国深度求索公司开发的大语言模型系列,以出色的中文能力和高性价比著称,是国产大模型的代表之一。从 2023 年的第一代 DeepSeek LLM&…...

AI 驱动与 Wi-Fi 7 双剑合璧,全屋智能家居迎来“认知革命”

如果你觉得智能家居不过是“用手机开关灯”或者“对着音箱问问天气”,那么 2026 年的今天,这个定义已经被彻底颠覆。在 AI 大模型与 Wi-Fi 7 下一代无线网络技术的深度加持下,家庭空间正从“联网的房屋”进化为拥有感知、决策与执行能力的“智…...

ROS小车换雷达后建图重影?别急着调TF,先检查这个关键参数(附完整排查清单)

ROS小车换雷达后建图重影?别急着调TF,先检查这个关键参数(附完整排查清单) 刚给ROS导航小车换上新的激光雷达,满心期待地启动gmapping建图,结果地图上却出现了令人头疼的重影现象。作为经历过多次类似问题的…...